平臺簡介
開源實時日志分析平臺
- 基于Java8環境
- 基于Centos7 64位平臺
- 基于ELK 5.1.1 版本
平臺的搭建過程可以參考:開源實時日志分析ELK平臺部署
Beats平臺相關介紹:ELK beats平臺介紹(11th)
構成部分
- Beats:
負責收集系統數據,可以直接發送到es中,也可以通過logstash中轉 - logstash:
收集日志,為beats提供中轉功能 - Elasticsearch:
提供數據存儲,服務端聚合計算功能 - Kibana:
提供炫麗的可視化圖形展示并且作為elasticsearch的搜索的小清新客戶端
工作原理
工作原理
Logstash
是一個完全開源的工具,他可以對你的日志進行收集、分析,并將其存儲供以后使用
安裝
解壓縮之后,進入bin目錄,直接執行看看結果
./logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'
配置文件
自建一個配置目錄:conf,創建一個配置文件 myConf.conf
input {
stdin {}
}
output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => ["192.168.139.58:9200"]
}
}
這里注意:配置elasticsearch的服務器地址
執行方法
$ bin/logstash -f conf/myConf.conf
Elasticsearch
ElasticSearch是一個開源的分布式搜索引擎,具備高可靠性,支持非常多的企業級搜索用例。像Solr4一樣,是基于Lucene構建的。支持時間時間索引和全文檢索。官網
這里使用的版本是5.1.1,運行之后默認端口9200
- 安裝插件:elasticsearch-head
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
grunt server
修改配置文件Gruntfile.js,hostname修改為*
connect: {
server: {
options: {
hostname: '*',
port: 9100,
base: '.',
keepalive: true
}
}
}
默認的運行端口為9100
- 修改elasticsearch的配置文件
修改elasticsearch.yml文件,增加下面兩句,目的是允許elasticsearch-head進行訪問
http.cors.enabled: true
http.cors.allow-origin: "*"
- centos7上啟動錯誤一
錯誤信息如下:
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:100) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:176) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:306) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:121) ~[elasticsearch-5.1.1.jar:5.1.1]
... 6 more
解決方法:不能用root用戶進行啟動
- centos7上啟動錯誤二
錯誤信息如下:
ERROR: bootstrap checks failed
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解決方法:修改/etc/security/limits.conf文件,添加或修改如下行(用戶名為lxm)
lxm hard nofile 65536
lxm soft nofile 65536
- centos7上啟動錯誤三
錯誤信息如下:
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解決方法:
臨時生效的方法
sudo sysctl -w vm.max_map_count=262144
永久生效的方法:修改 /etc/sysctl.conf,增加如下的設置
vm.max_map_count=262144
執行命令讓設置生效
sysctl -a
- 集群中發現的錯誤
elasticsearch中節點都啟動但是無法形成集群問題
kibana
修改配置文件config/kibana.yml
server.port: 5601
server.host: "192.168.139.58"
elasticsearch.url: "http://192.168.139.58:9200"
啟動kibana
$ bin/kibana
Beats配置:packetbeat
需要在被監控機器上安裝,演示packetbeat,其他類似
- 修改配置文件 packetbeat.yml,這里直接連接elasticsearch,不通過Logstash
output.elasticsearch:
hosts: ["192.168.139.58:9200"]
- 配置elasticsearch模板
curl -XPUT 'http://192.168.139.58:9200/_template/packetbeat' -d@/home/lxm/packetbeat-5.1.1-linux-x86_64/packetbeat.template.json
- 安裝beats-dashboards
$ git clone https://github.com/elastic/packetbeat-dashboards
$ cd packetbeat-dashboards/
# 將dashboard的模板配置數據存進elasticsarch里面
$ ./load.sh -url http://192.168.139.58:9200
- 啟動packetbeat
$ sudo ./packetbeat -e -c packetbeat.yml
-
在Kibana中查看儀表盤
選擇儀表盤設置