5、zabbix使用进阶(01)

详细描述user parameters、定义主机发现规则实现自动发现、如何定义和实现自动注册方式

zabbix常用术语

1、主机(host):要监控的网络设备,可有IP或DNS名称指定;

2、主机组(host group):主机的逻辑容器,可以包含主机和模板,但同一个组内的主机和模板不能互相连接;主机组通常在给用户或用户组指派监控权限时使用;

3、监控项(item):一个特定监控指标的相关数据,这些数据来自于被监控对象;item是zabbix进行数据收集的核心,没有item,将没有数据;相对某监控对象来说,                       每个item都有"key"进行标识

4、触发器(trigger):一个表达式,用于评估某监控对象的某特定item内所接收到的数据是否在合理范围内,即阈值;接收到的数据量大于阈值时,

                  触发器状态将从"OK"转变为"problem",当数据量再次回归到合理范围时,其状态将从"problem"转换回"OK";

5、事件(event):即发生的一个值得关注的事情,例如触发器的状态转变,新的agent或重新上线的agent的自动注册等;

6、动作(action):指对于特定事件事先定义的处理方法,通过包含操作(如发送通知)和条件(何时执行操作);

7、报警升级(escalation):发送报警或执行远程命令的自定义方案,如每隔5分钟发送一次警报,共发送5次等;

8、媒介(media):发送通知的手段或通道,如Email、jabber或SMS等;

9、通知(notification):通过选定的媒介向用户发送的有关事件的信息;

10、远程命令(remote command):预定义的命令,可在被监控主机处于某特定条件下时自动执行;

11、模板(template):用于快速定义被监控主机的预设条目集合,通常包含了item、trigger、graph、screen、application

                  以及low-level discovery rule(低级别发现规则,相当消耗资源,一般不用);模板可以直接连接至单个主机;

12、应用(application):一组item的集合;

13、web场景(web scennario):用于检测web站点可用性一个或多个HTTP请求;

14、前端(frontend):zabbix的web接口

zabbix启动的进程

  

Item key:

命名要求:只能使用字母、数字、下划线、点号、连接符

接受参数:system.cpu.load[<cpu>,<mode>], net.if.inbound[if,<mode>]

注意:每一个key背后都应该有一个命令或脚本来负责实现数据收集;此命令(system.cppu.load)或脚本可调用传递给key的参数(if,<mode>),调用方式为$1,$2,...

在zabbix中定义item时调用某key,还需要额外定义数据采集频率、历史数据的保存时长等信息;

Trigger:

触发器表达式:{<Server>:<key>.<function>(<parameter>)}<operator><constrant>    //被监控服务器上的key所对应的数据,被函数表达式所调用的参数处理之后的结果,与某个所期望的数值作比较。 

          被监控服务器         调用函数      参数         操作符   指定数据范围值

