文档章节

68:添加自定义监控项目 | 配置邮件告警及测试 | 不发邮件时问题处理

芬野de博客
 芬野de博客
发布于 09/16 23:10
字数 2161
阅读 7
收藏 0

1、配置自定义监控项目

zabbix的监控项目是在模板里配置体现的,有时候会有一些个性化的需求,某一个业务的数据,有一些运营想知道网站的注册量,会员活跃度,这些数据是可以通过数据库的表的数字体现出来的,但是zabbix是不提供那么详细的监控项目的,遇到这种情况,就需要通过写脚本把数字展现出来,通过一个监控项目来形成图表,然后来分析每一天的用户量是多少呢:

需求:监控某台web的80端口连接数,并出图:

解决方法:两步:

1)、zabbix监控中心创建监控项目:

2)、针对该监控项目以图形体现:

首先需要在客户端(zabbix客户端)添加一个脚本:   #获取80端口的并发连接数

[root@localhost_01 ~]# vim /usr/local/sbin/estab.sh
#!/bin/bash
netstat -ant |grep ':80 ' |grep -c ESTABLISHED

更改能让zabbix用户执行的权限:赋予脚本执行权限

[root@localhost_01 ~]# chmod 755 /usr/local/sbin/estab.sh 

编写zabbix客户端的配置:    /etc/zabbix/zabbix-agentd.conf       定义脚本功能和脚本的位置:

[root@localhost_01 ~]# vim /etc/zabbix/zabbix_agentd.conf 
[root@localhost_01 ~]# cat !$ |grep -v ^# |grep -v ^$
UnsafeUserParameters=1         #允许使用自定义脚本:开启脚本功能:

UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh 
#表示自定义监控项的key为my.estab.count(后面需要在web页面设置时key值要用到),后面的[*]里面写脚本的参数,如果没有参数则可以省略,如果有参数写入到 [ ] 里面,用逗号分隔,脚本为/usr/local/sbin/estab.sh

重启zabbix客户端服务:       systemctl      restart    zabbix-agent

[root@localhost_01 ~]# systemctl restart zabbix-agent

1:接下来到zabbix服务端验证:验证是否识别到这个脚本:    注意:脚本需要执行权限和防火墙需要放行的端口:

zabbix_get -s 192.168.149.130 -p 10050 -k 'my.estab.count'

[root@localhost_02 ~]# zabbix_get -s 192.168.149.130 -p 10050 -k 'my.estab.count'
0

注释: -s:指定客户端IP地址:     -p:指定端口号(不见p,默认是10050)       -k:表示键值:

注释:下面需要在服务端监控中心操作:

然后在zabbix监控中心(web浏览器)配置:

zabbix页面 -----> 配置  --->  主机  --->  监控项 ---> 创建监控项:

名称:并发连接数(可自定义):

类型:选择zabbix客户端:
键值:填写my.estab.count(可自定义):

单位:保持默认:

历史数据保留时长(单位天):默认保持90天:

趋势数据存储周期(单位天):图形化界面下那个图:

应用集:可以不选择,因为没有应用集:

 

 

 

 

2:有了数据下面就可以添加图形了:    配置 -----> 主机 ----->  图形 -----> 创建图形

名称:并发连接数,然后是添加监控项,选择并发连接数点击添加

查看新创建的图形:点击并发连接数 -----> 点击预览:

点击预览:可以查看的创建的图形:

注释:网站访问量很大,那么每隔30秒就可以看到一个数字,时间长了,就可查看到网站访问量的趋势:

3:创建触发器:  点击  触发器 -----> 创建触发器 -----> 名称(并发连接数)   -----> 当 报警达200以上,做警告级别:

触发器里关联监控项:

注释:服务端上获取数值(通过在客户端编写的脚本实现),给予服务端访问脚本的权限,在zabbix监控中心添加对应的监控项目(输入键值),即可,其余就是创建图形等:

2、配置邮件告警

使用163或者qq邮箱发告警邮件:

首先登陆163邮箱,设置并开启pop3  IMAP  SMTP服务:

开启并记录授权码

添加报警媒介:

