zabbix实现自定义监控

摘要:
实现自定义监视项实例1。创建主机组2。创建主机3。创建监控项1。向要监视的主机的代理添加自定义监视项cd/etc/zabbix/zabbix _agentd.dviuserparameter_Mysql.confUserParameter=监视项目名称,shell名称UserParameter=Mysql.ping,HOME=/var/lib/zabbixmysqladminping|

实现自定义监控项实例

zabbix实现自定义监控第1张

zabbix实现自定义监控第2张zabbix实现自定义监控第3张
1.创建主机组
2.创建主机
3.创建监控项
  1.到需要监控的主机的agent中添加自定义的监控项目
    cd /etc/zabbix/zabbix_agentd.d
    vi userparameter_mysql.conf
    UserParameter=监控项目名称,shell命名
    UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive
    systemctl restart zabbix-agent
  2.到zabbix server的主机上进行调试
    zabbix_get -s 192.168.11.134 -k mysql.ping
    [root@node3 ~]# zabbix_get -s 192.168.11.134 -k mysql.ping
    sh: mysqladmin: 未找到命令
    0
    由此可以看出可以正常执行命令 同时返回的结果是一个字符串
    这个命令执行的结果类型在创建触发器的时候十分有用
命令配置步骤

 仪表盘配置步骤:

   1.创建自定义监控项

zabbix实现自定义监控第4张

信息类型的选择 需要根据shell命令执行的具体结果来确定 不能随便填写

zabbix实现自定义监控第5张

   2.根据自定义监控项创建触发器

      表达式就是对获取对应监控项的值进行一些处理 根据处理后的值来判断是否进行告警操作

     zabbix实现自定义监控第6张

zabbix实现自定义监控第7张

zabbix内置监控模板

zabbix实现自定义监控第8张

zabbix实现脚本发送告警邮件

   zabbix-server 服务器系统配置

zabbix实现自定义监控第9张zabbix实现自定义监控第10张
[root@Zabbix ~]# yum -y install mail         #如有mail命令则不用安装
[root@Zabbix ~]# vim /etc/mail.rc
# Display the recipients of messages sent by the user himself in
# header summaries.
set showto
# Automatically check for new messages at each prompt, but avoid polling
# of IMAP servers or maildir folders.
set newmail=nopoll
# If threaded mode is activated, automatically collapse thread.
set autocollapse
# Hide some header fields which are uninteresting for most human readers.
ignore received in-reply-to message-id references
ignore mime-version content-transfer-encoding
# Only include selected header fields when forwarding messages.
fwdretain subject date from to
# For Linux and BSD, this should be set.
set from=richardcnhm@sina.com                     #发送的邮件地址
set smtp=smtp.sina.com                                   #外部smtp服务器的地址
set smtp-auth-user=richardcnhm@sina.com    #外部smtp服务器认证的用户名
set smtp-auth-password=123456                     #外部smtp服务器认证的用户密码(如用163或qq邮箱则为授权码)
set smtp-auth=login                                          #邮件认证的方式
[root@Zabbix ~]# echo "邮件正文"|mail -s "邮件主题" 收件人地址           #发送邮件测试命令

[root@node3 ~]# echo "hello world aaaaa" |mail -s "aaaaa" 2228@163.com
[root@node3 ~]# echo "hello world aaaaa" |mail -s "aaaaa" 1272@qq.com

发送邮件的标题为test 被服务器垃圾邮件屏蔽
View Code

  发送邮件脚本的实现

zabbix实现自定义监控第11张zabbix实现自定义监控第12张
[root@Zabbix ~]# yum -y install dos2unix
[root@Zabbix ~]# vim /usr/lib/zabbix/alertscripts/mail.sh
#!/bin/bash
# use mailx to send mail
# 20141127 carl 1st
# PATH
file=/tmp/zabbix_mail.txt
echo "$3" > $file
dos2unix -k $file
/bin/mail -s "$2" $1 < $file
# echo "$3" | mail -s "$2" $1
#注:使用dos2unix工具是为解决zabbix发送邮件出现乱码和收到的邮件是*.bin的情况
#$3 是前端定义的邮件内容,$2是前端定义的主题,$1是前端定义的收件人
[root@Zabbix alertscripts]# chmod 777 mail.sh
[root@Zabbix alertscripts]# chown zabbix.zabbix mail.sh

