• 19.12 添加自定义监控项目

  • 19.13/19.14 配置邮件告警

  • 19.15 测试告警

  • 19.16 不发邮件的问题处理

19.12 添加自定义监控项目

  • zabbix的监控项目是在模板里面体现,但是有时候就会有些个性化的需求:某一个业务的数据,例如:运营人员想知道网站会员注册量,会员活跃度;实际上,这些数据,都可以通过数据库里面的表的数字来体现,但是zabbix模板是不可能提供那么相信的监控项目;遇到这种情况,就需要通过编程工具,写成脚本,最后通过zabbix监控项目,形成图表,就可以实现;

  • 自定义的监控项目

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

  • 解决方案:

  1. zabbix监控中心创建监控项目;

  2. 针对该监控项目以图形展现

  • 对于第一步,需要到客户端定义脚本

  • vim /usr/local/sbin/estab.sh //内容如下

[root@aming-02 ~]# vim /usr/local/sbin/estab.sh
#!/bin/bash
##获取80端口并发连接数netstat -ant |grep ':80 ' |grep -c ESTABLISHED
~                                                                                                    :wq
  • 配置一个能够让zabbix用户执行的权限,最终是zabbix用户去执行这个脚本,如果不给zabbix用户执行权限,最终得不到结果

[root@aming-02 ~]# vim /usr/local/sbin/estab.sh
[root@aming-02 ~]# chmod 755 /usr/local/sbin/estab.sh
[root@aming-02 ~]#
  • 客户端上编辑配置文件 vim /etc/zabbix/zabbix_agentd.conf //增加

  • UnsafeUserParameters=1 //表示使用自定义脚本,它就好比一个开关,如果等于0就没有办法去使用自定义的脚本

  • UserParameter=my.estab.count[],/usr/local/sbin/estab.sh //自定义监控项的key为my.estab.count,后面的[]里面写脚本的参数,如果没有参数则可以省略,脚本为/usr/local/sbin/estab.sh

  • my.estab.count 这个是zabbix监控项里的一键值

# Mandatory: no
# Range: 0-1# Default:
# UnsafeUserParameters=0UnsafeUserParameters=1### Option: UserParameter
-- 插入 --               # Mandatory: no
# Default:
# UserParameter=
UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh####### LOADABLE MODULES #######[root@aming-02 ~]# vim /etc/zabbix/zabbix_agentd.conf
[root@aming-02 ~]#
  • 重启zabbix-agent服务 systemctl restart zabbix-agent

[root@aming-02 ~]# systemctl restart zabbix-agent[root@aming-02 ~]#
  • 下面来验证一下,自定义的脚本有没有识别

  • 首先到服务端验证,执行命令

  • zabbix_get -s 192.168.133.130 -p 10050 -k 'my.estab.count' // -p端口,-k 键值 web 管理页

[root@aming-01 ~]# zabbix_get -s 192.168.202.132 -p 10050 -k 'my.estab.count'0[root@aming-01 ~]#
  • 下面去 zabbix监控中心(浏览器)配置增加监控项目(并发链接数) 配置–>主机–>监控项->创建监控项

  • 添加完之后还要做一个图形,因为这是我们的需求

  • 给他做一个触发器

19.13 配置邮件告警(上)

  • 使用163发告警邮件

  • 首先登录你的163邮箱,设置开启POP3、IMAP、SMTP服务

  • 设置授权码,授权码为cc293016

  • 开启并记录授权码(需要牢记)

  • 然后到监控中心设置邮件告警

  • “管理”,“报警媒介类型”,“创建媒体类型” {ALERT.SENDTO}收件人,{ALERT.SUBJECT}主题,{ALERT.MESSAGE}邮件内容 //这三个东西分布在py脚本参数下

  • 接下来去定义mail.py脚本了, 定义脚本报警 在配置文件定义 在服务端上定义

  • vim /etc/zabbix/zabbix_server.conf,搜索Alert,找到 AlertScriptsPath=/usr/lib/zabbix/alertscripts //这就是报警脚本所在路径