然后到监控中心设置邮件告警: 管理 -----> 报警媒介类型 -----> 创建媒介类型:

添加如下:{ALERT.SENDTO} ,{ALERT.SUBJECT},{ALERT.MESSAGE}

注释如上:    手机人:                  邮件主题                        邮件内容

创建报警脚本mail.py:   /usr/lib/zabbix/alertscripts/mail.py:脚本内容:

赋予脚本权限:chmod 755 /usr/lib/zabbix/alertscripts/mail.py              #很重要,可能会因为权限而无法收取邮件:

[root@localhost_02 ~]# vim /usr/lib/zabbix/alertscripts/mail.py 
[root@localhost_02 ~]# cat !$
cat /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 = 'smtp.163.com'
    gport = 25

    try:
        # msg = MIMEText(unicode(content).encode('utf-8')) //如果发送的邮件有乱码,可以尝试把这行改成如下:
        msg = MIMEText(content,'plan','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]
定义163的账号和授权密码,你需要修改成你自己的账号和授权码(请不要把真实的用户名和密码放到网上公开,否则你会死的很惨)
    sendqqmail('yzhm188@163.com','授权码','yzhm188@163.com',to,subject,content)

if __name__ == "__main__":
    main()
    
#####脚本使用说明######
#1. 首先定义好脚本中的邮箱账号和密码
#2. 脚本执行命令为:python mail.py 目标邮箱 "邮件主题" "邮件内容"
[root@localhost_02 ~]# chmod 755 /usr/lib/zabbix/alertscripts/mail.py

测试后,可以正常收到邮件的:

注释:若是在邮件里面写中文,到邮箱里面会显示乱码,这是因为在zabbix使用的是utf-8的字符集,而在邮箱里使用的是GBK字符集,所以会乱码

3:创建一个接受告警邮件的用户(用户是用来接受邮件的):用户组可以现在创建,也可以用之前的用户组:

 zabbix页面  ----->   用户 ----->  创建用户

注释:本次使用的之前的用户组: zabbix   administartors管理员组:设置密码:nihao123!

3:在刚刚创建的用户设置邮箱,      管理 ----->  用户 -----> 报警媒介 ----->  添加:

5:还需要注意用户的权限,如果没有权限,邮件还是无法发送的,到用户组去修改(管理 -----> 用户群组)

默认权限是无:需要去修改群组,给予权限:(用户 -----> 用户群组)

6:修改用户群组权限:用户 -----> 用户群组 -----> 权限:   选择读写:

7:设置动作:(配置好了触发器后,触发之后需要做什么),    配置 -----> 动作 ----->  创建动作

名称:中英文都可以,自定义:

条件:维护状态 非在维护  表示维护状态的机器不发邮件:

新的触发条件:添加:当触发器示警度(也就是信息,警告,一般严重...)大于等于未分类(未分类 表示 所有状态,都会发信息)

8:配置 -----> 动作 ----->  操作:    表示发给谁呀:什么时候发:

默认信息:直接删除原有的,拷贝下面的内容:

维护间暂停操作:选择打勾(若不打对勾也可以,因为在动作的条件里定义了):

默认信息定义当发生报警时,zabbix会向你的邮箱发送什么内容:

HOST:{HOST.NAME} {HOST.IP}:定义主机名

TIME:{EVENT.DATE} {EVENT.TIME}:定义事件发生时间 

LEVEL:{TRIGGER.SEVERITY}:定义示警度 

NAME:{TRIGGER.NAME}:定义哪一个触发器发出的报警

messages:{ITEM.NAME}:{ITEM.VALUE}:发出告警会出现什么状态码

ID:{EVENT.ID}:发生事件的id

9:配置 -----> 动作 -----> 恢复操作:

默认信息:删除原有的信息,负责下面的信息:   两者是相同的:

HOST:{HOST.NAME} {HOST.IP}

TIME:{EVENT.DATE} {EVENT.TIME}

LEVEL:{TRIGGER.SEVERITY}

NAME:{TRIGGER.NAME}

messages:{ITEM.NAME}:{ITEM.VALUE}

ID:{EVENT.ID}

10:最后的动作哪里的状态是已启用:

11:测试告警:创建触发器来实现告警:

配置 -----> 主机 -----> 触发器 -----> 创建触发器:

名称:系统负载:                      严重性:警告:              表达式内容如下:

11:看到信息如下:回到仪表盘页面,等待一会儿即可:

注释:查看邮箱,会看到告警邮件已发送,这表示邮件告警测试成功了:

注释:想要解决这个问题,只要将触发器 系统负载条件数值调整 >1 即可,再来查看监控中心,就会发现问题消失了,并且会给邮箱发送 OK 的邮件:

3:不发邮件情况处理:

 

 

 

© 著作权归作者所有

共有 人打赏支持
芬野de博客
粉丝 5
博文 72
码字总数 119618
作品 0
海淀
程序员
添加自定义监控项目&配置邮件告警&测试告警&不发邮件的问题处理

19.12 添加自定义监控项目 zabbix的监控项目是在模板里面体现,但是有时会有些个性化的需求。比如:某一个业务的数据,运营人员想知道网站会员注册量,会员活跃度;实际上,这些数据,都可以...

影夜Linux
07/11
0
0
添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理

添加自定义监控项目 需求:监控某台web的80端口连接数,并出图 两步:1)zabbix监控中心创建监控项目;2)针对该监控项目以图形展现 对于第一步,需要到客户端定义脚本 vim /usr/local/sbin/...