{192.168.128.132:net.if.in[ens33,bytes].last(#1)}>1200   

//192.168.128.132是被监控的服务器; net.if.in[ens33,bytes]是key; last(#1)是函数,表示取最后一次的数据; >是操作符; 1200是所指定的数值,也可以定义为宏

<function>:评估采集到的数据是否在合理范围内时所使用的函数;其评估过程可以根据采集到的数据、当前时间

count、change、date、dayofweek、dayofmonth、delta、diff、iregexp、regexp、last、max、min、nodata、now、sum、strlen

avg:可以采样做平均值;

regexp:检查最后一次采样的数据是否能够被指定的模式所匹配,1表示匹配,0表示不匹配; 

now:返回自Unix元年至此刻经历的秒数;

prev:倒数第二个采样值; 

str:从最后一次的采样中查找此处指定的字串;

<operator>:操作符

>、<、=、#(不等于)

/、*、-、+

&(与)、|(或)

触发器间有依赖关系:

Action

  • message
  • condition 由event触发,包括:trigger、discovery、auto_registration、lid
  • discovery包括:service up、service down、host up、host down、service discovered、service lost、service discovered、host lost
  • operation:
  • send message:
  • Media type:Email、SMS、Jabber、Script、EZ Texting

Script:Alert Script 必须放到特定目录中:AlertScriptsPath=/usr/lib/zabbix/alertscript

zabbix_server.conf配置文件中的参数

 

脚本中可使用$1,$2,$3来调用 action 中的, $1表示邮件的收件人,$2表示Default Subject,$3表示Default Message;

注意:新放入/usr/lib/zabbix/alertscript目录的脚本,只有重启zabbix-server方能被使用

  • User
  • remote command:

(1)zabbix server主机远程被监控主机(zabbix agent),那么命令在被监控主机上运行,这个命令就是由zabbix agent进程生成的,运行zabbix agent进程的用户是zabbix用户,所以这里指定的远程命令zabbix                                          用户不一定有权限执行,所以要给zabbix定义sudo规则,在每一个agent主机上都应该添加zabbix用户在任意主机上以任意用户的身份运行任意命令。 zabbix ALL=(ALL) ALL

(2)不支持active模式的agent;

(3)不支持带来模式

(4)命令长度不得超过255个字符

(5)可以使用宏;

(6)zabbix-server仅执行命令,而不关心命令是否执行成功

使用脚本报警:http://www.ywnds.com/?p=6574    http://www.51niux.com/?id=153

前提:zabbix-agent要配置为支持执行远程命令;  https://www.zabbix.com/documentation/3.4/zh/manual/config/notifications/action/operation/remote_command

注意:

(1):如果用到以其他用户身份执行命令的话,那么命令本身要以sudo方式运行;

sudo /usr/sbin/apachectl restart

(2)在各agent上的sudoers文件,要注释如下行:

Defaults requiretty

示例:监控node2主机上即zabbix agent端的httpd服务器是否启动,如果没有启动server端则执行远程命令重启agent端的httpd服务

# vim /etc/zabbix/zabbix_agentd.conf 

EnableRemoteCommands=1

LogRemoteCommands=1    //是否记录远程命令执行的日志,1表示记录

# systemctl restart zabbix-agent

每一个item key的官方文档:https://www.zabbix.com/documentation/4.0/manual/config/items/itemtypes/zabbix_agent

想要让server端远程重启agent端的httpd服务,那么server端首先要监控httpd服务。可以基于最后一次采样的值判断httpd服务的状态是否不正常,不正常则执行远程命令。

首先定义一个applications,定义http service

定义items,这里监听的是httpd服务的80端口,即80端口存在证明httpd服务是正常,不存在就证明http服务出现了问题

定义一个graph,查看效果

此时启动与停止httpd服务,查看效果图

定义triger

定义actions

在agent端执行# systemctl stop httpd,停掉httpd服务

 

转载于:https://www.cnblogs.com/hanshanxiaoheshang/p/10318320.html

Zabbix 是一个企业级分布式开源监控解决方案。  Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。Zabbix 基于存储的数据提供出色的报表和数据可视化功能。  Zabbix 支持主动轮询(polling)和被动捕获(trapping)。Zabbix所有的报表、统计数据和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您可以在任何地方访问您监控的网络状态和服务器健康状况。适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于有少量服务器的小型组织,还是拥有大量服务器的大企业而言,同样适用。  Zabbix 是免费的。Zabbix 是根据 GPL 通用公共许可证的第二版编写和发布的。这意味着产品源代码是免费发布的,可供公共使用。 本课程主要讲解以下方面: 1.  网络设备的监控,如 Dell R420、Juniper ssg5等。2.  Linux 和 Windows 服务器的监控。3.  应用服务的监控,如 httpd、nginx等。4.  Zabbix 代理的配置与使用以及 Zabbix 的多种告警方式。 注意:该课程,需要有一定的 zabbix 和 Linux 基础,建议您先把>和>看完,再看此套课程,这个是在它的基础上进行讲解的。                                                                   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值