实现自定义监控项实例

.创建主机组
.创建主机
.创建监控项
.到需要监控的主机的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
.到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: 未找到命令 由此可以看出可以正常执行命令 同时返回的结果是一个字符串
这个命令执行的结果类型在创建触发器的时候十分有用

命令配置步骤

仪表盘配置步骤:

1.创建自定义监控项

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

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

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

zabbix内置监控模板

zabbix实现脚本发送告警邮件

zabbix-server 服务器系统配置

[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= #外部smtp服务器认证的用户密码(如用163或qq邮箱则为授权码)
set smtp-auth=login #邮件认证的方式
[root@Zabbix ~]# echo "邮件正文"|mail -s "邮件主题" 收件人地址 #发送邮件测试命令 [root@node3 ~]# echo "hello world aaaaa" |mail -s "aaaaa" @.com
[root@node3 ~]# echo "hello world aaaaa" |mail -s "aaaaa" @qq.com 发送邮件的标题为test 被服务器垃圾邮件屏蔽

发送邮件脚本的实现

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

shell版本

[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.添加报警媒介类型

#!/bin/bash
#echo "this is zabbix msg" |mail -s "bbbbbbbbb" @qq.com echo $ > /tmp/user
echo $ > /tmp/zhuti
echo $ > /tmp/neirong file=/tmp/zabbix_mail.txt
echo "$3" > $file
dos2unix -k $file
/bin/mail -s "$2" $ < $file

sendmail

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

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

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

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

2.添加动作

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

2.添加操作的详细步骤

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}

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

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

zabbix实现钉钉告警

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

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

#!/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.添加告警媒介类型

4.添加动作

5.添加用户报警媒介

zabbix实现自定义监控的更多相关文章

  1. Zabbix设置自定义监控

    [zabbix]自定义监控项key值   说明: zabbix自带的默认模版里包括了很多监控项,有时候为了满足业务需求,需要根据自己的监控项目自定义监控项,这里介绍一种自定义监控项的方式. 1,首先编 ...

  2. zabbix配置自定义监控

    目录 zabbix配置自定义监控项---进程监控 1. 编写获取进程状态的脚本 2. 修改配置文件,添加自定义key 3. 配置监控项 4. 添加触发器 5. 媒介和动作 6. 触发并验证 zabbi ...

  3. 【转载】【zabbix】自定义监控项key值

    [转载]https://www.cnblogs.com/zhenglisai/p/6547402.html [zabbix]自定义监控项key值   说明: zabbix自带的默认模版里包括了很多监控 ...

  4. 【zabbix】自定义监控项key值

    说明: zabbix自带的默认模版里包括了很多监控项,有时候为了满足业务需求,需要根据自己的监控项目自定义监控项,这里介绍一种自定义监控项的方式. 1,首先编写自定义监控脚本,本文以监控httpd进程 ...

  5. Zabbix设置自定义监控项之——监控tcp连接状态

    目录 一.用户自定义参数 二.配置 监控 TCP 连接状态 在实际监控中,除了官方自带的一些监控项,我们很多时候有一些定制化监控,比如特定的服务.TCP 连接状态等等,这时候就需要自定义监控项.自定义 ...

  6. 【zibbix自定义监控】zabbix服务自定义监控mysql的状态信息

    由于mysql我安装在zabbix_server服务的主机上,所以下面操作在zabbix服务主机上进行,注意服务主机已经安装了监控服务 实现步骤: 1.修改 zabbix_agentd.conf,添加 ...

  7. 如何解决zabbix中自定义监控mysql因密码造成的 Warning

    1.--show-warnings=false 在指定mysql命令获取参数时,指定不获取 Warning.不过亲测这个方法不是很有效 例如: mysql -uroot -p123 --show-wa ...

  8. 【Zabbix】分布式监控系统Zabbix【一】

    一.Zabbix功能及特性简介 Zabbix可以获取cpu,内存,网卡,磁盘,日志等信息 1.Zabbix数据收集方式: a.Agent客户端(Agent客户端支持多平台部署) b.如果是无法安装客户 ...

  9. Zabbix自定义监控8080端口的连接数

    Zabbix自定义监控8080端口的连接数 一 zabbix自定义监控实现思路 实际上我们要想使用zabbix来监控一些服务的原理很简单,步骤分别是:1.写一个脚本用于获取待监控服务的一些状态信息2. ...

随机推荐

  1. 【web】服务器推送的实现方式(转)

    轮询 http流 websocket   https://www.cnblogs.com/freud/p/8397934.html http2.0 浅谈Websocket.Ajax轮询和长连接(lon ...

  2. 微信支付的安全漏洞之XXE

    1.场景:国外安全社区公布微信支付官方SDK存在严重漏洞,可导致商家服务器被入侵(绕过支付的效果).目前,漏洞详细信息以及攻击方式已被公开,影响范围巨大(已确认陌陌.vivo因使用该SDK而存在该漏洞 ...

  3. SQL Server中文排序混乱

    在sql语句中指定了含有中文的列进行排序,但排序结果看起来毫无规则,并不是按照拼音进行排序的检查了DB的Collation后,发现是SQL_Latin1_General_CP1_CI_AS解决方法: ...

  4. vsCode 代码不高亮显示的问题

    安装Vetur插件 1.点击左侧菜单的扩展-->搜索Vetur-->点击安装-->安装完成重启vsCode  --->

  5. Eclipse安装git插件以及关联导入GitHub项目

    一.Eclipse配置git 1.查看自己eclipse的版本 打开eclipse 导航: help->AboutEclipse 如图: 2.检查Eclipse中是否已安装Git插件 菜单栏He ...

  6. spring boot vuejs

    项目介绍 Spring Boot 2.0 + VueJs 2.0 开发项目示例 GitHub: https://github.com/fqybzhangji/spring-boot-vue 码云: h ...

  7. 期货大赛项目|十,MVC对js和css的压缩

    在Global.asax中添加两行代码 //默认在调试期间,不会启用js和css的压缩 //下面的语句确保了在调试期间也压缩css和js BundleTable.EnableOptimizations ...

  8. kvm-virsh管理工具

    virsh  可以进入命令行交互界面 Virsh  list   显示所有虚拟机实例 #virt-manager  &   启动图形界面来创建 Virsh   start  c1  --con ...

  9. Python学习(三十七)—— 模板语言之自定义filter和中间件

    一.模板语言之自定义filter 自定义filter文件存放位置 模板中自定义函数 - 在已注册的app中创建一个名字叫 templatetags 文件夹 - 任意创建一个py文件 - 创建名字交 r ...

  10. Python学习(三十三)—— Django之ORM

    Object Relational Mapping(ORM) 一.ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系 ...