0x01 Create Host

安装完zabbix后从哪里入手?无非就是要添加监控目标,那本文就从添加监控一个主机入手,了解zabbix的各个基本功能

添加主机在“Configuration”选项卡上的“Hosts”,可以看到下图默认已经有一个监控目标了,接下来就从这里展开,描述item,trigger,graphs等使用

首先,要先了解item是监控目标主机上的各个小项目(比如内存、cpu的使用率),多个item可以分组归类成application。当item超出设定的阈值就要做出某种行动(告警通知),trigger(触发器)定义当item超出范围时,要采取什么行动。

1、新增一台被监控主机。

configuration—>Hosts—>Create host(右上角)

完成添加后,可以发现新增的host各个指标(application/items/triggers/graphs)都显示为0

2、Items

点击“items”进入新的界面中右上角可以创建新的item,item定义了单个主机中具体的监控对象。

补充:key可以接受一个或多个参数,zabbix有很多内置预设的key
        上述页面可以创建新的Application(作为item的分组归类)

出现如下问题检查Hostname是否一致,当不是监控本机时IP地址,agent配置文件是否为默认的127.0.0.1

3、Graphs

针对刚刚添加的item设置图像属性,描述如何展示数据。可以将多个item显示在同一张图上

如果有一个场景,我们将CPU相关的几个item显示在一张图上,将Memory相关的显示在另一张图上,如何才能同时查看两张图片呢。

这时候Configuration—>Screens新建即可。先定义好几行几列的一个布局。

插入要显示的图片(Graph name),并调整相关的属性,如高度宽度、对齐等

0x02  触发器

当完成一个主机的某项监控之后,可以对这个监控功能进行扩展,定义一个范围,当超过这个范围的时候视为异常,给予警示。触发器能产生事件,每一个触发器仅能关联一个监控对象,但一个监控对象可以使用多个触发器(定义不同阈值,实现不同级别的报警)

触发器表达式形式如下:

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

{主机:key.函数(参数)}<表达式>常数

zabbix触发器表达式详解

zabbix仅支持触发器间的依赖关系。比如一个网络设备下接许多主机,如果这个网络设备故障,会导致所有主机都视为异常而报警,但真实情况可能仅仅是这个父节点的问题。

触发器产生事件(触发器可以产生事件,也可以产生发现事件),产生了事件通常要做出响应,一般是在满足特定条件下通过各种途径(媒介)进行发送消息或者执行远程命令的操作。

zabbix action报警配置

触发器使用示例(假设场景:对内存的使用率监控,当到达一定阈值的时候触发)

1、新增item

2、新增graph

3、新增触发器

按照上面的描述,先写一个触发器的表达式,其实就是将key获取到的数据,再用function处理一下,然后经过操作符的比较,看看是否能够达到。触发器仅仅是引起一个事件,没有进行任何动作。新建动作在configuration->action。

4、新增Action

前面说到,通知首先要满足条件,然后再进行操作。在Action的页面上可以看到Conditions(条件)和Operations(操作)

条件里面可以定义多个条件ABC……,然后通过逻辑运算,比如:条件A或(与)条件B,满足条件之后再执行操作。默认的是当不在维修状态并且触发器的事件为“PROBLEM”时作为可执行操作的条件。

这里对三个选项卡的相关属性进行定义

1、Action 只需要填写名称
         2、Conditions 保持默认
         3、Operations定义远程执行命令

除了所执行命令是否有权限外,在zabbix客户配置文件需要开启对远程命令的支持,编辑 zabbix_agentd.conf 修改 EnableRemoteCommands = 1

5、模拟触发条件

正常情况下所绘制的统计图如下:

只要内存使用率高于1.5G就满足触发条件了,这里用到一个简单易用的内存压力测试工具memtester。

[root@localhost ~]# memtester 400M  #给内存增加400M,可以看到效果,Monitoring里面的Triggers和Events都有警告提示,图像上的实时显示也已经到达了触发阈值。在Events的状态里面还可以看到Action是否执行OK。

最后检验下命令是否执行成功,我们是输出执行命令的当前时间(请忽略那个warning错别字)

[root@localhost ~]# cat /tmp/zabbixtestmem
Thu Sep 15 00:45:09 CST 2016 : warming
Thu Sep 15 00:46:09 CST 2016 : warming
Thu Sep 15 00:47:09 CST 2016 : warming
Thu Sep 15 00:48:09 CST 2016 : warming
Thu Sep 15 00:49:09 CST 2016 : warming
[root@localhost ~]# date
Thu Sep 15 00:53:34 CST 2016

可以看到,上述的命令只执行了五次,每60s一次,五次过后不再执行操作。

