zabbix自定义报警-动作

 
打开资产自动接收

 

这里看到主机资产有数据了,这里的数据,就是来自下面的关联

上面的数据就是设置login-user时候设置的关联

 

 有些关联显示的慢,比如下面的OS,原因就是items那里设置的更新时间比较长,原先是3600秒,改成60秒
 

 
 

创建触发器

 

起个名字,添加个表达式

 

 

下面这里还可以设置时间,次数
下面意思,就是最后时间大于2次的
点击Insert
 

描述可以不写,选择警告级别

查看另一个页面 --依赖
如果某件事发生了,就别报这个警了。比如如果主机down了就别报警了。先不加这个依赖

 

客户端多复制一个console,触发它报警

图形里也能看到

 

 

profile里面可以设置报警声音,启用它

 
 仪表板,报警会产生一个事件

 
 
 
 处理告警,点击ack

 

每一个事件最好都ack一下,这是好习惯
 

 
actions是空的,说明什么也没干
 

 
 
 

配置告警之后的actions

 
可以配置一些告警短信和邮件等。默认自带了一个actions,打开这个actions
 

 下面是默认短信发送内容

如果是发短信报警,要把上面的message改的短一些,改成70个字符以内
国内英文单词按字母算,汉字按个数算
精简下,最下面是恢复的时候再发个短信,把下面粘贴下放下面即可,生产环境是这么玩的

 
条件,
1、你这个机器没在维护里面
2、你这个触发器故障的时候

有台机器你不想让他告警,但是又想监控它,可以使用host=

下面是操作什么

第一分钟到第三分钟,每分钟发一个告警的通知
如果第3分钟到第5分钟,告警还在可以设置发领导(现网这里悠着点,肯定要尽快解决,也是对自己一个督促)
 

 下面就是假设,假设6分钟到10分钟还没处理,发给你的cto,这就是故障的升级机制

 
 
 
设置告警的介质

 
默认是email
jabber是一个开源的东西,用不上
sms是短信的,也可以使用gsm的猫,短信猫等都是支持的

点开邮件,发现比较鸡肋。 没用用户名密码等,一般不使用它

短信这个除非你有短信猫,一般也不用
jabber更不用

 模拟触发执行脚本,自己去创建

你可以写个脚本发邮件,发短信等,或者echo  hehe,一般使用脚本是主流

 
怎么加脚本呢vim /etc/zabbix/zabbix_server.conf

AlertScriptsPath=/usr/lib/zabbix/alertscripts
这里配置了报警脚本的路径
把你写的脚本放这里就好了,这样它就能找到了

进入如下目录写一个脚本,内容如下。

一般情况下,我们是执行Zabbix脚本,比如发邮件

这个zabbix脚本要接收3个参数
$1,$2,$3
$1是邮件地址
$2 邮件主题
$3 邮件内容

[root@linux-node1 alertscripts]# pwd
/usr/lib/zabbix/alertscripts
[root@linux-node1 alertscripts]# cat Send_Mail.sh
echo $1 $2 $3 >>/tmp/test.log
[root@linux-node1 alertscripts]#

加上课执行权限

[root@linux-node1 alertscripts]# chmod +x Send_Mail.sh

网页这里就可以这么写了

给它指定个用户,让某用户可以运行这个脚本
注意,前面是用户组,后面是成员

点击Members,然后点击Admin,下面这里不用动,点击Media

报警介质添加
发给谁,什么时间,什么级别发
如果这个邮箱是老板的话,可以去掉不重要的告警

我的选择如下

Add之后

权限这里分读写和只读以及拒绝访问,最下面可以看到权限只能分配给组

 模拟故障场景,linux-node2的ssh窗口多复制几个,等待一会看到下面日志有内容了
[root@linux-node1 alertscripts]# tail -f /tmp/test.log
525031638@qq.com PROBLEM linux-node2:login-user): 3
^C
[root@linux-node1 alertscripts]#

仪表盘里也能看到它自动执行了action 

尝试把脚本改成如下发邮件的脚本,这个脚本需要把smtpserver,username,password改成发件方的。
另外这个脚本需要接收3个参数,第一个参数是收件人的邮箱(Zabbix会传给它),第二个参数是邮件主题(Zabbix会传给它),第三个参数是邮件内容(Zabbix也会传给它)
[root@linux-node1 alertscripts]# pwd
/usr/lib/zabbix/alertscripts
[root@linux-node1 alertscripts]# ll
total 8
-rwxr-xr-x 1 root root 714 Mar 13 20:16 pymail.py
-rwxr-xr-x. 1 root root 30 Nov 29 23:20 Send_Mail.sh
[root@linux-node1 alertscripts]# cat pymail.py
#!/usr/bin/python
#coding: utf-8
import smtplib
import sys
from email.mime.text import MIMEText
from email.header import Header
from email.Utils import COMMASPACE receiver = sys.argv[1]
subject = sys.argv[2]
mailbody = sys.argv[3]
smtpserver = 'smtp.exmail.qq.com'
username = 'test1@xxxxxx.com'
password = '123456'
sender = username msg = MIMEText(mailbody,'html','utf-8')#中文需参数‘utf-8’,单字节字符不需要
msg['Subject'] = Header(subject, 'utf-8')
msg['From'] = username
msg['To'] = receiver smtp = smtplib.SMTP()
smtp.connect(smtpserver)
smtp.login(username, password)
smtp.starttls()
smtp.sendmail(msg['From'], msg['To'], msg.as_string())
smtp.quit()
[root@linux-node1 alertscripts]#

  

QQ邮箱可以收到邮件

解决告警之后又收到了恢复正常的邮件

看到邮件内容多了括号和空格,把下面多余的空格和括号删除即可

Update之后,别扭的括号和空格都没了

qq邮件可以绑定微信。对于使用微信的用户可以及时看到告警

 
简单制作一个模板

制作模板
 

查看linux自带的模板

点开进去,可以看到此模板配置情况

创建自定义模板

给此模板命名为demo,同时把linux-node2加入到此模板里

link给一个模板

点击Update

点击Update之后,提示模板不能被通过此模板再去link给其它模板(这里不是很明白,有时间再研究下)

去掉link,点击update。模板创建好了,目前什么都是空的。没有application和items
建立完毕,目前什么都是空的

 
添加items

 

把login-user 这个之前创建的item加入到模板里
 
 key这里,要手写,不要选择,因为是自定义的,select是搜索不到的

还可以给这个模板继续创建Application,起名app1

 
把之前创建的items加入到app1

 app1里面多了Items,那个login-user
 

最后demo模板结果如下

你可以把这个模板链接到任何一台机器上,这样模板里有的监控项,那个机器就有了
其实你自定义的监控项可以从配置文件里取出来,放下面目录下,然后在客户端主配置文件里include进去

这里面默认还有个mysql的监控项呢
[root@linux-node2 zabbix_agentd.d]# cd /etc/zabbix/zabbix_agentd.d/
[root@linux-node2 zabbix_agentd.d]# ls
userparameter_mysql.conf
[root@linux-node2 zabbix_agentd.d]#

这个agent.conf自带include选项
生产环境都建议这么干。尽量不要修改原来的配置文件。更专业一点

 
zabbix导入自定义模板--tcp的11种状态监控

 
 获取服务器的tcp的11种状态的模板和脚本(常用于web服务器和反向代理服务器)。
脚本里采用ss命令取tcp状态,ss命令性能强于netstat
这里使用2个文件

创建一个用于存放脚本插件的目录
[root@linux-node2 alertscripts]# cd /etc/zabbix/
[root@linux-node2 zabbix]# ls
web zabbix_agentd.conf zabbix_agentd.d zabbix_server.conf
[root@linux-node2 zabbix]# mkdir shells
[root@linux-node2 zabbix]# cd shells/
[root@linux-node2 shells]# pwd
/etc/zabbix/shells

