监控项是在zabbix中手机数据的基础,没有监控项就没有数据,系统自带模板带有大量默认item,自定义item可以定义在模板中,在应用模板即可使用对应item;也可直接在host中定义

目标:自定义监控项检查/tmp/aa文件是否存在,并设置触发器,实现邮件报警

其实zabbix自带监控项vfs.file.exists可以检查文件是否存在,本文主要为了说明怎么自定义监控项,所以不使用自带的。

vfs.file.exists[file] 检查文件是否存在。返回 0 - 未找到文件;1 - 常规文件或链接(软/硬)存在

1. 开启自定义用户参数

# vim /usr/local/zabbix/conf/zabbix_agentd.conf

UnsafeUserParameters=1

2. 在配置文件中添加UserParameter 

#UserParameter的格式:UserParameter=<key>,<shell command>

UserParameter=file.exist[*],ls /tmp/$1 >/dev/null 2>&1;echo $?   #0表示存在,>0表不存在

#带参数UserParameter的格式:<key[*]>,<shell command>,其中*的意思是方括号中可以有任意多的参数,每个参数由逗号隔开,分别是$1、$2、$3、... ...

3. 重启zabbix_agentd,在server端验证UserParameter是否生效

 重启:略

#server端验证

[root@zabbix ~]# zabbix_get -s 192.168.119.137 -k "file.exist[aa]"
0
[root@zabbix ~]# zabbix_get -s 192.168.119.137 -k "file.exist[bb]"
2

#以上结果说明在agent端存在/tmp/aa文件,不存在/tmp/bb文件

4. 在主机上创建应用集

5. 创建item

6.添加图形

 

7. 添加触发器

项目只收集数据。为了自动评估传入数据,我们需要定义触发器。触发器包含一个表达式,该表达式定义数据的可接受级别的阈值。

如果这个水平超过了传入的数据,触发器将“触发”或进入“问题”状态 - 让我们知道发生了某些事情可能需要注意。如果等级再次可接受,则触发器返回到“OK”状态。

 触发器表达式格式:

{<server>:<key>.<function>(<parameter>)}<operator><constant>

 运算符如下表:

 

PRIORITY OPERATOR DEFINITION Notes for unknown values
1 - Unary minus -Unknown → Unknown
2 not Logical NOT not Unknown → Unknown
3 * Multiplication * Unknown → Unknown
(yes, Unknown, not 0 - to not lose
Unknown in arithmetic operations)
1.2 * Unknown → Unknown
  / Division Unknown / 0 → error
Unknown / 1.2 → Unknown
0.0 / Unknown → Unknown
4 + Arithmetical plus 1.2 + Unknown → Unknown
  - Arithmetical minus 1.2 - Unknown → Unknown
5 < Less than. The operator is defined as:
A<B ⇔ (A<B-0.000001)
1.2 < Unknown → Unknown
  <= Less than or equal to. Unknown <= Unknown → Unknown
  > More than. The operator is defined as:
A>B ⇔ (A>B+0.000001)
 
  >= More than or equal to.  
6 = Is equal. The operator is defined as:
A=B ⇔ (A>=B-0.000001) and (A<=B+0.000001)
 
  <> Not equal. The operator is defined as:
A<>B ⇔ (A<B-0.000001) or (A>B+0.000001)
 
7 and Logical AND and Unknown → 0
and Unknown → Unknown
Unknown and Unknown → Unknown
8 or Logical OR or Unknown → 1
or Unknown → Unknown
Unknown or Unknown → Unknown

 

8. 远程执行命令

当检测到/tmp/aa不存在时远程创建该文件

agent端修改配置文件

EnableRemoteCommands = 1

 另外,在执行命令时确保你的zabbix用户有执行权限,如果某些命令需要root权限,那么请使用sudo。编辑sudoer文件,zabbix用户便可以执行对应命令了。

在/tmp下创建文件不需要root权限,该步骤可忽略

 

#以重启nginx服务为例
zabbix ALL=NOPASSWD: ALL
zabbix ALL=NOPASSWD: /etc/init.d/nginx stop,/etc/init.d/nginx start

