菜鸟学Linux 第108篇笔记 zabbix 配置



内容总览

回顾

创建触发器(trigger)

action

User parameters (用户自定义参数)

Trigger&action 回顾

discovery

zabbix-proxy

配置注意地方总结





回顾

zabbix 

数据采集--> 数据存储--> 数据展示和分析--> 报警


数据采集

SNMP

agent

ICMP/SSH/IPMI

web


数据存储

cacti: rrd

nagios: 默认不保存 (mysql)

zabbix: mysql/pgsql/oracle


数据展示(web)

java

php

移动app


报警

mail(smtp)

Chat Message

SMS



zabbix数据采集

zabbix agent(被动)

zabbix agent(active主动)

SNMP

SSH


zabbix数据展示

php, web gui


zabbix报警

报警升级


如何确定zabbix的监控对象

手动添加

自动发现


hosts, host gruop

item, application

key

graph, screen

trigger, event(discovery)

action(notification, operation, condition)


zabbix仅支持在触发器上定义依赖关系



创建触发器(trigger)

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



event

trigger event

discovery event (8类)

Service Up|Down

Host Up|Down

Service Discovered|Lost

Host Discovered|Lost


Media type

E-mail

SMS

Jabber

自定义的通知脚本




Trigger

用来给所监听的某个主机的某个item所产生的值做一个界限或叫预值,当其所监听的item达到

所给的预值时,会产生事件(event)


action

是用来监听某个主机、主机组、触发器、模板等所生产的事件,当事件发生时再给其做相应的匹配

动作,如发邮件等,


templete

是一个类似于已经配置好的items,trigger,等配置,新加入的监控机只需要套用该模板即可,而

不需要再进行手动的配置其items,trigger等。用来简化用户操作的组件


Macros

宏 类似定义变量,并给变量赋值

作用 当多个地方设定的数值为相同时,可以使用宏,当其值修改时,而不需要手动的去修改每

    一个地方值,只需要修改宏变量的数值即可, 简化用户操作

宏定义 分为全局 和局部的  全局 administration --> General --> Macros




User parameters (用户自定义参数)

在zabbix-agent端使用自定义的key 并且为key指定要使用的命令或脚本,而服务端只需要指定

相应的key即可实现使用自己定义的key或者说是命令所执行的结果传送到服务端,供其监控。


自定义key格式和定义的路径

UserParameter=<key>,[parameters],<command>


路径

/etc/zabbix_agentd.conf

或在此文件中定义include选项并建立相应的目录用来存放自定义的UserParameter



自定义参数定义zabbix-server监控其内存状态

agent端

# vim /etc/zabbix/zabbix_agentd.conf

在最后添加如下一行

UserParameter=Mem[*],/bin/cat /proc/meminfo | awk '/^$1/{print $$2}'


(注意这里后边的$$2 是因为前边使用了位置变量,所以为了区分开所使用的)


服务器端测试自定义参数是否可用

# zabbix_get -s 192.168.11.181 -k Mem[MemFree]

# zabbix_get -s 192.168.11.181 -k Mem[MemTotal]

# zabbix_get -s 192.168.11.181 -k Mem[Cache]


zabbix-web里如何添加此监控item(注意此处的item不可能和之前似的可以选择)

需要手动定义 添加item自行输入即可如:

Mem[MemFree] 或者其它的像MemTotal等 都是/proc/meminfo里的第一个参数


由此便可以自行使用自定义参数了,需要注意的是,自定义参数只能给服务器端传递一个值

不可以是多值,可以引用脚本,但也一样只能传递一个值给服务器端 切记切记 呵呵




Trigger&action 回顾

item: 数据项() --> data store --> Web GUI

key: server, agent

用户参数: UserParameter=<key[*]>,<command>

$1, $2

trigger: 定义某个item的阀值,key

动作:condition, operation (remote command, send message)



定义一次完整的监控:添加主机(主机组) --> 添加item(内置的简单图形) --> 

trigger (event: OK --> Problem, Recovery) --> 

action (发通知(Macro),condition,operation(step))


media (Email, External scripts, Jabber, SMS)




discovery 发现有个前提

agent

agentless

SNMP


zabbix的网络发现功能可基于如下信息

IP range

Availability of external services (FTP, SSH, WEB, POP3, IMAP, TCP, etc)

Information received from Zabbix agent

Information received from SNMP agent


网络发现阶段

Discovery --> action


创建自动发现步骤

1. 创建templete

2. 创建discovery

3. 创建action discovery

4. 创建action registration (当主机下线再上线时自动注册)



agent自动注册




zabbix agent

1.安装相应的zabbix-agent软件包

2.配置时hostname要和zabbix-web里的Administration --> DM配置的proxy name相同

3.要使用proxy来实现监控的客户端其配置文件里

Server 要指向proxy的IP地址

ServerActive 自动发现功能也要指向Proxy IP





配置注意地方总结

1. 定义discovery action时发现的客户端condition一定要指定其状态up or discovery

2. 定义discovery action移除客户端也要定义其condition --> Discovery status down or lost

3. proxy所定义的数据库生产环境中不要和zabbix-server数据库在同一个服务器上