logstash 監控


簡介

要給公司的logstash集群添加監控,因為有時候logstash突然掛了,會導致ELK沒有數據,往往等需要查日志的時候,才發現已經來不及了。

思路,logstash 5.x 以上提供了API端口監聽等接口,只要每個logstash實例啟動分別指定一個端口號,再通過TCP,HTTP等方式,定時連接IP和端口,就可以發郵件等方式通知到運維去重啟logstash。

所以接下來重點只介紹如何把logstash集群全部改為指定ip和端口啟動。

1. 開啟防火牆端口號

logstash 不指定端口的情況下,會默認從 9600-9700之間獲取第1個可用端口啟動

因為我每台機都要啟動3-6個實例,所以開這么多端口

sudo iptables -A INPUT -ptcp --dport 9600 -j ACCEPT
sudo iptables -A INPUT -ptcp --dport 9601 -j ACCEPT
sudo iptables -A INPUT -ptcp --dport 9602 -j ACCEPT
sudo iptables -A INPUT -ptcp --dport 9603 -j ACCEPT
sudo iptables -A INPUT -ptcp --dport 9604 -j ACCEPT
sudo iptables -A INPUT -ptcp --dport 9605 -j ACCEPT
sudo iptables -A INPUT -ptcp --dport 9606 -j ACCEPT

保存防火牆

sudo service iptables save

重啟防火牆

sudo service iptables restart

查看防火牆配置

sudo more /etc/sysconfig/iptables

2. 修改logstash.yml 配置的 IP

如果不改成宿主機的IP,默認使用 127.0.0.1,這樣外面的機器是無法通過TCP/HTTP等方式訪問的

vim logstash.yml

# 修改如下
# Bind address for the metrics REST endpoint
#
# http.host: "127.0.0.1"
http.host: "177.168.0.122"

3. 查看logstash集群每台實例占用的端口

如果是第一次啟動,可跳過這一步,直接執行第4步

因為已啟動的6台logstash,已經分別占用了9600-9700的端口

我只是為了減少對線上的影響,先查看具體占用了哪些端口,再記錄下來,kill掉后按自定義端口啟動,避免端口占用

#查看logstash進程號
ps -ef | grep logstash

#根據進程號,查看綁定的 IP:PORT
sudo netstat -nap | grep 27892

#或者直接查看端口號綁定信息
lsof -i:9600

#記錄好PORT后kill掉進程
kill -9 27892

4. 指定端口號啟動logstash

nohup ./logstash -f logstsash1.conf --http.port 9601  & >/dev/null &

遇到了第2步修改host不生效的情況,直接使用啟動參數方式啟動:

nohup ./logstash -f logstsash1.conf --http.host 177.168.0.122  --http.port 9601  & >/dev/null &

5. TCP/HTTP訪問

HTTP測試:

# Linux訪問
curl -XGET '177.168.0.122:9601/_node/pipeline?pretty=true'

# 網頁訪問
http://177.168.0.122:9601/_node/pipeline?pretty=true

更多版本與API看ES官方文檔

 

TCP測試:

windows測試TCP,得下載個小工具psping

C:\Users\liwei>psping 177.168.0.122:9601

 

監控部署上線可弄個連接TCP或HTTP的定時任務,發郵件通知等。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM