[toc]python
Zabbix的特点:咱们有时候会根据业务需求配置一些个性化的需求服务去监控某台web的80端口链接数,
并整出监控状态图:web
# vim /usr/local/sbin/estab.sh //内容以下 #!/bin/bash ##获取80端口并发链接数 netstat -ant |grep ':80 ' |grep -c ESTABLISHED
自定义监控项的key为my.estab.count(也就是在监控项中须要填写的键值),后面的[*]里面写脚本的参数vim
# chmod 755 /usr/local/sbin/estab.sh # vim /etc/zabbix/zabbix_agentd.conf //增长 UnsafeUserParameters=1 //表示使用自定义脚本 UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh //自定义监控项的key为my.estab.count(也就是在监控项中须要填写的键值),后面的[*]里面写脚本的参数,若是没有参数则能够省略,若是有须要用逗号分隔,脚本为/usr/local/sbin/estab.sh
[root@xavi-002 ~]# systemctl restart zabbix-agent
[root@xavi ~]# zabbix_get -s 192.168.72.133 -p 10050 -k 'my.estab.count' 0 -s:源地址 -p: 端口 -k: 键值 如上显示0即为没有任何链接。
配置 → 主机 → 监控项 → 建立监控项bash
“配置”→“主机” →“图形” → 建立图形”架构
配置告警是目前绝大多数企业必需要有的一个状态,遇到问题第一时间得到警告大大提高了运维的高效性,若是没有配置任何告警,等待客户反应,这是一个很是不明智的选择。并发
登陆web管理界面:运维
管理 → 报警媒介类型 → 建立媒体类型(不建议用自带的,很差用)ide
脚本名称必定要用本身自定义的!!! 测试
{ALERT.SENDTO} //发给谁优化
{ALERT.SUBJECT} //主题
{ALERT.MESSAGE} //邮件内容
在服务端配置:
[root@xavi ~]# vim /usr/lib/zabbix/alertscripts/Sendmail.py
vim Sendmail.py import os,sys reload(sys) sys.setdefaultencoding('utf8') import getopt import smtplib from email.MIMEText import MIMEText from email.MIMEMultipart import MIMEMultipart from subprocess import * def sendqqmail(username,password,mailfrom,mailto,subject,content): gserver = 'smtp.163.com' #编写服务地址 gport = 25 try: msg = MIMEText(unicode(content).encode('utf-8')) msg['from'] = mailfrom msg['to'] = mailto msg['Reply-To'] = mailfrom msg['Subject'] = subject smtp = smtplib.SMTP(gserver, gport) smtp.set_debuglevel(0) smtp.ehlo() smtp.login(username,password) smtp.sendmail(mailfrom, mailto, msg.as_string()) smtp.close() except Exception,err: print "Send mail failed. Error: %s" % err def main(): to=sys.argv[1] subject=sys.argv[2] content=sys.argv[3] ##定义邮箱的帐号和密码,你须要修改为你本身的帐号和密码(请不要把真实的用户名和密码放到网上公开,不然你会死的很惨) sendqqmail('xxxxxx@163.com','Password','xxxxxx@163.com',to,subject,content) //注意这里的password是刚才在163邮箱设置的受权码
[root@xavi alertscripts]# chmod 755 /usr/lib/zabbix/alertscripts/Sendmail.py [root@xavi alertscripts]# python Sendmail.py dsf1626@163.com 'torreicdmailcn' 'datatime20180417'
建立一个接受告警邮件的用户,“管理”,“用户”,“建立用户”,“报警媒介”,类型选择“baojing”,注意用户的权限,若是没有须要到用户组去设置权限
关于权限选项,咱们先保存当前的配置,而后进入用户群组 → Zabbix administrators → 权限
为了防止发生错误,暂时先选择所有用户。千万不要忘记点击添加
受权成功后更新,检查下用户权限
设置动做,“配置”,“动做”,“建立动做”,名称写“sendmail”(自定义),“操做”页面,内容以下
HOST:{HOST.NAME} {HOST.IP} TIME:{EVENT.DATE} {EVENT.TIME} LEVEL:{TRIGGER.SEVERITY} NAME:{TRIGGER.NAME} messages:{ITEM.NAME}:{ITEM.VALUE} ID:{EVENT.ID}
“恢复操做”,把信息改为以下:
HOST:{HOST.NAME} {HOST.IP} TIME:{EVENT.DATE} {EVENT.TIME} LEVEL:{TRIGGER.SEVERITY} NAME:{TRIGGER.NAME} messages:{ITEM.NAME}:{ITEM.VALUE} ID:{EVENT.ID}
点击“新的”,“操做”,选择发送的用户为刚建立的用户,仅送到选择“baojing”
点击添加后查看
配置 → 主机 → 触发器 → 建立触发器
条件是,并发数小于1,我们的虚拟机压根就没有任何人去访问,因此必然报警。
修改参数,查看恢复邮件