把脚本上传上去

[root@linux-node2 shells]# rz -E
rz waiting to receive.
[root@linux-node2 shells]#
[root@linux-node2 shells]# ls
zabbix_linux_plugin.sh
[root@linux-node2 shells]# chmod +x zabbix_linux_plugin.sh
[root@linux-node2 shells]# ./zabbix_linux_plugin.sh
Usage: ./zabbix_linux_plugin.sh {tcp_status key|memcached_status key|redis_status key|nginx_status key}
[root@linux-node2 shells]#
 
你要告诉它,你监控什么东西,它的key是什么。
这里截取模板文件部分内容

因此,运行此脚本需要给它2个参数

[root@linux-node2 shells]# ./zabbix_linux_plugin.sh tcp_status LISTEN
14
[root@linux-node2 shells]# ./zabbix_linux_plugin.sh tcp_status TIME-WAIT
52
[root@linux-node2 shells]#

在下面目录下,创建一个文件,存放自定义的key和value,而value通过此脚本获取

key这里是linux_status[*] ,表示它支持列表

[root@linux-node2 zabbix_agentd.d]# pwd
/etc/zabbix/zabbix_agentd.d
[root@linux-node2 zabbix_agentd.d]# ls
userparameter_mysql.conf zabbix-linux-plugin.conf
[root@linux-node2 zabbix_agentd.d]# cat zabbix-linux-plugin.conf
UserParameter=linux_status[*],/etc/zabbix/shells/zabbix_linux_plugin.sh "$1" "$2" "$3"
[root@linux-node2 zabbix_agentd.d]#

重启linux-node2的Zabbix agent

[root@linux-node2 zabbix_agentd.d]# /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent: [ OK ]
Starting Zabbix agent: [ OK ]
[root@linux-node2 zabbix_agentd.d]# cd

  

server端通过zabbix_get获取数据没问题

[root@linux-node1 zabbix]# zabbix_get -s 10.0.1.162 -k linux_status[tcp_status,ESTAB]
2
[root@linux-node1 zabbix]#

  

注意,zabbix监控的时候,是使用的zabbix用户

[root@linux-node2 ~]# ll /tmp/netstat.tmp
-rw-rw-r-- 1 zabbix zabbix 31 Mar 13 22:09 /tmp/netstat.tmp
[root@linux-node2 ~]#

  

接下来你要做的是,创建一种模板,tcp有11个状态,你要创建11个key
然后做个图,这里有别人做好的
配置--模板--导入

选择电脑上的模板文件

 

 模板导入成功

 
 

点击Items看到11个监控项,name右边是key

 

接下来给一个主机加这个模板

add

可以批量更改

 

改时间间隔为30秒,仅仅出于测试目的,现网不要这么做
 
 

本来是300的,都变成了30秒

 

 查看图形显示这里
如果没有数据会返回0,注意0不是空。这里写成0是有意义的。
 
 
 