[root@aming-01 ~]# vim /etc/zabbix/zabbix_server.conf### Option: UnreachableDelay## Mandatory: no# Range: 1-3600# Default:# UnreachableDelay=15### Option: AlertScriptsPath#       Full path to location of custom alert scripts.#       Default depends on compilation options.## Mandatory: no# Default:# AlertScriptsPath=${datadir}/zabbix/alertscriptsAlertScriptsPath=/usr/lib/zabbix/alertscripts### Option: ExternalScripts#       Full path to location of external scripts.#       Default depends on compilation options.## Mandatory: no# Default:# ExternalScripts=${datadir}/zabbix/externalscriptsExternalScripts=/usr/lib/zabbix/externalscripts### Option: FpingLocation[root@aming-01 ~]# vim /etc/zabbix/zabbix_server.conf
[root@aming-01 ~]#
  • 打开目录里面看下,是空的,所以我们进来目录,创建一个mail.py

[root@aming-01 ~]# ls /usr/lib/zabbix/alertscripts[root@aming-01 ~]# [root@aming-01 ~]# cd /usr/lib/zabbix/alertscripts[root@aming-01 alertscripts]# [root@aming-01 alertscripts]# vi mail.py[root@aming-01 alertscripts]# vim mail.py#!/usr/bin/env python#-*- coding: UTF-8 -*-import os,sys
reload(sys)
sys.setdefaultencoding('utf8')import getoptimport smtplibfrom email.MIMEText import MIMETextfrom email.MIMEMultipart import MIMEMultipartfrom  subprocess import *gport = 25try:msg = MIMEText(unicode(content).encode('utf-8'))msg['from'] = mailfrommsg['to'] = mailtomsg['Reply-To'] = mailfrommsg['Subject'] = subjectsmtp = 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]##定义QQ邮箱的账号和密码,你需要修改成你自己的账号和密码(请不要把真实的用户名和密码放到网上公开,否则你会死的很惨)sendqqmail('aming_test2017@163.com','cc293016','aming_test2017@163.com',to,subject,content)if __name__ == "__main__":
:wq
  • 一定要记得 需要改下权限 mail.py

[root@aming-01 alertscripts]# vim mail.py[root@aming-01 alertscripts]# chmod 755 mail.py[root@aming-01 alertscripts]#
  • 测试mail.py是否能发邮件

[root@aming-01 alertscripts]# chmod 755 mail.py[root@aming-01 alertscripts]# python mail.py aming_test2017@163.com "This is the first test mail" "121212121212"[root@aming-01 alertscripts]#
  • 已经收到了,时间也差不多

[root@aming-01 alertscripts]# date2017年 11月 18日 星期六 22:32:58 CST
[root@aming-01 alertscripts]#

19.14 配置邮件告警(下)

  • 创建一个接受告警邮件的用户,“管理”,“用户”,“创建用户”

  • 1,2,3 都是为了容易分辨填写的,按习惯就好

  • 4,选择群组,归属于那个群组,这个涉及到之后的权限是否能发送邮件

  • 5,密码,用于,登录,接收,发送邮件 (密码是aming)

  • 6,登录系统时,默认显示的界面

  • 下面创建一个用户,这个用户是用来接收邮件的,得给指定邮箱,没有人,发给谁?

  • 添加完了之后,忘记给它设置邮箱

  • 再来看看权限

  • 只能去用去组里面去改权限

  • 注意,这个地方如果设置不对的话,最终报警也是收不到的,邮件收不到

  • 再来看看这个用户的权限

  • 这里发现报警媒介没有添加

  • 继续添加报警媒介

  • 用户配置完了,还有一个地方需要配置,就是动作

  • 创建动作

  • 设置动作,“配置”,“动作”,“创建动作”,名称写“sendmail”(自定义),“操作”页面,内容如下:

  • 1、“维护状态 非在 维护” // 维护状态机器不进行发邮件

  • 2、“触发器示警度”>=未分类 // 即任何情况都进行发邮件

  • 修改发邮件的模板

