簡單ELK日誌查詢服務程序搭建

最近在翻<<JAVA微服務實戰>>這本書,書中有介紹一個微服務日誌系統;

 

ELK是一個技術棧,包括Elasticsearch,Logstash和Kibana,ELK是三種技術首字母縮寫.ELK主要用於日誌收集.存儲與查詢..

 

爲什麼用ELK,就是簡單的方便查詢分析日誌唄...

 

常用的ELK的架構爲 logstash==>elasticsearch====>kibana...個人感覺kibana更多的功能在於操作查詢使用,一種操作es的可視化工具,在ELK中扮演的作用並不大..

 

考慮到

  • 併發日誌量增加
  • logstash將數據索引到ElasticSearch比較慢
  • 索引失敗,數據丟失

 

後來多引入一個組件:redis,作爲緩衝框架;

 

應用服務===> logstash-shipper ===>redis ===>logstash-indexer ====>elasticSearch ====>kibana;

此時應用服務,shipper,redis,indexer都是用分佈式來實現的...相應的組件就是:

本地微服務,logstash,redis,es,kibana;

然後es用的版本是:

其實版本用的挺雜的,自己用這幾版本能真正用起來,其實就已經很不錯了....

基礎環境:

jdk 1.8

 

注意事項:

  • 微服務引入logback的版本要一致,不能有衝突;
  • es的安裝需要切換用戶;root用戶是不能啓動執行的
  • redis的安裝設置後臺啓動;修改redis.conf中daemonize爲yes,bind參數最好也改一下,很多文章要求改爲ip.我是改爲0.0.0.0,感覺改成這樣更好用...(也可以能是個大坑,至少我現在還沒踩到...嘻嘻嘻...)
  • logstash中的設置,注意input和output的插件類型,是file還是tcp;注意ip
  • logstash中的配置文件的格式及 => 等符號...具體有錯誤時,請仔細查看啓動日誌(tail -f nohup)非常有用.

至少上面幾點是我踩過的坑,真是有效.

 

各程序的啓動命令(僅方便本人使用)

es:su es(切換es用戶) 進入 /usr/local/elasticsearch下,./bin/elasticsearch -d 啓動即可,jps -m -l查看進程 ip:9200

kibana:進入/home/soft/kibana-6.3.2-linux-x86_64..執行命令 nohup ./bin/kibana & 後臺執行 node程序  ip:5601
    查看進程  netstat -tlnp |grep 5601得到一個pid,ps aux | grep pid(上一個命令的pid值) 即可
ip:5601

redis安裝目錄:
/home/soft/redis-5.0.7
啓動服務端:./src/redis-server redis.conf  (bind 0.0.0.0)

啓動客戶端:./src/redis-cli (因爲我已經改過bind了..所以沒問題)

啓動:logstash-indexer/shipper:

nohup ./bin/logstash -f conf/logstash.conf & 啓動即可...tail -f nohup.out查看啓動日誌

關閉:ps -ef|grep logstash  看清楚,哪個是你的進程,再kill掉

 

其他的坑,後期遇到了再補充...本文簡單介紹,下文分開說.

發佈了165 篇原創文章 · 獲贊 40 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章