zabbix自定义监控项、添加图形、设置触发器、远程执行命令的更多相关文章

  1. zabbix自定义监控项二

    为zabbix增加支持传参的自定义监控项 例如使用zabbix来监控tcp的12种状态 tcp的12种状态可以通过man netstat来找到,即 LISTEN:等待从任何远端TCP 和端口的连接请求 ...

  2. zabbix自定义监控项一

    1.在agent端配置 1.1 添加自定义监控项 zabbix中监控项叫做item,监控项的取值方法叫做key item: Items是从agnet主机里面获取的所有数据.通常情况下我叫itme为监控 ...

  3. Zabbix自定义监控项(模板)

    虽然Zabbix提供了很多的模板(简单理解为监控项的集合),在zabbix界面点击share按钮就可以直接跳到模板大全的官方网站,但是由于模板内的监控项数量太多不好梳理且各种模板质量参差不齐,还是建议 ...

  4. zabbix自定义监控项数据类型错误

    问题描述 监控cpu使用率,脚本获取的值是浮点型  zabbix创建监控项时没有选数据类型,导致监控数据有问题. 查看 zabbix-server 日志: ::203016.768 error rea ...

  5. zabbix自定义监控项

    原因:zabbix监控系统自带的监控规则有限,如果需要更加灵活的定义监控项,可以通过修改配置文件实现 vim xxx/zabbix_agentd.conf UnsafeUserParameters=1 ...

  6. zabbix 自定义监控项每隔1分钟检测一次三次失败报警

    在agent上添加 UserParameter=auth.check,/etc/zabbix/auth_monitor/auth_check.py auth.check就是之后添加的自定义的item值 ...

  7. zabbix 自定义监控项,监控tomcat访问量

    uv:访客量.每个独立上网电脑视为一位访客.pv:访问量.页面浏览量或者点击量,访客每访问一次记录一次. 1.创建文件 /home/zabbix/pvuv_number.sh [ #/bin/bash ...

  8. zabbix 自定义监控项 获取nginx监控状态

    本篇是基于zabbix 源码安装的 [root@localhost conf]# curl "http://192.168.0.73:8080/nginx_status" Acti ...

  9. zabbix 自定义监控项简单案例

    例如:获取被监控主机的登录用户数 以uptime为例: 输入命令:uptime | awk '{print $6}'  可以获得当前登录用户数(不通终端打印出的位置不同) 1.被监控主机修改zabbi ...

随机推荐

  1. vue路由懒加载

    大项目中,为了提高初始化页面的效率,路由一般使用懒加载模式,一共三种实现方式.(1)第一种写法: component: (resolve) => require(['@/components/O ...

  2. unity读取txt,并且生成vector3的数组

    读取txt的脚本: public void ReadFileTX(){ var str = File.ReadAllText(Application.streamingAssetsPath + &qu ...

  3. IDEA打包jar包

    1.点击idea左边的Maven 2.点开要打包的项目下的-->Lifecycle-->双击package 3.jar包会默认保存在项目下的target文件夹下

  4. python中关于变量名失效的案例

    案例一:传参动态导入模块. selectModule = input("please input your module name") app_name = input(" ...

  5. [原创]Zynq AXI-CDMA测试结果

    经过研究与demo,在zynq上使用axi-cmda效率还是很高,测试报告如下所示 对于读取32KB,GP0和HP0的测试结果如下:

  6. 快速搭建MQTT服务器(MQTTnet和Apache Apollo)

    前言 MQTT协议是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分,http://mqtt.org/. MQTT is a machine-to-machine (M2M)/" ...

  7. UOJ#395. 【NOI2018】你的名字 字符串,SAM,线段树合并

    原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ395.html 题解 记得同步赛的时候这题我爆0了,最暴力的暴力都没调出来. 首先我们看看 68 分怎么做 ...

  8. C# 数据为空,不能对NULL调用此方法或属性的解决办法

    在运行C#项目时,报出了以下错误,错误原因是数据库中的值为null时,查询时会触发该错误提示 部分源代码如下: public List<Student> findData2() { ; / ...

  9. HttpConnection

    1.HttpConnection 用于接受和发送网络数据 网络操作必须新开个子线程执行,否则会出现 ANR(Application Not Response) 应用无响应异常 Get: /** * 通 ...

  10. __x__(26)0907第四天__文档流_网页最底层

    文档流 处在网页的最底层,表示的是一个页面中的位置. 创建的元素,默认都处于文档流中. 元素在文档流中的特点 块元素 在文档流中独占一行. 自上而下排列. 宽度默认占父元素的 100%,width=& ...