既然命令都能够正常执行了,那还有什么触发操作是不能完成的。

Zabbix(二)--第一台主机监控及触发器的更多相关文章

  1. zabbix源码编译安装以及添加第一台host监控

    基础准备 硬件需求 数据库需求   软件需求 其他软件需求 安装 安装方式 source code 编译好的二进制包 rpm或者deb 源码编译安装部署zabbix以及附件 前提准备 最小化安装操作系 ...

  2. zabbix监控第一台主机系统

    注意zabbix客户端和zabbix服务端版本要一致,否则很容易出问题 实验环境,在第一台centos7(ip为192.168.245.128,以下简称主机1)上安装zabbix服务器端,在第二台ce ...

  3. Zabbix实战-简易教程(7)--监控第一台host

    一.安装 agent 1.1 Agent分布 1.2 Agent安装 基础模板安装方法: wget -qO- http://zbxinstall.168.com:18888/base/agent-in ...

  4. (4)zabbix监控第一台服务器

    2. zabbix监控服务器 创建主机,选择模板以及录入基本信息,过一分钟左右,就可以看到cpu.内存.硬盘等等使用情况.本节以图文为主.by the way, zabbix中文翻译很烂,config ...

  5. zabbix分布式部署和主机自动发现

    1.分布式部署原理 1.1Zabbix分布式部署的原理 传统的部署架构,是server直接监控所有的主机,全部主机的数据都是有server自己来采集和处理,server端的压力比较大,当监控主机数量很 ...

  6. zabbix 创建主机、主机群组、监控第一台服务器

    前面介绍了zabbix服务器和zabbix agent的安装配置,今天使用zabbix监控第一台服务器. 1. 安装zabbix agent 在被监控的服务器上安装zabbix agent . 参考& ...

  7. zabbix监控第一台服务器

    客户机的IP是192.168.0.80,主机名是wls12c 1. 安装客户端, 1.1 新建zabbix的用户 groupadd zabbix useradd -g zabbix zabbix 1. ...

  8. 03: zabbix API接口 对 主机、主机组、模板、应用集、监控项、触发器等增删改查

    目录:Django其他篇 01: 安装zabbix server 02:zabbix-agent安装配置 及 web界面管理 03: zabbix API接口 对 主机.主机组.模板.应用集.监控项. ...

  9. Zabbix学习之路(二)之添加主机监控及自定义item监控

    1.zabbix_get命令详解 安装zabbix-get命令 [root@linux-node1 ~]# yum install -y zabbix_get 参数说明: -s --host: 指定客 ...

随机推荐

  1. Android IOS WebRTC 音视频开发总结(七八)-- 为什么WebRTC端到端监控很关键?

    本文主要介绍WebRTC端到端监控(我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信I ...

  2. c++程序设计之编程思想

    代码块愈小,代码的功能就愈容易管理,代码的处理和移动就愈轻松. 任何一个傻瓜都能写出计算机可以理解的代码,唯有写出人类容易理解的代码,才是优秀的程序员. 绝大多数情况下,函数应该放在它所使用的数据的所 ...

  3. 关于web前端开发学习的顺序

    学习web前端开发该怎么学,按照什么顺序学习,这是很多新手朋友会遇到的问题.下面简单的说一下.由于在国内大学课程里面,几乎没有前端开发这门课程,无非就是一些网页设计之类的课程,但那些课程无论是老师讲还 ...

  4. mysql 导出csv

    SELECT order_id,product_name,qty FROM ordersINTO OUTFILE '/tmp/orders.csv'FIELDS TERMINATED BY ','EN ...

  5. Javascript数组函数库

    其实平时用的比较多的应该是push和pop,不过还是都记下来,以便后面使用. shift :删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4 ...

  6. UIImage类扩展返回一个带边框的圆形图片

    /** * 将image转换为圆型带边框的图片(最好写一个UIImage的类扩展) * * @param name 图片的名字 * @param borderWidth 外层边框的宽度 * @para ...

  7. Ngnix反向代理react-router配置问题解决方法

    项目以react router实现,用ngnix做反向代理的时候出现404找不到页面,有两种解决方法. 第一种  将<Route path="*" component={No ...

  8. 简单的VC++ ADO帮助类

    首先看头文件 #pragma once #import "c:\Program Files\Common Files\System\ado\msado15.dll" no_name ...

  9. 企业级监控平台开发之nagios二次开发(七)

    背景: A公司里有很多服务器(>3000台),每台服务器都有不同的用途,如DB Server.WEB Server.ESXI等,每个组使用其中的一批,每个组可能有多个服务器管理员.现在问题出来了 ...

  10. javascript照片墙效果

    <!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...