Zhouliang6
07/11
0
0
添加自定义监控项目配置邮件告警测试告警不发邮件的问题处理

添加自定义监控项目 需求:监控某台web的80端口连接数,并出图 两步:1)zabbix监控中心创建监控项目;2)针对该监控项目以图形展现 对于第一步,需要到客户端定义脚本 vim /usr/local/sbin/...

lyy549745
07/10
0
0
2018-4-16 16周4次课 zabbix邮件告警

19.12 添加自定义监控项目 ·需求:监控某台web的80端口连接数,并出图 两步:1)zabbix监控中心创建监控项目;2)针对该监控项目以图形展现 ·对于第一步,需要到客户端定义脚本 [root@loca...

alexis7gunner
04/15
0
0
2018-4-16 Linux学习笔记

19.12 添加自定义监控项目 思路: 客户端设置脚本获取数据->服务端用zabbix_get验证客户端收集的监控数据->zabbix管理界面配置监控项->zabbix管理界面配置成图形->zabbix管理界面配置告警(如果...

XiaoluHuang
06/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

5、前后端分离跨域问题

在以往的开发中,前后端分离也不是像现在这么热门,所谓的前端工程师也只不过是写好静态页面由Java工程师或者php工程师嵌入到页面中进行开发,这或许加重了这些工程师的工作量,而且在样式调...

永远的Chester
9分钟前
0
0
全志T3 Linux显示驱动分析

1、总体架构 全志T3处理器的显示框架是基于标准Linux的帧缓冲架构,其结构如图 1.1所示。显示控制器DE的驱动架构如图 1.2所示,包括屏蔽差异的显示管理抽象层,以及显示图层驱动、显示设备驱...

pnsam301
16分钟前
0
0
【HAVENT原创】VUE2 经验问题汇总

新建一个 Vue 实例可以有下列两种方式: 1. new 一个实例 var app= new Vue({ el:'#todo-app', // 挂载元素 data:{ // 在.vue组件中data是一个函数,要写成data () {}这种方式 i...

HAVENT
19分钟前
0
0
IO基础知识

读文件,可以使用内置的open(file,mode); with 语句自动close; 查看当前目录的绝对路径:os.path.abspath('.'); 创建目录:os.mkdir(path); 删除目录:os.rmdir(path); 拼接路径推荐使用:o...

年轻的中年大叔
22分钟前
0
0
BATJ等大厂最全经典面试题分享

金九银十,又到了面试求职高峰期,最近有很多网友都在求大厂面试题。正好我之前电脑里面有这方面的整理,于是就发上来分享给大家。 这些题目是网友去百度、蚂蚁金服、小米、乐视、美团、58、...

老道士
24分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部