ELK是Elasticsearch、Logstash、Kibana三個(gè)開源軟件的組合。
本文記錄了在windows上初步運(yùn)行這三個(gè)軟件的過程。
環(huán)境
Windows7 64bit
JDK1.7.0_72 64bit
logstash5.1.1
elasticsearch5.1.1
kibana5.1.1
配置logstash過濾
first-pipeline.conf
**input {**
**file {**
**path => "k:/ELK/logstash-tutorial-dataset"**
**start_position => beginning**
**ignore_older => 0**
**}**
**}**
**filter {**
**}**
**output {**
**file {**
**path => "k:/ELK/logstash-tutorial-output.txt"**
**}**
**}**
配置kibana
k:\ELK\kibana-4.5.0-windows\config\kibana.yml
elasticsearch.url: "http://localhost:9200"
啟動(dòng)ELK
同時(shí)打開3個(gè)DOS窗口,分別鍵入:
K:\ELK\logstash-5.1.1\bin
logstash -f ../../first-pipeline.conf****
K:\ELK\elasticsearch-5.1.1\bin>elasticsearch.bat
K:\ELK\kibana-5.1.1-windows-x86\bin
kibana .bat
瀏覽
http://localhost:5601
這便是最終成品kibana了,可以在這里一覽日志。手工修改logstash-tutorial-dataset,在結(jié)尾增加幾行數(shù)據(jù),然后刷新kibana的頁(yè)面(Discover標(biāo)簽),可以看到實(shí)時(shí)的數(shù)據(jù)。
head插件安裝
修改es
git clone
git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
npm install -g grunt
npm install -g grunt-cli
npm****的node_path****和path****需要設(shè)置才可以找到命令
-g命令:設(shè)置到全局,建立cmd
從項(xiàng)目的根位置遞歸搜尋node_modules目錄,直到文件系統(tǒng)根目錄的node_modules,如果還沒有查找到指定模塊的話,就會(huì)去NODE_PATH中注冊(cè)的路徑中查找。
head工具,注意“/”
bigdesk
集群拓?fù)?/h2>
ElasticSearch
3臺(tái)機(jī)器:
集群名:HES
es節(jié)點(diǎn)名=> ip地址
h1 => 192.168.0.2
h2 => 192.168.0.3(master)
h3 => 192.168.0.4
修改配置文件
vim/etc/elasticsearch/elasticsearch.yml
cluster.name:HES
node.name:H1
#path.logs:/data/log/
network.host:192.168.0.2
http.port:9200
discovery.zen.ping.unicast.hosts:["192.168.0.3","192.168.0.4"]
Logstash
核心部分分為client和server
Kibana
192.168.0.2
修改kibana配置文件
vim /etc/kibana/kibana.yml
#****修改為下面3****個(gè)參數(shù)
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: "http://192.168.0.2:9200"
可視化的監(jiān)控工具都可以指定某一個(gè)服務(wù)器,查看運(yùn)行狀態(tài)
redis
Redis服務(wù)器是logstash官方推薦的broker選擇。Broker角色也就意味著會(huì)同時(shí)存在輸入和輸出倆個(gè)插件。
LogStash::Inputs::Redis支持三種data_type(實(shí)際上是redis_type),不同的數(shù)據(jù)類型會(huì)導(dǎo)致實(shí)際采用不同的Redis命令操作:
list=> BLPOP
channel=> SUBSCRIBE
pattern_channel=> PSUBSCRIBE
Redis服務(wù)器通常都是用作NoSQL數(shù)據(jù)庫(kù),不過logstash只是用來做消息隊(duì)列。所以不要擔(dān)心logstash里的Redis會(huì)撐爆你的內(nèi)存和磁盤。
****
input {
redis {
data_type => "list"
key => "logstash"
host => "127.0.0.1"
port => 6379
threads => 5
codec => "json"
}
}
filter {
}
output {
elasticsearch {
hosts =>["192.168.0.2:9200","192.168.0.2:9200","192.168.0.4:9200"]
index =>"logstash-%{type}-%{+YYYY.MM.dd}"
document_type => "%{type}"
workers => 1
flush_size => 20
idle_flush_time => 1
template_overwrite => true
}
stdout{}
}