需求:监控某台web的80端口连接数,并出图。
步骤:
1) zabbix监控中心创建监控项目
2) 针对该监控项目以图形展现
被监控端:
1、
[root@centos7-2 local]# vim /usr/local/sbin/estab.sh
#!/bin/bash
##获取80端口并发连接数
netstat -ant |grep ':80 ' |grep -c ESTABLISHED
#注意:80后面跟一个空格,保证匹配更精确,如果不加空格,会把8080端口同时过滤出来。
2、chmod 755 /usr/local/sbin/estab.sh
3、vim /etc/zabbix/zabbix_agentd.conf
#表示使用自定义脚本
UnsafeUserParameters=1
#自定义监控项的key(监控web端“键值”)为my.estab.count,后面的[]里面写的是脚本参数;#如果没有参数则可以省略,脚本为/usr/local/sbin/estab.sh
UserParameter=my.estab.count[],/usr/local/sbin/estab.sh
4、[root@centos7-2 local]# systemctl restart zabbix-agent.service
验证是否生效:
在服务端操作
[root@centos7 fonts]# zabbix_get -s 192.168.3.75 -p 10050 -k 'my.estab.count'
4
客户端配置完成.
配置web端参数
1、添加监控项
类型:Zabbix客户端:表示的是被动模式。Zabbix客户端(主动式):这个是主动模式

2、添加图形
3、验证:
1、为了验证以下的邮件报警,测试下
2、
1、使用163邮箱或QQ邮箱发送告警邮件。
开启邮箱的POP3、IMAP、SMTP服务
登录163邮箱,开启POP3、IMAP、SMTP服务:
需要开启授权码(这个是在第三方客户端上登录163账号时才需要用到,比如在安卓机上设置163邮箱账号)
2、配置报警媒介类型
“管理”——“报警媒介类型”——“创建媒介类型”:
{ALERT.SENDTO}:收件人
{ALERT.SUBJECT}:邮件主题
{ALERT.MESSAGE}:邮件内容
添加报警脚本mail.py
服务端:
查看报警脚本保存的路径
报错:(被163的给屏蔽了,那就用qq吧)
[root@centos7 fonts]# vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts
创建报警脚本mail.py:
[root@centos7 alertscripts]# cat mail.py
#!/usr/bin/env python
#-- coding: UTF-8 --
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
<a href="mailto:br/">#####脚本使用说明###### #1、设置若是更改为qq邮箱,还需要设置gserver = 'smtp.163.com' #2、 首先定义好脚本中的邮箱账号和密码(授权码的密码) #3、 脚本执行命令为:python mail.py 目标邮箱 "邮件主题" "邮件内容"</a>
<a href="mailto:br/">更改权限 [root@centos7 alertscripts]# chmod 755 /usr/lib/zabbix/alertscripts/mail.py</a>
<a href="mailto:br/">测试脚本是否可以发送邮件 [root@centos7 alertscripts]# python mail.py [email protected] "test-mail" "test-192.168.3.74"</a>
<a href="mailto:br/">4、配置动作</a>
<a href="mailto:br/">设置触发器被触发后所要执行的的操作!</a>
<a href="mailto:br/">“配置”——“动作”——“创建动作”: 维护状态 非在 维护:管理员没有在维护的时候 触发器示警度 >= 未分类:发送所有警报</a>
<a href="mailto:br/">操作部分: 主机、时间、级别、名称、内容信息、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}</a>
<a href="mailto:br/">当步骤为 1 - 0 时表示的是第一步到无穷大的步骤,意思是一直进行下去 步骤持续时间:60s;表示每隔60s就执行发送邮件</a>
本文转自 jiekegz 51CTO博客,原文链接:http://blog.51cto.com/jacksoner/2044790