mail.sh必须存放在/usr/lib/zabbix/alertscripts/目录下
shell版本
zabbix实现自定义监控第13张zabbix实现自定义监控第14张
[root@zabbix alertscripts]# pwd

/usr/lib/zabbix/alertscripts

[root@zabbix alertscripts]# cat mail_qq.py

#!/usr/bin/python

#coding:utf-8

import smtplib

from email.mime.text import MIMEText

import sys

mail_user = '111111111@qq.com'

mail_pass = 'xxxxxxxxxxx'

 

def send_mail(to_list,subject,content):

me = "zabbix 监控告警平台"+"<"+mail_user+">"

msg = MIMEText(content, 'plain', 'utf-8')

msg['Subject'] = subject

msg['From'] = me

msg['to'] = to_list

try:

s = smtplib.SMTP_SSL("smtp.qq.com", 465)

s.login(mail_user,mail_pass)

s.sendmail(me,to_list,msg.as_string())

s.close()

return True

except Exception,e:

print str(e)

return False

if __name__ == "__main__":

send_mail(sys.argv[1], sys.argv[2], sys.argv[3])

mail_user为邮箱地址,mail_pass为邮箱服务商提供的客户端授权码,获得授权码的方式也可以参考百度,要说明的是目前网易邮箱客户端授权码支持自定义,qq邮箱客户端授权码不支持自定义,需要生成、这里也附上使用163邮箱的脚本

[root@zabbix alertscripts]# cat mail_163.py

#!/usr/bin/python

#coding:utf-8

import smtplib

from email.mime.text import MIMEText

import sys

mail_user = '1232323232@163.com'

mail_pass = 'xxxxxxxxxx'

 

def send_mail(to_list,subject,content):

me = "zabbix 监控告警平台"+"<"+mail_user+">"

msg = MIMEText(content, 'plain', 'utf-8')

msg['Subject'] = subject

msg['From'] = me

msg['to'] = to_list

try:

s = smtplib.SMTP("smtp.163.com", 25)

s.login(mail_user,mail_pass)

s.sendmail(me,to_list,msg.as_string())

s.close()

return True

except Exception,e:

print str(e)

return False

if __name__ == "__main__":

send_mail(sys.argv[1], sys.argv[2], sys.argv[3])

脚本编写完成之后需要为脚本添加执行权限

[root@zabbix alertscripts]# chmod +x mail_qq.py

3、测试

命令行测试脚本能否成功执行

[root@zabbix alertscripts]# ./mail_qq.py xxx@163.com "测试" 'test'

测试参数为三个,分别为收件人邮箱地址,邮件标题,邮件内容

测试的时候如果出现错误提示缺少smtplib,解决方法为使用pip进行安装:pip install smtplib
python脚本

zabbix web控制台配置

  1.添加报警媒介类型

  zabbix实现自定义监控第15张

zabbix实现自定义监控第16张zabbix实现自定义监控第17张
#!/bin/bash
#echo "this is zabbix msg" |mail -s "bbbbbbbbb" 127@qq.com

echo $1 > /tmp/user
echo $2 > /tmp/zhuti
echo $3 > /tmp/neirong

file=/tmp/zabbix_mail.txt
echo "$3" > $file
dos2unix -k $file
/bin/mail -s "$2" $1 < $file
sendmail

 向sendmail脚本传递三个宏变量参数

     1.{ALERT.SENDTO}        表示接收邮件的账号

     2.{ALERT.SUBJECT}      表示发送邮件的标题

     3.{ALERT.MESSAGE}     表示发送邮件的内容     

zabbix实现自定义监控第18张

   2.添加动作

      1.添加一个动作的触发条件

       zabbix实现自定义监控第19张

     2.添加操作的详细步骤

     zabbix实现自定义监控第20张

      zabbix内置的宏变量:

         默认标题: 主机 {HOSTNAME} 在 {EVENT.DATE} {EVENT.TIME} 发生故障 {TRIGGER.NAME} {ITEM.VALUE}

         告警主机:{HOSTNAME}

         告警时间:{EVENT.DATE} {EVENT.TIME}

         告警等级:{TRIGGER.SEVERITY}

         告警信息: {TRIGGER.NAME}

         告警项目:{TRIGGER.KEY}

         问题详情:{ITEM.NAME}:{ITEM.VALUE}

         当前状态:{TRIGGER.STATUS}:{ITEM.VALUE}

         事件ID:{EVENT.ID}

    zabbix实现自定义监控第21张

     3.设置用户Admin的邮箱 用来接收报警信息邮件

      zabbix实现自定义监控第22张

   4.修改触发器表达式触发报警发送邮件

    zabbix实现自定义监控第23张

 zabbix实现自定义监控第24张

