添加自定义监控项目
需求:监控某台web的80端口连接数,并形成图像显示。
(1)zabbix监控中心创建监控项目(客户端)
创建脚本vim /usr/local/sbin/estab.sh
#!/bin/bash
##获取80端口并发连接数
netstat -ant |grep ':80' |grep -c ESTABLISHED //netstat -ant 用来显示网络链接的状态
并修改权限chmod 755 /usr/local/sbin/estab.sh
是为了给zabbix用户拥有执行该脚本的权限。
(2)修改客户端的配置文件/etc/zabbix/zabbix_agentd.conf
修改以下内容
UnsafeUserParameters=1 //表示使用自定义脚本。如果等于0就不能使用自定义的脚本
UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh //指定自定义脚本的路径以及自定义脚本的名称
/my.estab.count需要填写在监控项中的键值位置。
[*]
表示没有参数,例如systemctl stop network.service 这是一个脚本,那其中后面2个都是参数。如果脚本带参数的话,可以写在[ ]里面,用,分隔
(3)重启zabbix-agent服务
systemctl restart zabbix-agent
测试脚本是否被识别
(1)服务端执行以下命令,进行验证。
[root@zcy-1 ~]# zabbix_get -s 192.168.244.135 -p 10050 -k 'my.estab.count'
0
-k 表示它的键值
如果脚本有问题不可能会有结果。
必须保持网络的通常,没有防火墙规则和selinux处于关闭状态
(2)在zabbix监控中心(浏览器)配置增加监控项目
点击:配置→主机→zcy-2(监控项 )→创建监控项
并为它创建图形
创建触发器,当并发连接数超过200时,会告警
配置邮件告警
使用第三方邮箱来接收告警邮件,163或者qq邮箱
需要登录邮箱,并设置开启POP3、IMAP、SMTP服务,第一次会需要进行短信验证.
监控中心设置邮件告警。
点击:管理→报警媒介类型→创建媒体类型
这里的参数分别是指(1)接收邮件的邮箱地址
(2)邮件主题
(3)邮件内容创建报警脚本mail.py
vim /usr/lib/zabbix/alertscripts/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 = '[email protected]'
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('[email protected]','aaaaaaa','[email protected]',to,subject,content)
if __name__ == "__main__":
main()
~
其中出现的’aaaaaa’是指的你的授权码。 并修改为755权限。
- 执行以下命令来给自己发测试邮件
python mail.py daycws0524@163.com "chengdu" "zai chengdu de mou ge di fang "
- 创建一个用户用来接收邮件
点击:管理→用户→创建用户
- 配置动作是指当触发报警后该进行什么方式来通知运维人员。
测试告警
- 创建新的触发器来进行测试
后面测试中发现出现问题并不会给用户发邮件,进行排查
(1)查看脚本,或者在服务端上重新发一封邮件检查脚本是否有错误存在
(2)检查用户中的配置是否正确
配置告警流程
(1)邮箱中设置开启POP3、IMAP、SMTP服务,并记录授权码,没有授权码那么脚本中就不能去写向合格密码,
(2)监控中心里新增报警媒介,并填写参数
(3)编辑脚本(/usr/lib.zabbix/alertscripts路径下)修改用户名及密码,并修改为755权限。
(4)增加用户,需要修改用户群组的权限为“所有组 读写”
(5)配置里面的动作,条件保持默认即可。
后面还是没有成功,需要继续试验