zabbix组件:这些组件可以根据自身需求配置于不同的主机上。
zabbix-server
zabbix-database
zabbix-agent
zabbix-web
zabbix-proxy
监控系统的四大功能:数据采集,数据存储、报警、数据可视化
zabbix的完整监控配置流程大体由如下步骤组成:
Host group------>Hosts------>Applications----> Items ------>Triggers---->Events---->Actions ----->User group ---->Users ---->Medias
添加主机到zabbix server:
1、discovery:在定义号被监控的主机后可以不用自己手动添加,而是通过discovery添加,这时zabbix serevr主动去发现监控主机
2、auto_registrion:被监控主机自动向zabbix server注册请求被监控。
####创建主机组:
在Confguration/Host groups/ 点击 Create HostGroup。
写入组名,可以选择是否将模板应用于主机组,创建完成后点击Add
然后就可以看到我们创建的主机组了,这里我创建的模板为空,主机为空
####创建主机:Configuration/Hosts下点击Create Hosts
Host name:标记的是主机的地址,如果写的是域名或主机名的化需要用DNS进行解析。并且此处尽量于agent配置文件中定义的Hostname保持一致,否则在某些情况下sever端可能无法识别被监控主机。
####如何删除一个主机:
选择该主机,点击Delect
添加一个主机,在将主机加入主机组时,如果Other groups下有我们需要的主机组,选择该主机组,点击左箭头,就将ok了,向右箭头表示移除该主机组。
在Agent interfaces处,如果我们填入的是ip,则在Connect to处选择IP
如果选用snmp这种方式来监控,那就得确保你的被监控端支持snmp这种机制,并且监听了161端口。
然后在被监控端安装net-snmp包
[root@serevr8 ~]# yum install net-snmp -y
开启snmpd服务。
[root@serevr8 ~]# systemctl start snmpd
点击最下方的Add提交。
点击Name(例如这里是server-8)还可以继续对其配置
例如我们想给该主机添加模板,点击server-8,选择Templates
选择Select,然后选择我们想要添加的模板
选择Add
然后就可以在Linked templates上看到我们添加的模板了
所有模板添加完成后点击Update提交就OK了
####查看可用的key
MariaDB [(none)]> use zabbix;
MariaDB [zabbix]> select key_,type from items\G;
使用zabbix-get获取key值
[root@server7 ~]# zabbix_get -h #查看帮助
[root@server7 ~]# zabbix_get -s 172.25.44.8 -k "system.cpu.load[percpu,avg1]" #查看该key所对应的值
每一个key所对应的值叫做item,多个item可以归类为一个由“application“定义的逻辑组
####创建一个key
例如我们要对server-8这台主机添加自定义key
我们先删除这台主机上的模板,Unlink表示取消关联,Unlink and clear表示取消关联并清除之前收集到的数据。
删除模板后然后添加item,选择item
选择Create item
添加items,编辑完信息点击Add即可
已经添加了
####自定义Graph :
Configuration/Hosts
Percentile line (left):在纵轴的80%处做一条水平线。在Items处选择Add添加item,选择Preview可以进行预览。完成后选择Add即可。
然后就可以在Monitoring/Graphs下看到图了
####定义trigger:{<server>:<key>.<function>(<parameter>)}<operator><constant>
server:主机名称;
key:主机上关系的相应监控项的key;
function:评估采集到的数据是否在合理范围内 时所使用的函数,其评估过程可以根据采用的数据、当前时间及其它因素进行。
parameter:函数参数
名称中可以使用宏(变量):
{HOST.HOST},{HOST.NAME}…
举例:{www.wtt.com:system.cpu.load[all,avg1].last(0)}>3
表示www.wtt.com上所有CPU的过去一分钟内的平均负载的最后一次取值大于3时所触发状态变换。
触发器等级用来标记事件的严重性
zabbix支持如下所表示的等级
SEVERITY | DEFINITION | COLOUR |
Not classified #无类别 | unknown severity | grey |
Information | For information purpose | Light green |
Warning | Be warnd | Yellow |
Average | Average problem | Orange |
High | Something important has happend | Red |
Disaster | Disaster. Financial,etc | Bright red |
Trigger存在依赖关系,A出现故障,依赖A的所有主机通常也是有故障的。这样在发送警报时只需发送A故障的警报,不需要把所有的主机的故障警报都发送。
Dependencies定义该触发器依赖的Trigger。
在Expression处可以点Add添加一个item为其创建触发器
我这里将50调整成了71000
然后可以在Graps上看到橙红色的线,表示触发值
####定义报警方式:
Administration/Media types
点击Email选择以邮件的方式发送报警
选择网本机发邮件
也可以自定义报警:
Create media type
选择Administration/Users,选择Create user
在Media下,点击add,然后点击Add
然后用户就被添加进来了
这样报警可以给zabbix user1,zabbix user1关联的帐号是root@localhost,这样root@localhost就可以收到信息了。
####接下来创建操作Action
Action有两类:
Send message 和 remote command
其实Action可以分为以下部分
Action
message
condiction
event:
trigger
discovery:Service down,Service up,Host up,Host down ,Service Discovered,Service Lost,Host Discovered,Host Lost
operation
send message
Media type:Email ,SMS,,Jabber,Script,EZ Texting
#Script:Alert Script .所有用于警告的脚本都应放置于特定目录下:AlertScriptPath=/usr/lib/zabbix/alertscript
在zabbix_server.conf中指明。
脚本中可用$1,$2,$3来调用action web配置页面中的邮件收件人地址,Default Subject,Default Message。
新放入的脚本只有在重启zabbix后才能被启用
Remote command(给zabbix用户定义速度哦规则:zabbix ALL=(ALL) ALL)
远程命令不至持Active(主动模式)的agent。也不支持代理模式哦!,命令长度不超过255个字符,可以使用宏,zabbix server仅执行命令,不检测命令是否执行成功
前提:zabbix-agent要配置成支持远程执行命令:在配置文件中将EnableRemoteCommands=1
注意:
(1)命令需要填写成 sudo systemctl start httpd 格式。
(2)需要注释掉 Defaults requiretty
在web页面的Administration/Media types下点击Create media type。
然后在Type处选择Script
在此处填入信息
在Administration/Users下更改用户接受邮件的方式。
####创建Action
Configuration/Actions,点击Create action
####Remote Command
agent端
visudo
# Refuse to run if unable to disable echo on the tty.
# Defaults requiretty
创建 application(http service)
创建item
创建Trigger
创建Graph
创建Action
然后手动停掉agent端的httpd服务之后会自动重启