HOST:{HOST.NAME} {HOST.IP}     //主机,IPTIME:{EVENT.DATE}  {EVENT.TIME}   //时间LEVEL:{TRIGGER.SEVERITY}             //示警度NAME:{TRIGGER.NAME}                //那个触发器messages:{ITEM.NAME}:{ITEM.VALUE}      //状态ID:{EVENT.ID}         //时间ID
  • “操作”,选择发送的用户为刚创建的用户,仅送到选择“baojing”

  • 再来看恢复操作

  • 切换到“恢复操作”,把信息改成如下 (客户端状态恢复了,需要确认已经恢复状态)

  • 修改默认信息,和刚刚操作里面是一样的

HOST:{HOST.NAME} {HOST.IP}TIME:{EVENT.DATE}  {EVENT.TIME}
LEVEL:{TRIGGER.SEVERITY}
NAME:{TRIGGER.NAME}
messages:{ITEM.NAME}:{ITEM.VALUE}
ID:{EVENT.ID}
  • 咱们报警的准备的工作已经做好了,剩下的就是要验证一下,到底设置的报警有没有生效

19.15 测试告警

  • 下面来做实验 ,手动调节触发器,以实现报警,发邮件

  • 检查到上一节的aming用户没有设置报警媒介,给设置好

  • 自定义配置一个触发器,

  • 查看邮箱

  • 已经告警了,说明成功了,那现在我们把它改好

  • 刷新浏览器 发现没有问题了

19.16 不发邮件的问题处理

  • 因为虚拟机,可能存在一些bug,第一次配置的时候,经常会出现zabbix发现问题,做了邮件告警,但是邮箱却没有收到邮件的问题;重新恢复快照以后再做一次,就又能正常发送邮件,接收邮件了 配置邮件告警总结

  • 1、到163邮箱开启SMTP服务,并记录授权码,没有开启,脚本里面就没有写的密码

  • 2、设置邮件告警 首先设置一个报警媒介;三个参数必须填写正确,顺序也不能错误

  • 3、编辑邮件告警脚本 /usr/lib/zabbix/alertscripts

  • 路径不能错误,必须在这个路径下,添加一个脚本,创建好之后,记得给脚本755权限

  • 4、配置用户 配置用户之前,把用户群组的权限改一下,让组有一个读写权限 用户加到指定的群组里 报警媒介,添加自己的邮箱,自己给自己发,这个成功率会比较高

  • 5、配置动作 操作修改默认信息(发送邮件的格式),操作需要添加一个“新的”给谁发邮件;恢复操作同样

  • 6、测试一下告警是否能成功发送邮件 人为创建一个触发器,设置一个系统最低运行都会触发报警的触发器 也可以在客户端上断开连接(停止客户端的zabbix服务) PS: 客户端主动模式和被动模式,在监控项里,选择一个监控项打开,选择类型是客户端主动,客户端;客户端主动即为主动模式,客户端为被动模式

版权声明:原创作品,如需转载,请注明出处。否则将追究法律责任
本文转自   ch71smas  51CTO博客,原文链接:http://blog.51cto.com/ch71smas/1983569