Zabbix-2.4-安装-2的更多相关文章

  1. zabbix 3.0 安装 ubuntu环境

    zabbix 3.0 安装 标签(空格分隔): 开发 [TOC] 下载deb # wget http://repo.zabbix.com/zabbix/3.0/ubuntu/pool/main/z/z ...

  2. zabbix windows angent安装:

    zabbix windows angent安装:1.下载zabbix agent for windows客户端,直接解压到C盘下.C:\zabbix 的目录015/04/21 11:16 <DI ...

  3. Zabbix概念、安装以及快速入门

    Zabbix is an enterprise-class open source distributed monitoring solution.[1] Zabbix是一个企业级的.开源的.分布式的 ...

  4. 【zabbix系列】安装与加入host

    測试环境 Ubuntu 14.04.1 LTS [服务端安装] 关于安装官方提供了非常具体的安装方法,包含各平台的源代码及包安装.关于其它版本号Linux请參考 https://www.zabbix. ...

  5. zabbix源码安装实例

    环境 系统                 Centos7 zabbix版本      Zabbix 3.4.15 (revision 86739) zabbix源码安装 .tar.gz cd zab ...

  6. zabbix学习笔记----安装----2019.03.26

    1.zabbix官方yum源地址:repo.zabbix.com 2.安装zabbix server zabbix server使用mysql作为数据库,在zabbix 3.X版本,安装zabbix- ...

  7. zabbix客户端的安装、zabbix主被动模式、添加主机模板等、处理页面的中文乱码

    1.zabbix客户端的安装: 如下步骤: wget repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch. ...

  8. 运用Zabbix实现内网服务器状态及局域网状况监控(3) —— Zabbix服务端安装

    1. Zabbix服务端安装,基于LNMP PHP5.5+Nginx1.9安装配置:http://www.cnblogs.com/vurtne-lu/p/7707536.html MySQL5.5编译 ...

  9. CentOS7 zabbix服务 简单安装文档

    1. 简介 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快 ...

  10. zabbix v3.0安装部署

    这篇文章没有写明init的部分要注意 zabbix v3.0安装部署 摘要: 本文的安装过程摘自http://www.ttlsa.com/以及http://b.lifec-inc.com ,和站长凉白 ...

随机推荐

  1. 从原理上理解如何由震源机制一个节面的解:strike,dip,rake可以求出另一个节面的解

    首先,需要回到最原始的地震矩的表达式: 已知strike,dip,rake 根据strike和dip可以求出v,根据strike,dip,rake,可以求出u. 把求出来的v和u互换,相当于原来的位错 ...

  2. Linux文件系统命令 pwd

    命令名:pwd 功能:查看当前所处的位置 eg: renjg@renjg-HP-Compaq-Pro--MT:~$ pwd /home/renjg renjg@renjg-HP-Compaq-Pro- ...

  3. springmvc跳转到自定义404页面的三种方法

    有时候我们并不想跳转到系统自定义的错误页面中,那么我们需要自定义页面并且实现它的跳转 有三种方法可以实现 方法一:最简单的实现,也是最快的 在<web-app>节点下配置 代码如下: &l ...

  4. 2019-03-29-day022-封装与类方法与静态方法

    昨日回顾 抽象类 规范代码,规定子类必须实现某个方法的名字 不能实例化 from abc import ABCMeta, abstractmethod class 抽象类名(metaclass=ABC ...

  5. java学习笔记20(Arraylist复习,Collection接口方法,迭代器,增强型for循环)

    集合:集合是Java提供的一种容器,可以用来存储多个数据: 集合与数组的区别:集合的长度是可变的,数组的长度是固定的 集合中存储的数据必须是引用类型数据: ArrayList回顾: public cl ...

  6. 某些浏览器没有canvas.toBlob 方法的解决方案

    var dataURLtoBlob = require('blueimp-canvas-to-blob'); // 80x60px GIF image (color black, base64 dat ...

  7. python 应用 pyamg

    paper idea要用到pyamg,虽然这个包只有几行代码,但是还是折磨了我挺久,配置环境什么的就废了挺多时间. 好久没用pyamg了,然后又换了电脑,突然感觉有点方,,都忘了之前怎么弄的,今天运行 ...

  8. Java 容器的使用及数组、List、Set 的相互转换

    0. Utils 字符串数组的排序: Set<String> set = new TreeSet<String>(); Collections.addAll(set, args ...

  9. 精确率、召回率、准确率与ROC曲线

    精确率表示的是预测为某类样本(例如正样本)中有多少是真正的该类样本,一般用来评价分类任务模型. 比如对于一个分类模型,预测结果为A类的所有样本中包含A0个真正的A样本,和A1个不是A样本的其他类样本, ...

  10. html+css实现小米商城首页静态页面

    学了一个星期的html和css,用新学的东西写点东西,仿照小米商城的首页按照它的页面布局盗用它的图片写了个小米商城的静态页面. 源代码:链接:https://pan.baidu.com/s/1qf63 ...