0、前提
Java環境
注:運行ELK需要有對應的java環境,此處要注意的時候如果ELK的版本不是很高,那麼jdk的版本也不宜過高
1、ELK簡介
ELK是Elasticsearch、Logstash、Kibana的簡稱,這三者是核心套件,但並非全部。
(1)Elasticsearch:
是實時全文搜索和分析引擎,提供蒐集、分析、存儲數據三大功能;是一套開放REST和JAVA API等結構提供高效搜索功能,可擴展的分佈式系統。它構建於Apache Lucene搜索引擎庫之上。
(2)Logstash:
是一個用來蒐集、分析、過濾日誌的工具。它支持幾乎任何類型的日誌,包括系統日誌、錯誤日誌和自定義應用程序日誌。它可以從許多來源接收日誌,這些來源包括 syslog、消息傳遞(例如 RabbitMQ)和JMX,它能夠以多種方式輸出數據,包括電子郵件、websockets和Elasticsearch。
logstash架構:
- input:設置數據來源。
- filter:可以對數據進行一定的加工處理過濾,可以做複雜的處理邏輯。這個步驟不是必須的。
- output:設置輸出目標,如elasticSearch等。
(3)Kibana:
是一個基於Web的圖形界面,用於搜索、分析和可視化存儲在 Elasticsearch指標中的日誌數據。它利用Elasticsearch的REST接口來檢索數據,不僅允許用戶創建他們自己的數據的定製儀表板視圖,還允許他們以特殊的方式查詢和過濾數據
2、下載並解壓ELK
curl -O https://artifacts.elastic.co/downloads/logstash/logstash-5.4.3.tar.gz
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.3.tar.gz
curl -O https://artifacts.elastic.co/downloads/kibana/kibana-5.4.3-linux-x86_64.tar.gz
下載解壓縮,如tar -zxvf kibana-5.4.3-linux-x86_64.tar.gz
3、配置文件
(1)Elasticsearch
在解壓出來的文件夾的elasticsearch-5.4.3/config修改elasticsearch.yml文件,在Network中添加:
network.host: 0.0.0.0 ##允許外部主機訪問
(2)Logstash
logstash.yml:主配置文件(有些版本爲simple.conf)
input{
file{
path => "/home/wzh/Docker/MediaServer/convertServer/release/linux/Debug/log/*.log"
type => "myLog"
codec => multiline{
pattern => "^\d{4}-\d{1,2}-\d{1,2}\s\d{1,2}:\d{1,2}:\d{1,2}.\d{3}"
what => "previous"
negate => true
}
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter{
grok{
match => {"message" => "%{TIMESTAMP_ISO8601:logdate}"}
add_field => ["SrcIP", "192.168.152.128"]
}
date{
match => ["logdate" , "yyyy-MM-dd HH:mm:ss.SSS", "ISO8601"]
target => "@timestamp"
}
}
output{
elasticsearch{
hosts => ["localhost:9200"]
index => "logstash-%{+YYYY-MM-dd}"
}
}
jvm.options:關於jvm的配置,可配置運行時內存的最大最小值,垃圾清理機制等。
startup.options:logstash運行相關的參數
(3)Kibana
4、常用命令
(1)elasticsearch
./elasticsearch // 臨時啓動
./elasticsearch // 守護進程
nohup ./elasticsearch & exit // 守護進程
curl 'localhost:9200/' // 查看elasticsearch是否開啓
curl -XGET http://localhost:9200/_cat/indices?v // 查看elasticsearch全部索引
(2)logstash
./logstash -f ../config/logstash.yml // 臨時啓動並加載配置文件
nohup ./logstash -f ../config/logstash.yml & exit // 守護進程
(3)kibana
./kibana // 臨時啓動
nohup ./kibana & exit // 守護進程
5、kibana使用
(1)匹配索引
我們在正式使用Kibana之前,需要先匹配我們Elasticsearch中的索引庫,因爲我們的Elasticsearch有可能會有很多索引庫,Kibana爲了性能因素,是不會事先把所有的索引庫都導進來的,我們需要用那個索引就導哪個索引。
按照如下步驟操作:Management >> Index Patterns >> Create Index Patterns 然後我們可以看到如下界面:
在index pattern輸入框中輸入索引庫,可以使用模糊查詢的方式匹配。注意此索引和logstash中的配置文件設置有關係,如果配置文件沒寫好則有可能搜索不出索引。如配置文件裏“index => "logstash-%{+YYYY-MM-dd}”則kibana輸入:“lostash-*”即可創建對應索引。
(2)查看日誌
在左上角選擇服務,右上角中選擇日期即可查看對應日期的日誌。點擊小三角即可展開對應信息,裏面包含具體的日誌信息。