1、客户端配置
[root@mysql zabbix_agentd.conf.d]# pwd
/usr/local/zabbix-server/etc/zabbix_agentd.conf.d
[root@mysql zabbix_agentd.conf.d]# cat custom_parameters.conf
UserParameter=masterha_manager,[ `/bin/ps aux | /bin/grep -v grep | /bin/grep -o masterha_manager` == masterha_manager ] &> /dev/null ;echo $?
UserParameter=crond,[ `/bin/ps aux | /bin/grep -v grep | /bin/grep -o crond` == crond ] &> /dev/null ;echo $?
UserParameter=postfix,[ `/bin/ps aux | /bin/grep -v grep | /bin/grep -o postfix` == postfix ] &> /dev/null ;echo $?
UserParameter=error,/usr/local/zabbix-server/error_log.sh
2、检查日志关键字脚本
#!/bin/bash
msg=`tail -n 100 /var/log/secure | grep -iE "error" `
if [ ! -n "$msg" ];then
echo "OK"
exit 0
else
echo "error"
exit 0
fi
3、zabbix 监控项和触发器配置
监控项配置:
触发器配置:
4、告警展示
zabbix_get查看agent端的key值提示没有权限:Permission denied
zabbix使用自动发现创建监控项
agent端的配置:
自动发现实例名,ip,端口
#!/bin/bash
printf "{\n"
printf '\t'"\"data\":["
first=1
for info in `cat /root/test.log`
do
IFS=',' read -r -a itmes <<< $info
if [ $first == 1 ];then
printf '\n\t\t{'
echo "\"{#PIDNAME}\":\"${itmes[0]}\",\"{#IP}\":\"${itmes[1]}\",\"{#PORT}\":\"${itmes[2]}\"}"
first=0
else
printf '\n\t\t'
echo ",{\"{#PIDNAME}\":\"${itmes[0]}\",\"{#IP}\":\"${itmes[1]}\",\"{#PORT}\":\"${itmes[2]}\"}"
fi
done;
printf "\n\t]\n"
printf "}\n"
agent的配置文件
[root@test zabbix_agentd.d]# vim flume.conf
UserParameter=disc_flume,bash /etc/zabbix/zabbix_agentd.d/disc_flume.sh
server端执行zabbix_get提示报错:没有权限
[root@zabbix ~]# zabbix_get -s 192.168.191.151 -p 10050 -k disc_flume
{
"data":[cat: /root/test.log: Permission denied
]
}
分析结果:agent端的selinux和firewalld已经关闭
需要更改agent的配置文件
修改为AllowRoot=1
server端再次执行脚本结果:
[root@zabbix ~]# zabbix_get -s 192.168.191.151 -p 10050 -k disc_flume
{
"data":[
{"{#PIDNAME}":"flume-test1","{#IP}":"192.168.1.1","{#PORT}":"9092"}
,{"{#PIDNAME}":"flume-test2","{#IP}":"192.168.1.2","{#PORT}":"9093"}
]
}