ELK初探
需求背景:
業(yè)務(wù)發(fā)展越來越大,服務(wù)器越來越多,各種訪問日志,應(yīng)用日志,錯誤日志也越來越多,開發(fā)人員排查問題,需要上服務(wù)器查,不方便,運(yùn)營人員需要一些數(shù)據(jù),也需要運(yùn)維人員上服務(wù)器分子日志。
Elasticsearch是個開源分布式搜索引擎,它的特點(diǎn)有:分布式,零配置,自動發(fā)現(xiàn),索引自動分片,索引副本機(jī)制, restful 風(fēng)格接口,多數(shù)據(jù)源,自動搜索負(fù)載等。
Logstash是一個完全開源的工具,他可以對你的日志進(jìn)行收集、分析,并將其存儲供以后使用(如,搜索)。
kibana也是一個開源和免費(fèi)的工具,他 Kibana 可以為 Logstash 和 Elastic Search 提供的日志分析友好的 Web 界面,可以幫助您匯總、分析和搜索重要數(shù)據(jù)日志。
一、準(zhǔn)備工作
三臺服務(wù)器環(huán)境:
192.168.153.13? (主節(jié)點(diǎn))cnetos7
192.168.153.14? (數(shù)據(jù)節(jié)點(diǎn))centos7
192.168.153.15? (數(shù)據(jù)節(jié)點(diǎn))centos7
角色劃分:
? ? 3臺全部安裝elasticsearch
? ? 主節(jié)點(diǎn)上安裝kibana
? ? 其中一個(192.168.153.15 )數(shù)據(jù)節(jié)點(diǎn)上安裝logstash
二、部署工作:
1、三臺機(jī)器上都安裝jdk
yum install -y java-1.8.0-openjdk
2、安裝elasticsearch
下載6.3版本的
在一臺機(jī)器上執(zhí)行
wgethttps://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.rpm
用scp同步到另外兩臺機(jī)器上
然后分別在三臺機(jī)器上執(zhí)行:
rpm -ivh elasticsearch-6.3.0.rpm
3、配置es
在主節(jié)點(diǎn)上配置如下信息:
vim /etc/elasticsearch/elasticsearch.yml
cluster.name: test
node.name: test-01
node.master: true
node.data: false
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 192.168.153.13
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.153.13","192.168.153.14", "192.168.153.15"]
配置完保存,分別拷貝到其他兩個節(jié)點(diǎn)上
在一個從節(jié)點(diǎn):
vim /etc/elasticsearch/elasticsearch.yml? #修改以下4行數(shù)據(jù)
node.name: test-14
node.master: false
node.data: true
network.host: 192.168.153.14
在另一個從節(jié)點(diǎn)也是同樣的修改(注意ip和node.name不一樣)
4、啟動es
順序:主,從,從
systemctl start elasticsearch
#curl '192.168.153.13:9200/_cluster/health?pretty'
查看集群節(jié)點(diǎn)有沒有問題

5、安裝kibana(主機(jī)器上)
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.3.0-x86_64.rpm
rpm -ivh kibana-6.3.0-x86_64.rpm
vim /etc/kibana/kibana.yml? ? #配置kibana
server.port: 5601
server.host: 192.168.153.13
elasticsearch.url: "http://192.168.153.13:9200"
啟動:
systemctl start kibana
查看進(jìn)程,端口,檢查服務(wù)是否啟動起來
瀏覽器訪問:192.168.153.13:5601,可以訪問到說明成功了
6、安裝logstash
在192.168.153.15機(jī)器上安裝
wgethttps://artifacts.elastic.co/downloads/logstash/logstash-6.3.0.rpm
rpm -ivh logstash-6.3.0.rpm
配置logstash
vim /etc/logstash/conf.d/syslog.conf #以收集系統(tǒng)日志為例
input{
syslog{
? type => "syslog-syslog"
? port => 10514
}
}
output{
stdout{
? codec => rubydebug
}
}
檢查配置文件是否有錯:
cd /usr/share/logstash/bin
./logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf --config.te
st_and_exit
顯示Configuration OK,說明可以啟動了
注:啟動之前要做一件事,檢查10514端口是否打開,沒有打開,那么配置一下
vim? /etc/rsyslog.conf
在#### RULES ####? 下面添加一行
*.*@@192.168.153.15:10514
啟動:
./logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf
注:此處一個小實驗
執(zhí)行了./logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf ,終端頁面不會退出,在新打開一個終端頁面,執(zhí)行systemctl restart rsyslog,然后反過去看之前的終端頁面,會出現(xiàn)日志信息(圖略)
三、配置logstash收集信息展示在kibana上
1、配置并啟動logstash
vim /etc/logstash/conf.d/syslog.conf
input{
? syslog{
? ? type => "syslog-syslog"
? ? port => 10514
? }
}
output{
? elasticsearch{
? ? hosts => ["192.168.153.13:9200"]
? ? index => "system-syslog-%{+YYYY.MM}"
? }
}
檢查配置:
/usr/share/logstash/bin/logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf --config.te
st_and_exit
為對logstash的日志和數(shù)據(jù)目錄授權(quán):
chown -R logstash /var/lib/logstash/
chown -R logstash /log/lib/logstash/
啟動:
systemctl restart logstash
稍等查看端口9600是否啟動起來
2、kibana上看日志
配置logstash監(jiān)聽192.168.153.15這個ip
vim /etc/logstash/logstash.yml
http.host: "192.168.153.15"
啟動:systemctl restart logstash
web頁面打開kibana并配置索引;
索引可以執(zhí)行:curl '192.168.153.13:9200/_cat/indices?v' 來獲取

然后下一步,create;
回到首頁discover,可以看到

3、實驗:
終端窗口關(guān)閉192.168.153.15這個頁面,再重新連接,會看到/var/log/messages下會生成新的日志;
刷新kibana頁面,可以看到新生成的日志
注:查看集群狀態(tài):
curl '192.168.153.13:9200/_cluster/health?pretty'
curl '192.168.153.13:9200/_cluster/state?pretty'
curl '192.168.153.13:9200/_cat/indices?v'? 獲取索引信息