zabbix监控项,触发器,事件
- 1.基本的自定义监控项
- 在zabbix代理端配置文件中配置User parameters
- 在服务端进行检测
- 2.配置带参数的监控项(内存)
- 1.编写获取参数脚本
- 2.编辑agent配置文件
- 3.配置带参数的监控项(nginx)
- 1.nginx配置nginx_stub_status模块
- 2.编写获取数值的脚本
- 3.配置zabbix_agentd.conf
- 4.在server端验证
- 4.触发器
- 1.事先定义好一个监控项disk_usage监控根目录的使用了百分比
- 2.添加触发器并测试(使用率超过20%触发)
- 3.验证触发器
- 5.设置告警媒介及事件
- 1.开启QQ邮箱的smtp服务
- 2.测试sendEmail发送邮箱
- 3.编写发送邮箱脚本
- 4.在web界面配置媒介类型
- 5.创建动作
- 6.再次往系统写入文件触发报警
1.基本的自定义监控项
在zabbix代理端配置文件中配置User parameters
`UserParameter=key,echo 1`
在服务端进行检测
![在服务端进行检测]()
2.配置带参数的监控项(内存)
1.编写获取参数脚本
#mem_status
#!/bin/bash
case $1 in
free)
echo "`free | awk 'NR==2{print$4}'`"
;;
used)
echo "`free | awk 'NR==2{print$3}'`"
;;
*)
echo "`free | awk 'NR==2{print$2}'`"
;;
esac
2.编辑agent配置文件
UserParameter=mem.status[*],/scripts/mem_status.sh $1
systemctl restart zabbix-agent
web界面使用监控项监控
3.配置带参数的监控项(nginx)
1.nginx配置nginx_stub_status模块
[root@web1 scripts]# curl 127.0.0.1/status
Active connections: 1
server accepts handled requests
107 107 110
Reading: 0 Writing: 1 Waiting: 0
2.编写获取数值的脚本
#!/bin/bash
#zabbix_nginx.sh by czy
host=127.0.0.1
port=80
function active() {
/usr/bin/curl http://$host:$port/status 2>/dev/null | grep Active | awk '{print $NF}'
}
#zabbix_nginx.sh by czy
host=127.0.0.1
port=80
function active() {
/usr/bin/curl http://$host:$port/status 2>/dev/null | grep Active | awk '{print $NF}'
}
function reading(){
/usr/bin/curl "http://$host:$port/status" 2>/dev/null | grep "Reading" | awk '{print $2}'
}
function writing(){
/usr/bin/curl "http://$host:$port/status" 2>/dev/null | grep "Writing" | awk '{print $4}'
}
function accepts(){
/usr/bin/curl "http://$host:$port/status" 2>/dev/null | awk 'NR==3' | awk '{print $1}'
}
function handled(){
/usr/bin/curl "http://$host:$port/status" 2>/dev/null | awk 'NR==3' | awk '{print $2}'
}
function requests(){
/usr/bin/curl "http://$host:$port/status" 2>/dev/null | awk 'NR==3' | awk '{print $3}'
}
function ping(){
/sbin/pidof nginx | wc -l
}
$1 #获取参数执行函数
3.配置zabbix_agentd.conf
UserParameter=nginx.status[*],/scripts/zabbix_nginx.sh $1
4.在server端验证
4.触发器
1.事先定义好一个监控项disk_usage监控根目录的使用了百分比
2.添加触发器并测试(使用率超过20%触发)
大于20表示为TRUE
3.验证触发器
在虚拟机上查看/目录使用率为19%
在zabbixweb界面查看为18.36%
往系统中写入文件增大文件系统使用率
dd if=/dev/zero of=BIGFILE bs=1M count=1300
使用率超过20%
触发器生效
使用率超过20
5.设置告警媒介及事件
1.开启QQ邮箱的smtp服务
2.测试sendEmail发送邮箱
sendEmail -f 1031211365@qq.com -t 1031211365@qq.com -u "zabbix_server" -s smtp.qq.com -o message-content-type=html -o message-charset=utf8 -xu 1031211365@qq.com -xp vtsynfibezkqbega -m "邮件发送成功“
3.编写发送邮箱脚本
vim /usr/lib/zabbix/alertscripts/sendmail.sh
#!/bin/bash
# zabbix_mail
from=1031211365@qq.com
to=$1
topic=$2
body=$3
smtp=smtp.qq.com
passwd=vtsynfibezkqbega
/usr/bin/sendEmail -f "$from" -t "$to" -s "$smtp" -u "$topic" -o message-content-type=html -o message-charset=utf8 -xu "$from" -xp "$passwd" -m "$body"
4.在web界面配置媒介类型
在用户界面添加报警媒介
5.创建动作
#告警通知格式样例
#题目
A故障:{TRIGGER.STATUS},服务器:{HOSTNAME1}发生:{TRIGGER.NAME}故障!
#内容
告警主机: ;{HOSTNAME1}<br/>
告警时间: ;{EVENT.DATE} {EVENT.TIME}<br/>
告警等级: ;{TRIGGER.SEVERITY}<br/>
告警信息: ;{TRIGGER.NAME}<br/>
告警项目: ;{TRIGGER.KEY1}<br/>
问题详情: ;{ITEM.NAME} {ITEM.VALUE}<br/>
当前状态: ;{TRIGGER.STATUS} {ITEM.VALUE1}<br/>
事件ID: ;{EVENT.ID}
6.再次往系统写入文件触发报警