zabbix自定義監控進程與日誌 zabbix自定義監控進程 基於之前的郵箱告警,部署完成後,我們在zabbix客戶端進行編譯腳本用來監控進程, 下麵是通過httpd進程來進行測試 在客戶端 [root@localhost ~]# dnf -y install httpd //下載httpd [ro ...
zabbix自定義監控進程與日誌
目錄
zabbix自定義監控進程
基於之前的郵箱告警,部署完成後,我們在zabbix客戶端進行編譯腳本用來監控進程,
下麵是通過httpd進程來進行測試
在客戶端
[root@localhost ~]# dnf -y install httpd //下載httpd
[root@localhost ~]# systemctl enable --now httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
設置開機自啟
[root@localhost ~]# mkdir -p /scripts/zabbix/ //創建腳本存放目錄
[root@localhost ~]# cd /scripts/zabbix/
[root@localhost zabbix]# vim check_process.sh //編輯腳本
[root@localhost zabbix]# cat check_process.sh
#!/bin/bash
count=$(ps -elf | grep -vE "$0|grep" | grep $1 | wc -l) //定義一個變數統計服務進程的行數
if [ $count -eq 0 ];then //使用if語句,當count等於0的時候就說明有問題,列印“1”,代表有問題
echo "1"
else
echo "0" //否則列印“0”,代表沒問題
fi
[root@localhost zabbix]# chmod +x check_process.sh
//賦予執行許可權
[root@localhost zabbix]# ./check_process.sh httpd
0 //沒問題
[root@localhost zabbix]# ./check_process.sh mysql
1 //有問題
[root@localhost zabbix]# vim /usr/local/etc/zabbix_agentd.conf
//編輯/usr/local/etc/zabbix_agentd.conf文件
UnsafeUserParameters=1
UserParameter=check_process[*],/bin/bash /scripts/zabbix/check_process.sh $1
[root@localhost zabbix]# pkill zabbix_agentd
[root@localhost zabbix]# zabbix_agentd
//先殺死再重啟
[root@localhost ~]# ss -antl //查看埠
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:10050 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 *:80 *:*
LISTEN 0 128 [::]:22 [::]:*
在服務端測試
[root@localhost ~]# ss -antl //查看埠
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:80 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 100 127.0.0.1:25 0.0.0.0:*
LISTEN 0 128 0.0.0.0:10050 0.0.0.0:*
LISTEN 0 128 0.0.0.0:10051 0.0.0.0:*
LISTEN 0 128 127.0.0.1:9000 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 100 [::1]:25 [::]:*
LISTEN 0 70 *:33060 *:*
LISTEN 0 128 *:3306 *:*
[root@localhost ~]# zabbix_get -s 192.168.222.251 -k check_process[httpd]
0
//在服務端進行測試,輸入的是客戶端的ip
接下來就需要在zabbix web管理界面去定義監控項與觸發器了
創建監控項
這裡選擇的主機與你的被監控主機(客戶端)對應
點擊add(添加)
添加觸發器
現在關掉被監控端(客戶端)的httpd服務,驗證效果
[root@localhost ~]# systemctl stop httpd
zabbix自定義監控日誌
監控日誌同樣需要使用腳本(或Python),也需要在被監控端做配置
以下需要用到的log.py文件可以去GitHub面查看下載log.py
在客戶端
我們想要監控/var/log/error_log日誌有沒有錯誤信息,要確保這個目錄誰都可以讀取,文件也一樣
[root@localhost ~]# cd /var/log/httpd/
[root@localhost httpd]# chmod 775 /var/log/httpd/
[root@localhost httpd]# ll -d /var/log/httpd/
drwxrwxr-x. 2 root root 41 Sep 7 03:05 /var/log/httpd/
[root@localhost httpd]# ll /var/log/httpd/error_log
-rw-r--r--. 1 root root 2348 Sep 7 03:50 /var/log/httpd/error_log
[root@localhost ~]# cd /scripts/zabbix/
[root@localhost zabbix]# dnf module -y install python38 //沒有python安裝
[root@localhost zabbix]# ls
check_process.sh
[root@localhost zabbix]# vim log.py
[root@localhost zabbix]# ls
check_process.sh log.py
[root@localhost zabbix]# chmod +x log.py //賦予執行許可權
[root@localhost zabbix]# vim /usr/local/etc/zabbix_agentd.conf
UserParameter=check_logs[*],/usr/bin/python3 /scripts/zabbix/log.py $1 $2 $3
//編輯/usr/local/etc/zabbix_agentd.conf文件
[root@localhost zabbix]# pkill zabbix_agentd
[root@localhost zabbix]# zabbix_agentd
//殺死重啟zabbix_agentd
//在服務端測試是否可用
[root@localhost ~]# zabbix_get -s 192.168.222.251 -k check_logs[/var/log/httpd/error_log,/tmp/logseek,error]
配置監控項
配置觸發器
在被監控端手動觸發告警
[root@localhost zabbix]# echo "Error" >> /var/log/httpd/error_log