19.12添加自定义监控项目19.13/19.14 配置邮件告警19.15 测试告警19.16 不发邮件的问题处理...相关推荐

  1. 19.12 添加自定义监控项目;19.13,19.14 配置邮件告警(上下);19.15 测试告警19.16...

    19.12 添加自定义监控项目 需求:监控某台web的80端口连接数,并出图 两步:1)zabbix监控中心创建监控项目: 2)针对该监控项目以图形展现 客户端hao2机器配置: 1. 客户端(hao ...

  2. 19.12 添加自定义监控项目 19.13/19.14 配置邮件告警 19.15 测试告警 19.16 不发邮件的问题处理...

    2019独角兽企业重金招聘Python工程师标准>>> 提示:开始本节内容之前有必要先做好快照!!! 19.12 添加自定义监控项目 该配置的用途是监控模板中没有的监控项目. 需求: ...

  3. 19.12 添加自定义监控项目 配置邮件告警 测试告警

    9月12日任务 19.12 添加自定义监控项目 19.13/19.14 配置邮件告警 19.15 测试告警 19.16 不发邮件的问题处理 19.12 添加自定义监控项目 需求:监控某台web的80端 ...

  4. 7月10日任务 添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理...

    2019独角兽企业重金招聘Python工程师标准>>> 19.12 添加自定义监控项目 该配置的用途是监控模板中没有的监控项目. 需求:监控某台web的80端口连接数,并出图. 步骤 ...

  5. java mail 监控新邮件,添加自定义监控项目,配置邮件告警,测试告警,不发送邮件的问题处理...

    笔记内容:19.12添加自定义监控项目 19.13/19.14配置邮件告警 19.15测试告警 19.16不发送邮件的问题处理 笔记日期:2017-11-20 19.12添加自定义监控项目 自定义的监 ...

  6. zabbix添加自定义监控项目-配置邮件告警-测试告警

    2019独角兽企业重金招聘Python工程师标准>>> 添加自定义监控项目: 需求:监控某台web的80端口连接数,并出图 步骤:1.zabbix监控中心创建监控项目: 客户端定义脚 ...

  7. 添加自定义监控项目,配置邮件告警,测试告警,不发邮件的问题处理

    2019独角兽企业重金招聘Python工程师标准>>> 添加自定义监控项目 需求:监控某台web的80端口连接数,并出图 两步:1)zabbix监控中心创建监控项目:2)针对该监控项 ...

  8. 添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理

    添加自定义监控项目 需求:监控某台web的80端口连接数,并出图. 步骤: 1) zabbix监控中心创建监控项目 2) 针对该监控项目以图形展现 被监控端: 1. [root@centos7-2 l ...

  9. Primavera Unifier 19.12.X Patch/Update(补丁/更新)

    了解本文内容前,可以先读之前的关于patch的文章,希望可以给你带来帮助 Oracle Primavera P6 & Unifier等产品 Patch 补丁介绍_Oracle Primaver ...

  10. Primavera P6 EPPM 19.12.X Patch/Update(补丁/更新)

    目录 Patch 19.12.18.0 Patch 19.12.17.0 Patch 19.12.16.0 Patch 19.12.15.0 Patch 19.12.14.0 Patch 19.12. ...

最新文章

  1. 要不要读博?机器学习博五学生和强化学习博士展开了一场battle
  2. R语言ggplot2可视化、不同分组使用不同的色彩、同一分组(group)的线条使用相同的色彩但是配置使用不同的线型(line type)
  3. 大江论坛服务器维护,Kangle“多节点服务器扩展”功能的详细介绍
  4. python 事件通知模式_请问在 Python 的事件系统中,如何可以通过事件通知立刻终结一个正在运行的子线程?...
  5. 网站如何接入支付宝(转)
  6. 运维基础--Linux用户和组的管理
  7. 11月深度学习班第5课图像物体检测:rcnn/fast-rcnn/faster-rcnn
  8. pip如何安装到Linux服务器,linux中pip安装步骤与使用详解
  9. java 以太坊 智能合约_web3j教程:java使用web3j开发以太坊智能合约交易
  10. mysql优化难 选db2_DB2数据库优化的几条策略_MySQL
  11. Tensorflow中与张量形状有关的操作
  12. Perl中的执行上下文
  13. 行为模型、价值模型、市场模型
  14. cannot import name ‘artist‘ from ‘matplotlib‘
  15. 物联网技能大赛-Ubuntu-(3)
  16. 写在第35个教师节到来时的话——对我国现阶段职业教育改革的总体论述
  17. 为什么Y电容容量基本都不大于0.1uF?
  18. 深度学习实战-图像风格迁移
  19. javascript实现鼠标移动两个小人的动画效果
  20. 艺形艺意工作室:2019年新媒体营销的五大趋势,你真的get到了吗!

热门文章

  1. asp.net控件的Hyperlink控件
  2. 创建连接数据库(DBLink)
  3. git学习 远程仓库02
  4. 牛腩购物网25:购物车的实现
  5. 如何获取一个需要登录页面的HTML代码
  6. SpringBoot 修改仓库
  7. C# 线程thread
  8. 写代码:实现用户输入用户名和密码,当用户名为seven且密码为123时,显示登录成功,否则失败,失败时允许重复输入三次。...
  9. Lasso估计学习笔记(二)
  10. springboot vue组件写的个人博客系统