Elasticsearch+Logstash+Kiabana
三個框架組合成分佈式日誌收集框架,簡稱ELK
Elasticsearch是一個高度可擴展的開源全文本搜索和分析引擎。它使您可以快速,近乎實時地存儲,搜索和分析大量數據。
它通常用作支持具有複雜搜索功能和要求的應用程序的基礎引擎/技術。
Kibana是一個開源的分析和可視化平臺,設計用於和Elasticsearch一起工作。
Logstash是一個完全開源的工具,它可以對你的日誌進行收集、過濾、分析,支持大量的數據獲取方法,並將其存儲供以後使用(如搜索)
一、Linux環境安裝Elasticsearch
首先要安裝JDK環境變量
export JAVA_HOME=/usr/local/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source /etc/profile
1.下載elasticsearch安裝包
中文官網:
ELK下載:
https://www.elastic.co/downloads/elasticsearch
https://www.elastic.co/cn/downloads/kibana
https://www.elastic.co/cn/downloads/logstash
百度網盤:https://pan.baidu.com/s/164LDseqry93x7FSGz2qepw (內含ELK7.2版本三個包)
提取碼:eber
注意:linux安裝內存建議1g內存以上
2.上傳elasticsearch安裝包
3.解壓elasticsearch
tar -zxvf elasticsearch-6.4.3.tar.gz
4.修改elasticsearch.yml
network.host: 172.0.1.125
http.port: 9200
5.啓動elasticsearch
cd /data/elasticsearch/elasticsearch-6.4.3/bin
./elasticsearch
繼續報錯
can not run elasticsearch as root
解決方案:
因爲安全問題elasticsearch 不讓用root用戶直接運行,所以要創建新用戶
//切換用戶
su esuser
./elasticsearch 繼續報錯
bootstrap checks failed max virtual memory areas vm.max_map_count [65530] is
解決方案:
vi /etc/sysctl.conf
添加:
vm.max_map_count=655360
sysctl -p
./elasticsearch 繼續報錯:
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
解決方案:
vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
上述都要重啓服務器
6.關閉防火牆
systemctl stop firewalld.service
7.訪問elasticsearch
http://172.0.1.125:9200
8.構建Elasticsearch啓動腳本 start_es.sh。
#!/bin/bash
export ES_HOME=/data/elasticsearch/elasticsearch-6.4.3/
su elastic -c "sh ${ES_HOME}/bin/elasticsearch -d -p ${ES_HOME}/pid"
export的執行僅僅適用於當前登陸操作,也就是說當你關閉了當前窗口,再次登錄時,這個變量又回到了原來的值,需要再次執行些命令進行設置。
參數說明:
- su:登錄用戶。
- elastic:部署Elasticsearch用戶,避免root用戶而無法啓動。
- c:c參數後跟具體命令。
- d:Elasticsearch作爲守護線程後臺啓動。
- p:指定線程ID文件,需要新建。
9.構建Elasticsearch停止腳本 stop_es.sh。
#!/bin/bash
export ES_HOME=/data/elasticsearch/elasticsearch-6.4.3/
kill `cat ${ES_HOME}/pid`
二、Linux環境安裝Kibana
1.下載並解壓(見上述鏈接)
tar -zxvf kibana-6.4.3-linux-x86_64.tar.gz
2.配置
vim config/kibana.yml
# 將默認配置改成如下:
server.port: 5601
server.host: "172.0.1.125"
elasticsearch.url: "http:// 172.0.1.125:9200"
3.啓動Kibana
./bin/kibana
4.訪問
http://172.0.1.125:5601/app/kibana
5.停止kibana
ps -ef|grep kibana
上述命令找不到kibana進程的.可以使用
ps -ef|grep node
kill -9 xx
6.kibana6.6版本以後支持i18國際化(即可漢化)
三、Linux環境安裝Logstash
1、下載並上傳logstash安裝包(見上述鏈接)
2、解壓tar –zxvf logstash-6.4.3.tar.gz
3、在config目錄下放入logstash_hhj.conf 讀入並且讀出日誌信息
logstash_hhj.conf:
input {
# 從文件讀取日誌信息 輸送到控制檯
file {
path => "/data/business-equipment-manager/nohup.out"
codec => "json" ## 以JSON格式讀取日誌
type => "elasticsearch"
start_position => "beginning"
}
}
# filter {
#
# }
output {
# 標準輸出
# stdout {}
# 輸出進行格式化,採用Ruby庫來解析日誌
stdout { codec => rubydebug }
elasticsearch {
hosts => ["172.0.1.125:9200"]
index => "es-%{+YYYY.MM.dd}"
}
}
4、啓動./logstash -f ../config/logstash_hhj.conf
5、查看實時日誌
(後臺啓動ELK,需要可使用./xxx -d 或者使用nohup啓動.其中一種不行,可試試另一種,二者選一即可)