Elk是指elasticsearch,logstash,kibana三件套,咱們通常使用它們作日誌分析 ELK+redis關係html
rsyslog 啓動---->logstash elasticsearch---logstash---->kibana elasticsearch---logstash---->redis
實時文件存儲,每一個字段均可被索引java
分佈式實時分析搜索引擎node
Elasticsearch是個開源分佈式搜索引擎,提供蒐集、分析、存儲數據三大功能。它的特色有:分佈式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。linux
Logstash 主要是用來日誌的蒐集、分析、過濾日誌的工具,支持大量的數據獲取方式。通常工做方式爲c/s架構,client端安裝在須要收集日誌的主機上,server端負責將收到的各節點日誌進行過濾、修改等操做在一併發往elasticsearch上去。redis
Kibana 也是一個開源和免費的工具,Kibana能夠爲 Logstash 和 ElasticSearch 提供的日誌分析友好的 Web 界面,能夠幫助彙總、分析和搜索重要數據日誌。bootstrap
X-pack 監控組件使您能夠經過Kibana輕鬆地監控ElasticSearch。您能夠實時查看集羣的健康和性能,以及分析過去的集羣、索引和節點度量。此外,您能夠監視Kibana自己性能。當你安裝X-pack在羣集上,監控代理運行在每一個節點上收集和指數指標從Elasticsearch。安裝在X-pack在Kibana上,您能夠查看經過一套專門的儀表板監控數據。vim
yum update Java 1.8 環境 yum -y install java java -version yum -y install lrzsz
官網ruby
rz elastic mkdir /data/server # 目錄建設規範 tar -zxvf 解壓包 /data/server/ mv elastic /data/server # 放到標準目錄裏 useradd elastic # 新建elastic用戶 chown -R elastic.elastic /data/server/elasticserver/ ll # 查看所屬用戶 ps aux | grep elastic su elastic ./bin/elasticsearch vim /etc/security/limit elastic soft memlock unlimited elastic hard memlock unlimited * soft nofile 655366 * hard nofile 100002 vim /etc/sysctl.conf vm.max_map_count=362144 sysctl -p vim config/elasticsearch/yml bootstrap.memory_lock: true network.host: 192.168.234.129 http.port: 9200 node.max_local_storage_nodes: 256 rm -rf data/nodes/0/node.lock # 若鎖住錯誤 vim config/jvm.options -Xms1g -Xmx1g ulimit -n ulimit -s 655355
2.2.2 啓動elasticsearchrestful
/data/server/elasticsearch-5.6.8/bin/elasticsearch netstat -pantu | grep "9200"
1.關閉防火牆架構
永久關閉selinux 修改 /etc/selinux/config 文件中的 SELINUX="" 爲 disabled ,而後重啓。 setenforce 0 #即時生效 systemctl stop firewalld.service
2.elastic須要專用的用戶啓動
useradd elastic # 新建elastic用戶 chown -R elastic.elastic /data/server/elasticserver/
3.Java地址問題
ps aux |grep java pkill -9 java
4.要求改變data
出現data錯誤時 ps aux |grep log kill log 進程 kill -9
5.若碰見lock 鎖住
vim config/elasticsearch/yml node.max_local_storage_nodes: 256 rm -rf data/nodes/0/node.lock # 若鎖住錯誤
6.系統內存不足須要elastic優化
vim config/jvm.options -Xms1g -Xmx1g ulimit -n ulimit -s 655355
7.主機優化
vim /etc/sysctl.conf vm.max_map_count=362144 sysctl -p
8.FATAL Port 5601 is already in use. Another instance of Kibana may be running!
fuser -n tcp 5601 kill -9 56948
Logstash 是Elasticsearch 數據管道
Logstash :input output 可選:filter
tar -zxvf logstash mv logstash /data/server/ vim /etc/rsyslog.conf $ModLoad imudp $UDPServerRun 514 $ModLoad imtcp $InputTCPServerRun 514 *.* @192.168.23.166:5000 vim /data/server/conf/syslog.conf input{ tcp{ port => 5000 type => syslog } udp{ port => 5000 type =>syslog } } output{ elasticsearch { hosts =>["192.168.23.166:9200"] index => "zhj" } stdout {} }
systemctl start rsyslog su elastic /data/server/elasticsearch-5.6.8/bin/elasticsearch exit /data/server/logstash-5.6.8/bin/logstash -f /data/server/conf/syslog.conf logger -p info "hello, remote rsyslog"#手工添加日誌信息
vim /data/server/conf/syslog.conf input{ tcp{ port => 5000 type => syslog } udp{ port => 5000 type =>syslog } } output{ elasticsearch { hosts => ["192.168.23.166:9200"] index => "zhj-%{+YYYY.MM.dd}" } stdout { codec => rubydebug } } su kibana vim /data/server/kibana-5.6.8-linux-x86_64/config/kibana.yml server.port: 5601 server.host: "192.168.23.166" elasticsearch.url: "http://192.168.23.166:9200" :wq
/data/server/kibana-5.6.8-linux-x86_64/bin/kibana 登陸kibana http://192.168.23.166:5601 查看索引: http://192.168.23.166:9200/_cat/indices?v
1.kibana 不能實時抓日誌
修改主機服務時間
date -s "2018-05-20 10:00:00"
2.kibana在使用
ps -ef|grep kibana ps -ef|grep 5601 都找不到 嘗試 使用 fuser -n tcp 5601 kill -9 端口 啓動便可 ./kibana
將log日誌放在redis上,而後redis將日誌轉到elastic上
上傳Redis-3.2.1.tar.gz包,解壓到/data/server/ yum -y install tcl* # redis 庫依賴 cd /data/server/redis-3.2.1 make && make install vim /data/server/conf/syslog.conf input{ tcp{ port => 5000 type => syslog } udp{ port => 5000 type =>syslog } } output { redis { host => "192.168.23.166" port => "6379" data_type => "list" key => "sys_log:redis" } } input { redis { host => "192.168.23.166" port => "6379" data_type => "list" key => "sys_log:redis" type => "redis-input" } } output { elasticsearch { hosts => "192.168.23.166:9200" index => "zhj" } stdout { codec => rubydebug } }
鏈接客戶端,查看日誌
配置中redis.conf文件中修改bind值爲192.168.23.166 systemctl start rsyslog su elastic /data/server/elasticsearch-5.6.8/bin/elasticsearch /data/server/redis-3.2.1/src/redis-server /data/server/redis-3.2.1/redis.conf /data/server/logstash-5.6.8/bin/logstash -f /data/server/conf/syslog.conf /data/server/redis-3.2.1/src/redis-cli -h 192.168.234.129 #啓動kibana /data/server/kibana-5.6.8-linux-x86_64/bin/kibana /data/server/redis-3.2.1/src/redis-cli -p 6379 keys *
/data/server/elasticsearch-5.6.8/bin/elasticsearch-plugin install x-pack
一路 y
/data/server/kibana-5.6.8-linux-x86_64/bin/kibana-plugin install x-pack 增長 elastic user => "elastic" password => "changeme"
6.3手動離線安裝
6.4破解graph 版本
luyten java反編譯
1.本身的有道筆記
2.各組件原理介紹請看 ELK原理
找時間在優化下排版和配圖吧...太糟糕了-.-||