先抛开zabbix监控的其他架构不谈,从最简单的server-agent模式说起,即监控主机-被监控主机(主动模式、被动模式主要是影响数据的采集方式和服务端的负载压力),首先是zabbix最重要的五个组成部分:Item、Trigger、Action、Media、User(其实应该还有个Event,不过这个表现的不直观),翻译一下就是监控元素、触发器、动作、报警介质、用户
1.item
Items are the ones that gather data from a host.
意思就是监控采集的项目
1.1先添加一个需要监控的主机
1.2 设置item监控项
2.Trigger
顾名思义触发器,也就是将采集来的
item
值进行一定的判断,需要注意的点有两个,一个是serverity
,即报警等级,还有一个是判断的逻辑,判断逻辑分单机判断和触发依赖
3.Action
action就是server对事件响应(Event)需要做相应的措施了,关键点是四个,一是如何触发action,而是action具体使用什么方式,三是发送的内容,四是动作的对象。action支持的Event有四种:用大白话讲就是Trigger触发时、discover rule文件生效时、自动发现新服务器时以及server本身出问题时。最主要的就是Trigger触发来产生action,在创建action时会有"condition"这个选项来设置触发器,而action的方式是由media来决定,media有五种,常见的是mail、sms、script这三种,邮件的方式只需要在创建一个media方式选邮件,然后填写smtp服务器地址即可,邮件的内容是在action选项卡里面设置,支持普通的字符串以及表达式比如{TRIGGER.NAME}这种,这个值就是对应触发的Trigger的名字
3.1 报警媒介
3.1.1 使用本地虚拟邮箱
- yum安装mailx
yum -y install mailx
- 设置邮箱白名单
白名单的邮箱地址可以在服务端/var/spool/mail/zabbix
查找
Return-Path: <zabbix@localhost.localdomain>
Received: from localhost (localhost [127.0.0.1])
by cl130.localdomain (Postfix) with SMTP id 62C0B1098C
for <3558689766@qq.com>; Wed, 22 May 2019 23:20:29 -0400 (EDT)
From: <zabbix@localhost.localdomain>
To: <3558689766@qq.com>
Date: Wed, 22 May 2019 23:20:29 -0400
Subject: Problem: /etc/passwd has been changed on 192.168.163.129
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64
Message-Id: <20190523032029.62C0B1098C@cl130.localdomain>
- 添加告警媒介
- 点击配置——报警媒介类型——创建媒介类型,页面配置如下
- 设置好了,就可以触发一下看效果了
3.1.2 web配置第三方邮箱
-
添加告警媒介
- 点击配置——报警媒介类型——创建媒介类型,页面配置如下
- 点击配置——报警媒介类型——创建媒介类型,页面配置如下
-
设置好了,就可以触发一下看效果了
3.1.3 脚本告警
-
yum安装mailx
-
修改
/etc/mail.rc
//添加
set from=发件箱
set smtp=smtp.qq.com //我用的是qq,可以根据使用邮箱的不同来填不同内容
set smtp-auth-user=发件箱
set smtp-auth-password=发件箱授权码
set smtp-auth=login
-
重启postfix服务
-
在服务端上写发送告警信息脚本
[root@cl130 alertscripts]# vim /usr/local/share/zabbix/alertscripts/sendmail.sh
#!/bin/bash
subject=$(echo $2 |tr "
" "
")
message=$(echo $3 |tr "
" "
")
echo "$message" | /usr/bin/mail -s "$subject" $1 &>/tmp/sendmail.log
[root@cl130 alertscripts]# cd ..
[root@cl130 alertscripts]# chown -R zabbix.zabbix alertscripts
[root@cl130 alertscripts]# chmod +x scripts/sendmail.sh
//重启服务
[root@cl130 ~]# pkill zabbix
[root@cl130 ~]# zabbix_server
[root@cl130 ~]# zabbix_agentd
[root@cl130 ~]# ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:10050 *:*
LISTEN 0 128 *:10051
// 测试脚本
[root@cl130 alertscripts]# bash sendmail.sh 3558689766@qq.com test hello world
- 添加告警媒介
- 点击配置——报警媒介类型——创建媒介类型,页面配置如下
- 触发告警,测试效果