Zabbix(二)--第一台主机监控及触发器
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仅支持触发器间的依赖关系。比如一个网络设备下接许多主机,如果这个网络设备故障,会导致所有主机都视为异常而报警,但真实情况可能仅仅是这个父节点的问题。
触发器产生事件(触发器可以产生事件,也可以产生发现事件),产生了事件通常要做出响应,一般是在满足特定条件下通过各种途径(媒介)进行发送消息或者执行远程命令的操作。
触发器使用示例(假设场景:对内存的使用率监控,当到达一定阈值的时候触发)
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(二)--第一台主机监控及触发器的更多相关文章
- zabbix源码编译安装以及添加第一台host监控
基础准备 硬件需求 数据库需求 软件需求 其他软件需求 安装 安装方式 source code 编译好的二进制包 rpm或者deb 源码编译安装部署zabbix以及附件 前提准备 最小化安装操作系 ...
- zabbix监控第一台主机系统
注意zabbix客户端和zabbix服务端版本要一致,否则很容易出问题 实验环境,在第一台centos7(ip为192.168.245.128,以下简称主机1)上安装zabbix服务器端,在第二台ce ...
- Zabbix实战-简易教程(7)--监控第一台host
一.安装 agent 1.1 Agent分布 1.2 Agent安装 基础模板安装方法: wget -qO- http://zbxinstall.168.com:18888/base/agent-in ...
- (4)zabbix监控第一台服务器
2. zabbix监控服务器 创建主机,选择模板以及录入基本信息,过一分钟左右,就可以看到cpu.内存.硬盘等等使用情况.本节以图文为主.by the way, zabbix中文翻译很烂,config ...
- zabbix分布式部署和主机自动发现
1.分布式部署原理 1.1Zabbix分布式部署的原理 传统的部署架构,是server直接监控所有的主机,全部主机的数据都是有server自己来采集和处理,server端的压力比较大,当监控主机数量很 ...
- zabbix 创建主机、主机群组、监控第一台服务器
前面介绍了zabbix服务器和zabbix agent的安装配置,今天使用zabbix监控第一台服务器. 1. 安装zabbix agent 在被监控的服务器上安装zabbix agent . 参考& ...
- zabbix监控第一台服务器
客户机的IP是192.168.0.80,主机名是wls12c 1. 安装客户端, 1.1 新建zabbix的用户 groupadd zabbix useradd -g zabbix zabbix 1. ...
- 03: zabbix API接口 对 主机、主机组、模板、应用集、监控项、触发器等增删改查
目录:Django其他篇 01: 安装zabbix server 02:zabbix-agent安装配置 及 web界面管理 03: zabbix API接口 对 主机.主机组.模板.应用集.监控项. ...
- Zabbix学习之路(二)之添加主机监控及自定义item监控
1.zabbix_get命令详解 安装zabbix-get命令 [root@linux-node1 ~]# yum install -y zabbix_get 参数说明: -s --host: 指定客 ...
随机推荐
- C++读入XML文件
最近要做一个VRP的算法,测试集都是放在Xml文件中,而我的算法使用C++来写,所以需要用C++来读取Xml文件. 在百度上搜"C++读取Xml文件",可以出来很多博客,大多数是关 ...
- jquery中的ajax参数
jquery中将ajax封装成了函数,我们使用起来非常方便,jquery会自动根据内容选择post还是get方式提交数据,并且会自动编码,但是要想完全掌握jquery中的ajax,我们必须将它的各个参 ...
- Monkey基础
一.Monkey工具简介 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序 ...
- Django URL的命令空间
为避免在模板中使用URL的硬编码,可以使用{% url %}模板标签来解决 <li><a href="/task/{{ task.id }}/">{{ ta ...
- Web前端安全问题
1.XXS跨站脚本攻击(Cross Site Scripting) 1)通过<script> 举个例子:通过QQ群,或者通过群发垃圾邮件,来让其他人点击这个地址: book.com/sea ...
- CVPR 2007 Learning to detect a salient object
Dataset: MSRA A&B are introduced in this paper. A conditional Random Field based method was prop ...
- PHP文件缓存实现
有些时候,我们不希望使用redis等第三方缓存,使得系统依赖于其他服务.这时候,文件缓存会是一个不错的选择. 我们需要文件缓存实现哪些共更能: 功能实现:get.set.has.increment.d ...
- Nginx使用Expires增加浏览器缓存加速
Max-age是指我们的web中的文件被用户访问(请求)后的存活时间,是个相对的值,相对Request_time(请求时间). Expires它比max-age要麻烦点,Expires指定的时间分&q ...
- 并发编程中.net与java的一些对比
Java在并发编程中进行使用java.util.concurrent.atomic来处理一些轻量级变量 如AtomicInteger AtomicBoolean等 .Net中则使用Interlocke ...
- seaJS循环依赖的解决原理
seajs模块的六个状态. var STATUS = { 'FETCHING': 1, // The module file is fetching now. 模块正在下载中 'FETCHED': ...