原 添加自定义监控项目,配置邮件告警,测

 添加自定义监控项目:

在客户端写脚本然后在服务端检测脚本。

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

两步:1)zabbix监控中心创建监控项目;2)针对该监控项目以图形展现

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

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

#!/bin/bash
##获取80端口并发连接数
netstat -ant |grep ':80 ' |grep -c ESTABLISHED
chmod 755 /usr/local/sbin/estab.sh
客户端上编辑配置文件 vim /etc/zabbix/zabbix_agentd.conf//增加
UnsafeUserParameters=1 //表示使用自定义脚本
UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh
//自定义监控项的key为my.estab.count,后面的[*]里面写脚本的参数,如果没有参数则可以省略,脚本为/usr/local/sbin/estab.sh

重启zabbix-agent服务 systemctl restart zabbix-agent

配置警告:

首先需要开启服务,第一次会进行手机验证,然后输入授权码。 授权码=发邮件警告使用的密码

然后到zabbix前端新创建一个报警。

{ALERT.SENDTO}     = 邮件接收者
{ALERT.SUBJECT}    = 邮件主题
{ALERT.MESSAGE}   = 邮件内容

在服务端上面配置文件里面找到路径:vi /etc/zabbix/zabbix_server.conf

进入配置文件以后然后搜索 AlertScriptsPath 找到/ usr/lib/zabbix/alertscripts 目录

进入到 /usr/lib/zabbix/alertscripts/ 里面,创建一个在zabbix上定义过名称的脚本

然后在创建的里面里面写入代码。

https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D22Z/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.qq.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]
##定义QQ邮箱的账号和密码,你需要修改成你自己的账号和密码(请不要把真实的用户名和密码放到网上公开,否则你会死的很惨)
    sendqqmail('1234567@qq.com','aaaaaaaaaa','1234567@qq.com',to,subject,content)

if __name__ == "__main__":
    main()
    
    
#####脚本使用说明######
#1. 首先定义好脚本中的邮箱账号和密码
#2. 脚本执行命令为:python mail.py 目标邮箱 "邮件主题" "邮件内容"

代码写入完以后还需要修改一下里面的:使用邮箱,邮箱账号,邮箱授权码 等等。

邮箱都填写ok以后,我们还需要给脚本一个执行的权限,然后就可以测试脚本了。

测试脚本命令:python mail.py 邮件接收者 “邮件的主题” “邮件的内容”

上面全部配置完以后,第二步我们就需要去给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}

配置恢复操作

恢复操作里面的默认信息:

HOST:{HOST.NAME} {HOST.IP}
TIME:{EVENT.DATE}  {EVENT.TIME} 
LEVEL:{TRIGGER.SEVERITY} 
NAME:{TRIGGER.NAME}
messages:{ITEM.NAME}:{ITEM.VALUE}
ID:{EVENT.ID}

最后添加完成以后可以看到状态是直接启用的。

测试警告:

说明:故意把监控项目更改成有问题的, 设置触发器,让它告警.

步骤:配置-->主机--> root -02 选择触发器 --> 创建触发器 --> 名称(自定义)- 系统负载 --> 添加 -->最新的T值<N --> N 设置为1 ; 当小于1的时候就告警,正常情况下负载是0 ,那么就会马上告警

点击Zabbix -->查看最近20个问题

可以看到动作完成1,说明可以正常发送邮件

#查看邮件,是可以收到告警邮件的

#原本负载值更改为1了,就会马上告警,那么现在把负载值更回正常的,也会收到ok的邮件   若是设置回正常,仍然收不到邮件,那么检查恢复操作.

不发邮件的问题处理:

1.检查发邮件的脚本

[root@aminglinux-01 alertscripts]# python mail.py anna_wqd@163.com "test" "This is test jiaoben"

[root@aminglinux-01 alertscripts]# ls -lt mail.py 
-rwxr-xr-x. 1 root root 1163 9月  11 12:42 mail.py

可以收到邮件,说明脚本ok

2. 检测Zabbix 监控中心 -- 用户设置

检查报警媒,查看收件人邮箱地址是否有误

说明:点击管理 -->用户 -->报警媒介; 

检查用户权限是否是读写,若不是将无法收到告警邮件

3.检查Zabbix 监控中心 --动作

检查动作--操作是否有选择发送到用户(Anna)

说明:点击配置-->动作-->发邮件-->条件

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏linux运维学习

linux学习第五十篇:MySQL创建用户以及授权,常用sql语句,MySQL数据库备份恢复

MySQL创建用户以及授权 给用户user1授权,指定IP:127.0.0.1,只有在这个IP下才能登陆,密码为11111,*.*是可以访问所有mysql文件,...

16910
来自专栏Python小屋

使用Python进行任务调度(进阶篇)

在上一篇文章使用Python完美管理和调度你的多个任务中,介绍了使用Python+schedule管理和调度任务的入门方法,本文继续介绍任务调度进阶篇。 问题描...

2635
来自专栏云计算教程系列

如何在Debian 8上添加和删除用户

您应该知道如何在新的Linux服务器上执行的最基本任务之一是添加和删除用户。创建新系统时,默认情况下通常只会为您提供root帐户。虽然以root用户身份运行会为...

1273
来自专栏搜云库

CentOs7.3 安装 MySQL 5.7.19 二进制版本

CentOs7.3 安装 MySQL 5.7.19 二进制版本 参考官网 - 使用通用二进制文件在Unix / Linux上安装MySQL MySQL社区版 下...

2448
来自专栏hotqin888的专栏

ONLYOFFICE界面汉化

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/det...

1242
来自专栏用户2442861的专栏

修改npm全局安装模式的路径

刚学nodeJS不久,很纳闷为什么全局安装的模块在 'node安装目录/node_modules‘ 中没找到!后来仔细看了下安装成功后的信息,才发现原来是自动安...

512
来自专栏各种机器学习基础算法

mysql忘记root密码的处理方法

以windows为例:   1. 关闭正在运行的MySQL服务。   2. 打开DOS窗口,转到mysql\bin目录。   3. 输入mysqld --ski...

3289
来自专栏左瞅瞅,右瞅瞅

zabbix上线之路(一)——zabbix安装

zabbix(音同 zæbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

964
来自专栏云计算教程系列

如何在Ubuntu 16.04上使用Alerta监视Zabbix警报

Alerta是一个Web应用程序,用于合并和删除来自多个监视系统的警报,并在界面上显示它们。Alerta可以与许多的监控工具集成,如Nagios,Zabbix,...

1414
来自专栏云计算教程系列

如何在Ubuntu 18.04上重置MySQL或MariaDB Root密码

忘记密码发生在我们最好的人身上。如果您忘记或丢失了MySQL或MariaDB数据库的root密码,如果您有权访问服务器和具有sudo权限的用户帐户,您仍然可以获...

943

扫码关注云+社区