Zabbix 自定义监控
zabbix-agent 获取数据,然后定义,交给 zabbix-server 端
Zabbix 配置监控项
监控的内容
# 监控服务器登录用户的数量
[root@web01 ~]# w | awk 'NR==1 {print $(NF-6)}'
1
客户端配置文件
[root@web01 ~]# egrep -v "^#|^$" /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=172.16.1.71
ServerActive=172.16.1.71
Hostname=db01
# 子配置文件路径
Include=/etc/zabbix/zabbix_agentd.d/*.conf
定义监控项语法
# 语法:
Format:
UserParameter=<key>,<shell command>
# 官方示例
[root@web01 ~]# tail -n 2 /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive
UserParameter=mysql.version,mysql -V
设置自定义监控项
[root@web01 ~]# vim /etc/zabbix/zabbix_agentd.d/login_user.conf
UserParameter=login_usernumber,w | awk 'NR==1 {print $(NF-6)}'
重启客户端
[root@web01 ~]# systemctl restart zabbix-agent.service
客户端验证
[root@web01 ~]# zabbix_agentd -t login_usernumber
login_usernumber [t|4]
[root@web01 ~]# zabbix_agentd -p | grep login_usernumber
login_usernumber [t|4]
# 得到的结果,前面的字母含义
d # 带小数部分的数字
m # 不支持,只有在这种模式下,查询日志才可能是活动的(如日志监视项或需要多个收集值的项)引起的。权限问题或不正确的用户参数可能
s # 文本。最大长度不受限制。
t # 文本。最大长度不受限制。
u # 无符号整数
服务端获取值
[root@zabbix ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-get-4.0.1-1.el7.x86_64.rpm
# zabbix_get 语法
zabbix_get -s host-name-or-IP [-p port-number] [-I IP-address] -k item-key
-s # 主机名或者IP地址
-p # 端口
-I # IP地址
-k # 监控项的key名称
[root@zabbix ~]# zabbix_get -s 172.16.1.7 -p 10050 -k login_usernumber
4
Web 页面添加监控项
Zabbix 配置触发器(阈值)
Zabbix 邮件告警
自定义告警邮件格式
#==================== 告警标题 & 告警模板 ========================#
# 默认标题:
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
# 消息内容:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
#==================== 恢复标题 & 恢复模板 ========================#
# 默认标题:
恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
# 消息内容:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}