日志分析平台ELK部署初学
1)ELK介紹
ELK官方網(wǎng)站:https://www.elastic.co/products
elk-docker 官網(wǎng):http://elk-docker.readthedocs.org/#installation
日志分析平臺ELK由 ElasticSearch 、 Logstash 和 Kiabana 三個開源工具組成。Elasticsearch 是個開源分布式搜索引擎,它的特點有:分布式,零配置,自動發(fā)現(xiàn),索引自動分片,索引副本機(jī)制, restful風(fēng)格接口,多數(shù)據(jù)源,自動搜索負(fù)載等。Logstash 是一個完全開源的工具,他可以對你的日志進(jìn)行收集、分析,并將其存儲供以后使用(如搜索)。kibana 也是一個開源和免費(fèi)的工具,Kibana 可以為 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以幫助您匯總、分析和搜索重要數(shù)據(jù)日志。
在需要收集日志的所有服務(wù)上部署 logstash ,作為 logstash agent ( logstash shipper )用于監(jiān)控并過濾收集日志,將過濾后的內(nèi)容發(fā)送到logstash indexer , logstash indexer 將日志收集在一起交給全文搜索服務(wù) ElasticSearch ,可以用 ElasticSearch 進(jìn)行自定義搜索通過 Kibana 來結(jié)合自定義搜索進(jìn)行頁面展示?;驹砣缦聢D:
2)JDK部署
Logstash?依賴JDK,部署Ubuntu+jdk+tomcat基本環(huán)境。
3)安裝Logstash
下載logstash-2.2.2.zip并解壓,進(jìn)入logstash-2.2.2目錄。
執(zhí)行啟動:
#bin/logstash-e 'input { stdin { } } output { stdout {} }'
運(yùn)行后顯示如下:
Settings:Default pipeline workers: 8
Logstashstartup completed
logstash按照某種格式輸出所輸入的內(nèi)容,其中-e參數(shù)允許Logstash直接通過命令行接受設(shè)置。
使用CTRL-C命令可以退出之前運(yùn)行的Logstash。
使用-e參數(shù)設(shè)置外,還可以創(chuàng)建配置文件并制定logstash使用這個配置文件運(yùn)行。
在logstash-2.2.2目錄下創(chuàng)建test.conf,內(nèi)容如下:
# vi test.conf
input {stdin { } }
output {
?? stdout { codec=> rubydebug }
}
Logstash 使用input 和 output 定義收集日志時的輸入和輸出的相關(guān)配置。
使用logstash的-f參數(shù)來讀取配置文件,并啟動。
# bin/logstashagent -f test.conf
運(yùn)行后顯示如下:
Settings:Default pipeline workers: 8
Logstashstartup completed
Helloworld?? //輸入
{
?????? "message" => " Helloworld ",
????? "@version" => "1",
??? "@timestamp" =>"2016-04-11T01:27:22.765Z",
????????? "host" =>"ubuntu.202.96.128.86"
}
4)安裝Elasticsearch
下載elasticsearch-2.2.1.tar.gz并解壓,進(jìn)入elasticsearch-2.2.1目錄。
執(zhí)行下面命令啟動:
#bin/elasticsearch
提示:Exceptionin thread "main" java.lang.RuntimeException: don't run elasticsearchas root.
# adduser elastic?? //新增用戶
# chown –Relastic:elastic /home/elasticsearch-2.2.1?//授權(quán)安裝目錄訪問權(quán)限
#suelastic? //重新運(yùn)行bin/elasticsearch
遠(yuǎn)程連接并后臺運(yùn)行命令:
#bin/elasticsearch>nohup &
查看elasticsearch 的 9200 端口是否已監(jiān)聽:
#netstat-anp |grep ?9200
在logstash-2.2.2目錄下創(chuàng)建test2.conf,內(nèi)容如下:
input {stdin { } }
output {
?elasticsearch { host => "IP"}
?stdout { codec=> rubydebug }
}
# bin/logstashagent -f test2.conf
使用curl 命令發(fā)送請求來查看 ES 是否接收到了數(shù)據(jù):
# curl'http://ip:9200/_search?pretty'
5)安裝elasticsearch 插件
Elasticsearch-kopf插件可以查詢 Elasticsearch 中的數(shù)據(jù),elasticsearch-2.2.1目錄執(zhí)行:
#./plugin-install lmenezes/elasticsearch-kopf
安裝完成后在plugins 目錄下可以看到 kopf
# lsplugins/
瀏覽保存在Elasticsearch 中的數(shù)據(jù)http://IP:9200/_plugin/kopf
6)安裝Kibana
下載kibana-4.4.2-linux-x64.tar.gz并解壓,進(jìn)入kibana-4.4.2-linux-x64目錄。
啟動kibana執(zhí)行:
#bin/kibana
使用http:// IP:5601 訪問 Kibana ,登錄后,首先,配置一個索引,默認(rèn), Kibana 的數(shù)據(jù)被指向 Elasticsearch ,使用默認(rèn)的 logstash-* 的索引名稱,并且是基于時間的,點擊“ Create ”即可。
索引創(chuàng)建成功后,點擊“ Discover ”,可以搜索和瀏覽 Elasticsearch 中的數(shù)據(jù),默認(rèn)搜索的是最近 15 分鐘的數(shù)據(jù),可以自定義選擇時間。
7)平臺測試
將logstash 配置為索引器,并將 logstash 的日志數(shù)據(jù)存儲到 Elasticsearch ,本范例主要是索引本地系統(tǒng)日志。在在logstash-2.2.2目錄下創(chuàng)建test3.conf,內(nèi)容如下:
input {
? file {
??? type =>"syslog"
???? path => ["/var/log/messages","/var/log/syslog" ]
? }
? syslog {
??? type =>"syslog"
??? port =>"5544"
? }
}
output {
? stdout { codec=> rubydebug }
? elasticsearch {host => "IP" }
}
啟動:
# bin/logstash–f test3.conf
使用echo 命令模擬寫入日志:
# echo"`date` test3" >>/var/log/messages
刷新 kibana ,最新的測試數(shù)據(jù)顯示到瀏覽器中。總結(jié)
以上是生活随笔為你收集整理的日志分析平台ELK部署初学的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nutch爬虫引擎使用分析
- 下一篇: JSP关于Frameset的简单用法