监控项是在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.页面中只有一个index.html. 2.一个js文件.在路由中. 3.主要的app.vue. 4.最后就是可以放多个vue文件的~~(一个页面对应一个vue文件,一个vue组件对应一个js中的i ...

  2. Flask开发微电影网站(十)

    1.后台管理之角色管理 1.1 角色管理之定义角色表单 在app的admin目录的forms.py文件中,定义角色表单 # 角色表单 class RoleForm(FlaskForm): name = ...

  3. vue2.0 事件处理常用修饰符-----------------记录,加强记忆。

    1,<!-- 阻止单击事件继续传播 --> <a v-on:click.stop="doThis"></a> stop修饰符对应的是阻止冒泡的e ...

  4. Jmeter性能测试之参数化(二)

    Jmeter参数化主要有3种方式: 1. Add--> Pre Processors--> User Parameters 2. Add--> Config Element--> ...

  5. Three teachers who make differences in my life

    人生路漫漫,从小到大,经历过九年义务教育的我们也受到过很多老师的熏陶,而已经进入大学的我也会回想起那些给我带来别样意义的老师们. 亲爱的老李-老李是我初中的班主任,也是我的历史老师.依稀记得上他的课会 ...

  6. Java Spring Boot VS .NetCore (六) UI thymeleaf vs cshtml

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  7. linux 查看java的安装路径

    在linux下,如何找java的安装路径 han@ubuntu:/etc$ whereis java java: /usr/bin/java /usr/share/java /usr/lib/jvm/ ...

  8. 【原创】sqlite ef6 踩坑

    调试的时候配置写如下,这样写是没有问题的但是在实际环境中有问题,因为EF路径找不到.会提示错误:The underlying provider failed on open <connectio ...

  9. POJ 1985 Cow Marathon (模板题)(树的直径)

    <题目链接> 题目大意: 给定一颗树,求出树的直径. 解题分析:树的直径模板题,以下程序分别用树形DP和两次BFS来求解. 树形DP: #include <cstdio> #i ...

  10. DPI与DFI技术分析

    DPI全称为“Deep Packet Inspection”,称为“深度包检测”.DPI技术在分析包头的基础上,增加了对应用层的分析,是一种基于应用层的流量检测和控制技术,当IP数据包.TCP或UDP ...