快速搭建ELK,以及简单故障处理
ELK是三個開源軟件的縮寫,分別表示:Elasticsearch , Logstash, Kibana , 它們都是開源軟件。新增了一個FileBeat,它是一個輕量級的日志收集處理工具(Agent),Filebeat占用資源少,適合于在各個服務(wù)器上搜集日志后傳輸給Logstash,官方也推薦此工具。
Elasticsearch是個開源分布式搜索引擎,提供搜集、分析、存儲數(shù)據(jù)三大功能。它的特點有:分布式,零配置,自動發(fā)現(xiàn),索引自動分片,索引副本機制,restful風(fēng)格接口,多數(shù)據(jù)源,自動搜索負載等。
Logstash 主要是用來日志的搜集、分析、過濾日志的工具,支持大量的數(shù)據(jù)獲取方式。一般工作方式為c/s架構(gòu),client端安裝在需要收集日志的主機上,server端負責(zé)將收到的各節(jié)點日志進行過濾、修改等操作在一并發(fā)往elasticsearch上去。
Kibana 也是一個開源和免費的工具,Kibana可以為 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以幫助匯總、分析和搜索重要數(shù)據(jù)日志。
一. ElasticSearch 的安裝與運行
ES 是一個基于 Lucene 的使用 Java 開發(fā)的開源搜索引擎,因此其運行是基于 JVM 的,因此在安裝之前需要保證已經(jīng)安裝了 Java 環(huán)境。ES 要求使用 Java8 或者更高版本的 Java 環(huán)境。
確定機器已經(jīng)安裝了 Java 環(huán)境后,就可以安裝 ES 了。官網(wǎng)提供了壓縮包可以直接下載,
# 下載壓縮包 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.2.tar.gz # 解壓 tar -xzf elasticsearch-6.2.2.tar.gz # 進入文件 cd elasticsearch-6.2.2/
下載解壓完成后進入目錄,啟動命令在 bin 目錄下,直接運行命令就可以啟動了
注意: 啟動報錯
解決方法:es不能用root啟動,先建立一個es用戶,并給與啟動文件權(quán)限 useradd *** ? ? ? chown -R ?**:** ? ././(es的文件路徑)
切換到es用戶
bin/elasticsearch
ElasticSearch 的默認啟動端口是 9200。手動訪問出現(xiàn)如下信息說明啟動成功。
二. FileBeats 與 LogStash 的安裝
LogStash 可以用來對日志進行收集并進行過濾整理后輸出到 ES 中,FileBeats 是一個更加輕量級的日志收集工具。
現(xiàn)在最常用的方式是通過 FileBeats 收集目標日志,然后統(tǒng)一輸出到 LogStash 做進一步的過濾,在由 LogStash 輸出到 ES 中進行存儲。
1. LogStash 的安裝運行
官方提供了壓縮包下載, https://www.elastic.co/downloads/logstash 。 下載完成后解壓即可。
tar zxvf logstash-6.2.2.tar.gz # 進入目錄 cd logstash-6.2.2
LogStash 的運行需要指定一個配置文件,來指定數(shù)據(jù)的流向,我們在當前目錄下創(chuàng)建一個 first.conf 文件,其內(nèi)容如下:
# 配置輸入為 beats
input { ??
????beats {
? ? ? ? ?? port => "5044"
?? }
}
# 數(shù)據(jù)過濾
filter {
?? grok {
? ? ? ? ?? match => { "message" => "%{COMBINEDAPACHELOG}" }
?? }
?? geoip {
? ? ? ? ?? source => "clientip"
?? }
}
# 輸出到本機的 ES
output {
?? elasticsearch {
? ? ? ? ?? hosts => [ "localhost:9200" ?]
?? }
}
配置完成后就可以通過如下方式啟動 LogStash 了
bin/logstash -f first.conf --config.reload.automatic
#--config.reload.automatic選項啟用自動配置重新加載,因此每次修改配置文件時都不必停止并重新啟動Logstash
注意:
NameError: cannot link Java class org.apache.logging.log4j.core.config.LoggerConfig needs Java 8 (java.lang.UnsupportedClassVersionError: org/logstash/log/LogstashLogEventFactory : Unsupported major.minor version 52.0)
顯示version版本問題,應(yīng)該是JDK版本沒有更新 ? ?java -version查看版本是否為1.8.
如果為1.7則需要:1.去網(wǎng)站下載jdk18*版本
?2.tar -zxvf jdk-8u181-linux-x64.tar
?3.sudo mv jdk1.8.0_181 ?/usr/local/java
4.vim /etc/profile
export JAVA_HOME=/usr/local/java(此處根據(jù)自己jdk安裝的目錄來寫) export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=.:${JAVA_HOME}/bin:$PATH
?5.生效配置文件sourc /etc/profile
?6.java -version
重新啟動logstash
可以看到命令行會打印出如下信息, 可以看到 LogStash 默認端口為 5044:
2. 安裝運行 FileBeats
FileBeats 也提供了下載包,地址為 https://www.elastic.co/downloads/beats/filebeat 。找到系統(tǒng)對應(yīng)的包下載后解壓即可。
tar zxvf filebeat-6.2.2-darwin-x86_64.tar.gz cd filebeat-6.2.2-darwin-x86_64
進入目錄編輯 filebeat.yml 找到對應(yīng)的配置項,配置如下
- type: log ? # Change to true to enable this prospector configuration. ? ?enabled: True ? ?# Paths that should be crawled and fetched. Glob based paths. ? ?# 讀取 Nginx 的日志 ? ?paths: ? ? ?- /usr/local/nginx/logs/*.log(想監(jiān)控的日志目錄都可以添加進去)
?- /var/log/message/*.log #----------------------------- Logstash output -------------------------------- # 輸出到本機的 LogStash output.logstash: ?# The Logstash hosts ?hosts: ["localhost:5044"]
配置完成后執(zhí)行如下命令,啟動 FileBeat 即可
# FileBeat 需要以 root 身份啟動,因此先更改配置文件的權(quán)限 sudo chown root filebeat.yml sudo ./filebeat -e -c filebeat.yml -d "publish"(通過./filebeat -c -e測試配置的FileBeat腳本.-d“publish”顯示所有“publish”相關(guān)的消息。)
啟動成功。
三. Kibana 的安裝運行
Kibana 也提供了對應(yīng)的安裝包下載,鏈接為 https://www.elastic.co/downloads/kibana , Mac、Linux、Win 都有對應(yīng)的安裝包,直接下載解壓即可
tar zxvf kibana-6.2.2-darwin-x86_64.tar.gz cd kibana-6.2.2-darwin-x86_64 # 直接啟動即可 bin/kibana
Kibana 默認鏈接了本機的 9200 端口,其綁定的端口為 5601,啟動成功后直接訪問 127.0.0.1:5601 端口即可,界面如下。
注意:有時本地啟動kibana之后打開界面127.0.0.1:5601會出現(xiàn)這樣的情況。
有可能是因為本地的瀏覽器不兼容問題之類的。可以試著打開遠程連接。用別的設(shè)備遠程訪問.
1.打開Kibana配置文件: vim /usr/local/kibana-6.3.2-linux-x86_64/config/kibana.yml
2.修改訪問參數(shù):server.host修改為本機網(wǎng)卡的地址。
3.重啟kibana服務(wù)。
4.訪問成功。
開始建立索引模式。
注意:有的時候會出現(xiàn)索引模式不能建立的情況。(不能點下一步)
一般為數(shù)據(jù)回傳異常。先檢查filebeat、logstash、elasticsearch、kibana服務(wù)啟動是不是都正常。
檢查filebeat的配置文件。/usr/local/filebeat/config/filebeat.yml.檢查配置。
我上次就是因為配置文件里的output.logstash模塊的端口寫錯。
修改完之后重啟服務(wù)就可以了。
這里選定一個時間戳,使用默認的 timestamp 即可,設(shè)置完成后我們可以根據(jù)時間范圍篩選數(shù)據(jù)。
設(shè)置完成后創(chuàng)建后顯示如下
這時在點擊 Discover 就可以看到我們創(chuàng)建的索引了,此時輸入 UnicodeEncodeError 已經(jīng)返回了匹配到的日志信息。
注意:如果你覺得英語看起來很不舒服,可以考慮漢化。不過提前說明一下,漢化過程是不可逆的。
# 下載并解壓 wget https://artifacts.elastic.co/downloads/kibana/kibana-6.3.0-linux-x86_64.tar.gz tar -zxf kibana-6.3.0-linux-x86_64.tar.gz
漢化
github漢化項目:
https://github.com/anbai-inc/Kibana_Hanization
# 下載并解壓 wget https://github.com/anbai-inc/Kibana_Hanization/archive/master.zip unzip master.zip cd master # 漢化 python main.py Kibana目錄 # 啟動elasticsearch cd elasticsearch-6.3.0/bin elasticsearch -d # 啟動kibana cd kibana-6.3.0-linux-x86_64/bin kibana
瀏覽器訪問 localhost:5601
注意:最后再說一句ELK平臺的啟動可以按照filebeat--> elasticsearch ---> ?logstash---> ?kibana這個順序啟動,不會那么容易出問題。
轉(zhuǎn)載于:https://blog.51cto.com/12283048/2159115
總結(jié)
以上是生活随笔為你收集整理的快速搭建ELK,以及简单故障处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CentOS7Jenkins安装
- 下一篇: WPF - Group分组对ListBo