温馨提示:开始本节内容之前请先做好快照!!!
19.2 添加自定义监控项目
该配置的用途是监控模板中没有的监控项目。
需求:监控某台web的80端口连接数,并出图。
步骤: 1) zabbix监控中心创建监控项目 2) 针对该监控项目以图形展现
配置80端口的监控脚本
客户端: 统计80端口连接数量
代码语言:javascript复制[root@z1 ~]# vim /usr/local/sbin/estab.sh
#!/bin/bash
##获取80端口并发连接数
netstat -ant |grep ':80 ' |grep -c ESTABLISHED
注意:80后面跟一个空格,保证匹配更精确,如果不加空格,会把8080端口同时过滤出来。
更改权限:
[root@z1 ~]# chmod 755 /usr/local/sbin/estab.sh
配置zabbix-agent.conf:
[root@z2 ~]# vim /etc/zabbix/zabbix_agentd.conf
UnsafeUserParameters=1 #表示使用自定义脚本
UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh
#自定义监控项的key(监控web端“键值”)为my.estab.count,后面的[*]里面写的是脚本参数
#如果没有参数则可以省略,脚本为/usr/local/sbin/estab.sh
重启zabbix服务:
[root@z2 ~]# systemctl restart zabbix-agent.service
客户端配置完成后在 服务端使用zabbix自带命令测试该脚本是否生效:
代码语言:javascript复制[root@z1 ~]# zabbix_get -s 192.168.8.138 -p 10050 -k 'my.estab.count'
0
如上所示,说明客户端脚本配置成功!
配置web端参数
浏览器访问服务端zabbix主页:192.168.8.136/zabbix
进入客户机adai-02“监控项配置”页面:
- “创建监控项”:
说明: 在此设置监控项名称和键值,其他参数保持默认(当然,研究透彻之后,所有参数可以根据个人需求进行更改)。
- “创建图形”: “添加”添加完成后,为该监控项配置“图形”——“创建图形”:
注意: 在此设定图形名称后,需要先为该图形“添加”(该添加为参数“监控项”下的添加)监控项,然后再点击最下面的“添加”将该图形参数添加到zabbix图形监控参数中!!!
- 创建触发器: 所谓触发器即设定触发警报的规则! “触发器”——“创建触发器”:
点击“添加”,设定该触发器所要监控的对象及触发规则:
即,当并发连接数最新值T大于N(自定义该值,在此N=2)时触发该警报。
19.13-19.4 配置邮件告警
使用163邮箱或QQ邮箱发送告警邮件。
开启邮箱的POP3、IMAP、SMTP服务
登录163邮箱,开启POP3、IMAP、SMTP服务:
登录邮箱后,“设置”——“POP3、IMAP、SMTP”——“保存”:
说明: 首次开启该服务需要进行用户认证,根据提示信息进行认证并设定“客户端授权密码”(用于登录第三方邮件客户端的专用密码),记录该密码。
配置报警脚本
邮箱相关服务配置完成后到监控中心进行报警配置。
配置报警媒介类型
“管理”——“报警媒介类型”——“创建媒介类型”:
说明: 设定媒介类型名称、类型、脚本名称(与服务器中脚本名称保持一致)、添加脚本参数(该参数为zabbix内置参数,之后会配置在mail.py脚本中),上述内容配置完后再点“添加”(最下面蓝色)。
添加报警脚本mail.py
服务端:
代码语言:javascript复制查看报警脚本保存路径:
[root@z1 ~]# vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts
创建报警脚本mail.py:
[root@z1 ~]# cd /usr/lib/zabbix/alertscripts
[root@z1 alertscripts]# vim mail.py
#!/usr/bin/python
#coding:utf-8
import smtplib
from email.mime.text import MIMEText
import sys
mail_host = 'smtp.163.com' #指定所使用的邮箱类型
mail_user = 'aaaaaa@163.com' #指定邮箱用户名
mail_pass = '111111111' #指定邮箱密码
mail_postfix = '163.com'
def send_mail(to_list,subject,content):
me = "zabbix 监控告警平台" "<" mail_user "@" mail_postfix ">"
msg = MIMEText(content, 'plain', 'utf-8')
msg['Subject'] = subject
msg['From'] = me
msg['to'] = to_list
try:
s = smtplib.SMTP()
s.connect(mail_host)
s.login(mail_user,mail_pass)
s.sendmail(me,to_list,msg.as_string())
s.close()
return True
except Exception,e:
print str(e)
return False
if __name__ == "__main__":
send_mail(sys.argv[1], sys.argv[2], sys.argv[3])
#####脚本使用说明######
#1. 首先定义好脚本中的邮箱账号和密码
#2. 脚本执行命令为:python mail.py 目标邮箱 "邮件主题" "邮件内容"
更改脚本权限:
[root@z1 alertscripts]# chmod 755 /usr/lib/zabbix/alertscripts/mail.py
测试能否正常发送邮件:
[root@z1 alertscripts]# python mail.py adai_mail@163.com "emerge" "emerge2"
#在此使163邮箱自己给自己发送邮件(保证其不出其他故障)
发送成功!至此说明发邮件的脚本没问题!!!
配置用户
在监控中心(web端)创建一个接收告警邮件的“用户”,在创建用户前需要先创建一个“用户组”,在此使用一个已经存在的用户组。“管理”——“用户”——“创建用户”:
设置完以上信息后,点击最下面的“添加”。
配置报警媒介
打开用户adai——报警媒介——添加报警媒介——更新:
配置用户权限: 需要到用户所在的“用户群组”更改用户的权限:
选择后权限后点击“添加”——“更新”,如果此处设置错误,之后将无法收到报警邮件。
配置动作
设置触发器被触发后所要执行的的操作!
“配置”——“动作”——“创建动作”:
“操作”: 客户机故障时要执行的操作。
代码语言:javascript复制HOST:{HOST.NAME} {HOST.IP}
TIME:{EVENT.DATE} {EVENT.TIME}
LEVEL:{TRIGGER.SEVERITY}
NAME:{TRIGGER.NAME}
messages:{ITEM.NAME}:{ITEM.VALUE}
ID:{EVENT.ID}
ID:{EVENT.ID}
将“操作”中的“默认信息”改为以上参数:
点击“新的”配置上图中指定参数其余参数保持默认(该部分信息才是发邮件的具体行为),配置完上述内容后点击“添加”(此处==非蓝色==添加按钮)。
恢复操作: 即客户机状态恢复后需要执行的操作。 “默认信息”:(同操作中内容)
代码语言:javascript复制HOST:{HOST.NAME} {HOST.IP}
TIME:{EVENT.DATE} {EVENT.TIME}
LEVEL:{TRIGGER.SEVERITY}
NAME:{TRIGGER.NAME}
messages:{ITEM.NAME}:{ITEM.VALUE}
ID:{EVENT.ID}
ID:{EVENT.ID}
条件参数也和“操作”中的相同。
以上“动作”参数配置完后点击蓝色按钮“添加”!!!
监控中心报警准备工作完成!!!
19.5 测试告警
将监控项目改成故障项目。
“配置”——“主机”——“触发器”——“创建触发器” 注: 该触发器只用于测试,完成测试后要删除!
选择“添加”表达式设定触发规则:
其他参数保持默认,点蓝色按钮“添加”。配置完成后进入“仪表盘”等待……
经多次尝试都显示动作完成,但是查看邮箱并没有收到任何邮件!!!
排查故障
使用服务器发送邮件:
代码语言:javascript复制[root@z1 alertscripts]# python mail.py adai_mail@163.com "emergecome" "emerge333"
即,能正常发送邮件,说明脚本内容没问题!
代码语言:javascript复制更改脚本权限:
[root@z1 alertscripts]# ls -l /usr/lib/zabbix/alertscripts/
总用量 4
-rwxr-xr-x 1 root root 1243 9月 12 07:54 mail.py
[root@z1 alertscripts]# chmod 777 /usr/lib/zabbix/alertscripts/mail.py
检查用户信息
添加一个接受邮件的邮箱:
查看用户权限,保证其为“读写”!
检查动作配置
将操作中的默认信息更改为其自带的配置:
“恢复操作”中先不改!更新后进行测试,结果依然无法收到邮件!!!
果断恢复快照再来一遍……
配置完后再次检测:
故障:
恢复:
在zabbix监控中心设置主动模式或被动模式
配置——模板——监控项:
(adsbygoogle = window.adsbygoogle || []).push({});