一、软件版本 操作系统:CentOS-6.5-x86_64 zabbix版本:3.0.3 二、zabbix执行告警动作流程: Item ---》触发器--》动作--》(邮件还是命令)--》媒介(脚本还是第三方)-->发送邮件 监控第一步骤,我们从最底层开始-->先添加媒介(因为没有邮件服务器,所以我们选择脚本): 三、添加脚本、测试是否能够发送邮件: 1、修改zabbx_server.conf文件,指定脚本路径,没有则添加: AlertScriptsPath=/usr/local/zabbix/alertscripts 2、在/usr/local/zabbix/alertscripts下创建发送邮件脚本: [root@BJ-monitor-h-01 alertscripts]# cat zabbix_sendmail.py #!/usr/bin/python #coding:utf-8 import smtplib from email.mime.text import MIMEText import sys #邮箱服务器地址 mail_host = 'smtp.163.com' #邮箱用户名 mail_user = 'xxx' #邮箱密码 mail_pass = 'xxxx' mail_postfix = '163.com' def send_mail(to_list,subject,content): me = mail_user+" msg = MIMEText(content) 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]) 3、测试看脚本是否能够发送成功邮件: python zabbix_sendmail.py '942729042@qq.com' 'TEST' 'TEST FOR MALL' 不出意外应该是能够收到邮件的:
四、添加媒介类型:
1、添加脚本为媒介类型:
管理--》示警媒介--》新建示警媒介:
备注: 名称:python_sendmail (名称可以随意指定,后期调用) 类型:脚本 脚本名称:zabbix_sendmail.py 添加脚本参数(在3.0版本之前默认传值不用添加): {ALERT.SENDTO} ####发送地址 {ALERT.SUBJECT} ###主题 {ALERT.MESSAGE} ###发送内容 五、添加用户操作命令,发送给谁,什么时间发送: 1、步骤: 管理--》用户--》admin-->报警示警媒介--》创建示警媒介: 2、添加用户操作:
备注: 类型选择添加的示警媒介名称, 收件人表示要发送到哪个地方: 启用时间:表示可以发送邮件的时间段。
六:添加要执行的动作:
1、步骤: 配置--》动作--》添加触发器动作:
2、动作选择项:
定义动作名称、使用默认选项,然后勾选恢复通知和已启用。 条件选择默认即可 操作主要定义发送步骤,选择发送用户和发送脚本: 操作步骤定义(时间假如我定义为60s):然后操作不走选择1-2说明前面120两次发送的告警都会发送到zabbix这个用户,要是再添加一个用户发送邮件到不同的人,步骤可以选择3-4,这样就实现了告警升级。
3、操作图:
4、备注:操作类型:可以是发送命令或者邮件。例如操作命令可以在监控服务的适合发送一条restart命令重启服务(LogRemoteCommands=1要agent开启这个)。
总结:到此一个简单的告警邮件已经完成,大家可以做一下扩展测试。
运维平台开源地址:https://github.com/roncoo/roncoo-cmdb
|