需求背景:
業務發展越來越大,伺服器越來越多,各種訪問日誌,應用日誌,錯誤日誌也越來越多,開發人員排查問題,需要上伺服器查,不方便,運營人員需要一些資料,也需要運維人員上伺服器分子日誌。
Elasticsearch 是個開源分散式搜尋引擎,它的特點有:分散式,零配置,自動發現,索引自動分片,索引副本機制, restful 風格介面,多資料來源,自動搜尋負載等。
Logstash 是一個完全開源的工具,他可以對你的日誌進行收集、分析,並將其儲存供以後使用(如,搜尋)。
kibana 也是一個開源和免費的工具,他 Kibana 可以為 Logstash 和 Elastic Search 提供的日誌分析友好的 Web 介面,可以幫助您彙總、分析和搜尋重要資料日誌。
一、準備工作
三臺伺服器環境:
192.168.153.13 (主節點)cnetos7
192.168.153.14 (資料節點)centos7
192.168.153.15 (資料節點)centos7
角色劃分:
3臺全部安裝elasticsearch
主節點上安裝kibana
其中一個(192.168.153.15 )資料節點上安裝logstash
二、部署工作:
1、三臺機器上都安裝jdk
yum install -y java-1.8.0-openjdk
2、安裝elasticsearch
下載6.3版本的
在一臺機器上執行
wget artifacts.elastic.co/downloads/e…
用scp同步到另外兩臺機器上
然後分別在三臺機器上執行:
rpm -ivh elasticsearch-6.3.0.rpm
3、配置es
在主節點上配置如下資訊:
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"]
配置完儲存,分別拷貝到其他兩個節點上
在一個從節點:
vim /etc/elasticsearch/elasticsearch.yml #修改以下4行資料
node.name: test-14
node.master: false
node.data: true
network.host: 192.168.153.14
在另一個從節點也是同樣的修改(注意ip和node.name不一樣)
4、啟動es
順序:主,從,從
systemctl start elasticsearch
#curl '192.168.153.13:9200/_cluster/health?pretty'
檢視叢集節點有沒有問題
5、安裝kibana(主機器上)
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
檢視程式,埠,檢查服務是否啟動起來
瀏覽器訪問:192.168.153.13:5601,可以訪問到說明成功了
6、安裝logstash
在192.168.153.15機器上安裝
wget artifacts.elastic.co/downloads/l…
rpm -ivh logstash-6.3.0.rpm
配置logstash
vim /etc/logstash/conf.d/syslog.conf #以收集系統日誌為例
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
注:此處一個小實驗
執行了./logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf ,終端頁面不會退出,在新開啟一個終端頁面,執行systemctl restart rsyslog,然後反過去看之前的終端頁面,會出現日誌資訊(圖略)
三、配置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的日誌和資料目錄授權:
chown -R logstash /var/lib/logstash/
chown -R logstash /log/lib/logstash/
啟動:
systemctl restart logstash
稍等檢視埠9600是否啟動起來
2、kibana上看日誌
配置logstash監聽192.168.153.15這個ip
vim /etc/logstash/logstash.yml
http.host: "192.168.153.15"
systemctl restart logstash
web頁面開啟kibana並配置索引;
索引可以執行:curl '192.168.153.13:9200/_cat/indices?v' 來獲取
然後下一步,create;
回到首頁discover,可以看到
3、實驗:
終端視窗關閉192.168.153.15這個頁面,再重新連線,會看到/var/log/messages下會生成新的日誌;
重新整理kibana頁面,可以看到新生成的日誌