zabbix实现自定义监控第25张

zabbix实现钉钉告警

  1.首先创建一个钉钉群 然后再在群里创建一个群机器人 获取一个web hook地址

  zabbix实现自定义监控第26张

2.编写发送钉钉发送消息脚本

    [root@node3 alertscripts]# pwd
    /usr/lib/zabbix/alertscripts

   [root@node3 alertscripts]# chown -R zabbix:zabbix dingding.py

   [root@node3 alertscripts]# chmod +x dinding.py

zabbix实现自定义监控第27张zabbix实现自定义监控第28张
#!/usr/bin/python

import sys
import json
import requests

api_url="https://oapi.dingtalk.com/robot/send?access_token=d4a29054"
headers={"Content-Type":"application/json;charset=utf-8"}

def msg(text):
    json_text = {
        "msgtype":"text",
        "text": {
            "content":text
        },
        "at":{
            "atMobiles":[
              # "13999999",
            ],
            "isAtAll":False
        }
    }
    print(requests.post(api_url,json.dumps(json_text),headers=headers).content)

if __name__ == "__main__":
    text=sys.argv[1]
    msg(text)


#调试
[root@node3 alertscripts]# python dingding.py 
[root@node3 alertscripts]# ./dingding.py 
./dingding.py:行1: import: 未找到命令
./dingding.py:行2: import: 未找到命令
./dingding.py:行3: import: 未找到命令
 import sys
 import json
 import requests


#!/usr/bin/python
import sys
import json
import requests
dingding.py

3.添加告警媒介类型

zabbix实现自定义监控第29张

  4.添加动作

   zabbix实现自定义监控第30张

  5.添加用户报警媒介

   zabbix实现自定义监控第31张

免责声明:文章转载自《zabbix实现自定义监控》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[转载+原创]Emgu CV on C# (一) —— Emgu CV on Visual C# 2010Redis入门 – Jedis存储Java对象下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【转载】Linux系统下源代码包方式安装PHP开发环境

########节选自《细说PHP》################ 2.2 Linux系统下源代码包方式安装环境 在Linux平台下安装PHP有几种方法:使用配置和编译过程,或是使用各种预编译的包。在Linux上安装软件,用户最好的选择是下载源代码包,并编译一个适合自己的版本。LAMP组合中每个成员都是开源的软件,都可以从各自的官方网站上免费下载安装程序...

Linux非Root权限配置Java环境变量

编辑配置文件vi ~/.bashrc设置环境变量 set java environment JAVA_HOME=/home/zoms/java-se-8u41-ri JRE_HOME=/home/zoms/java-se-8u41-ri/jre CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/too...

MySQL的安装、配置文件和初始化

MySQL基于源代码的安装 本文以MySQL5.1.73+Centos6.5作为安装演示,其他版本安装方法大同小异。首先下载MySQL5.1.73的源代码包。STEP01 创建MySQL运行期用户和用户组,当前步骤也可以在安装成功之后做: [root@localhost objs]# groupadd mysql [root@localhost objs...

Rsync+sersync部署

内核版本:2.6.32-431.el6.x86_64 系统采用最小化安装,系统经过了基本优化,selinux 为关闭状态,iptables 为无限制模式 源码包存放位置:/root Rsync 客户端+Sersync 服务器(SERSYNC),承担角色 MASTER,IP:172.16.100.3,主机名: rsync-client-sersync SE...

Zabbix监控系统详解:ubuntu系统下软件的安装

Zabbix监控系统详解1、介绍zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。 zabbix由2部分构成,zabbix server与可选组件zabbix agent。 zabbix se...

java实现POP3邮件客户端

java实现POP3邮件客户端 完整项目包:http://yunpan.cn/QiVGqacT6uNAj (提取码:05b4) 第一步:利用socket编程,在客户端与服务器端之间建立TCP连接,POP3默认端口号为110; 第二步:通过pop3定义的各种命令,用户可以操作自己的邮箱。 注: POP3协议中有三种状态,认正状态,处理状态,和更新状态。命令的...