zabbix-3

原创 2018年04月17日 01:35:49

添加自定义监控项目

需求:监控某台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.pyvim /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 = 'daycws0524@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('daycws0524@163.com','aaaaaaa','daycws0524@163.com',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)配置里面的动作,条件保持默认即可。
后面还是没有成功,需要继续试验

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chunyang315/article/details/79968997
收藏助手
不良信息举报
您举报文章:zabbix-3
举报原因:
原因补充:

(最多只允许输入30个字)