zabbix监控配置与邮件告警

时间:2021-05-27 08:49:21

添加主机与主机组

  1. 进入web页面,在 配置-主机群组创建主机群组
  2. 配置-主机新建主机
    zabbix监控配置与邮件告警
    • 在可见的名称中建议填写为类似 主机类型-主机名-IP或域名 的格式,如Web-Hyrule001-192.168.233.247
    • 在 群组 中选择之前新建的群组
    • agent代理程序的接口 填写agent端的IP和端口
  3. 创建完成后,如果创建成功,将可以看到下面出现了我们之前创建的主机,并且 状态 提示为绿色的 已启用 字样

配置监控项模板

  1. 配置-主机,点击自己需要配置的主机,如我们上文新建的主机Web-Hyrule001-192.168.233.247。
  2. 在出现的页面中,切换到模板标签页,
    zabbix监控配置与邮件告警
    1. 链接指示器 中选择Template OS Linux
    2. 点击添加
    3. 点击更新
  3. 可以看到在我们的主机后面的应用集、监控项、触发器等后面出现了数字,此时zabbix已经开始对该主机进行监控

添加监控项

  1. 配置-主机,点击自己需要配置的主机后面的 监控项,如Web-Hyrule001-192.168.233.247。

  2. 点击右上角的 创建监控项,修改一下内容,其余保持默认

  3. 填写表单
    zabbix监控配置与邮件告警
    • 名称 为你希望这个监控项的名字
    • 类型 为你希望使用的监控模式,如默认的 zabbix客户端
    • 键值 为你希望使用的监控工具,如 vfs.file.cksum[file],"[file]"字段修改为文件位置。如 vfs.file.cksum['/Hyrule/zelda']
    • 信息类型 为返回值的类型
    • 更新间隔 为多长时间收集并更新一次数据,太短会对服务器产生负担,一般推荐为30s~60s或5min。改为0可以禁用
    • 自定义时间间隔 可以自定义数据在哪一天进行收集,使用自定义需要禁用 更新间隔。如希望周一到周五每天六点到二十四点每隔一分钟更新一次数据,为 灵活模式 60s 1-5,6:00-24:00
    • 历史数据保留时长 为收集到的数据的保留时间,超过这个时间的数据将会被清除
    • 应用集 为监控的类型,用于对监控项分类,比如可以分类为filesystems
    • 新的应用集 为当 应用集 中没有希望分的类的时候,可以自定义一个分类。
  4. 手动刷新
[root@lynk ~]# zabbix_get -s 目标主机的ip地址 -k 监控项键值

添加触发器

如果仅仅是添加了监控项,zabbix并不会在出现问题的时候提醒我们,我们需要添加一个触发器才能实现让zabbix提醒我们。

  1. 配置-主机,点击自己需要配置的主机后面的 触发器,如Web-Hyrule001-192.168.233.247。

  2. 点击右上角的 创建触发器,修改以下内容,其余保持默认
    zabbix监控配置与邮件告警
    • 名称 为报警时的提示信息
    • 严重性 为显示的颜色
    • 表达式 为触发器的公式,点开add
      • 监控项 为需要要对哪个监控项进行告警
      • 功能 为使用的函数
  3. 重启zabbix服务
#重启服务端
[root@lynk ~]# pkill zabbix
[root@lynk ~]# zabbix_server
[root@lynk ~]# zabbix_agentd
#重启客户端
[root@Hyrule001 ~]# pkill zabbix
[root@Hyrule001 ~]# zabbix_agentd

自定义监控

进程监控

  1. 修改agent端的配置文件
[root@localhost Hyrule]# vim /usr/local/etc/zabbix_agentd.conf
#修改UnsafeUserParameters=1
#在最后添加UserParameter=<key>,<shell command>,如
UserParameter=check_apache,/scripts/check_process.sh httpd

#重启客户端
[root@Hyrule001 ~]# pkill zabbix
[root@Hyrule001 ~]# zabbix_agentd
  1. 编写脚本
[root@Hyrule001 Hyrule]# mkdir /scripts
[root@Hyrule001 Hyrule]# vim /scripts/check_process.sh
[root@Hyrule001 Hyrule]# chown zabbix.zabbix /scripts/check_process.sh 
[root@Hyrule001 Hyrule]# chmod 777 /scripts/check_process.sh 

脚本示例

#!/bin/bash
a=$(ps -ef|egrep -v "grep|$0"|grep $1|wc -l)
if [ $a -eq 0 ];then
    echo 1
else
    echo 0
fi
  1. 在服务端手动刷新测试是否能检测到
[root@lynk ~]# zabbix_get -s 192.168.233.247 -k check_apache
  1. 添加监控项
    zabbix监控配置与邮件告警

  2. 添加触发器
    zabbix监控配置与邮件告警

  3. 重启服务

邮件告警

#关闭postfix服务
[root@lynk ~]# systemctl stop postfix
[root@lynk ~]# systemctl disable postfix
#安装mailx
[root@lynk ~]# yum install -y mailx
#配置mailx
[root@lynk ~]# cat >> /etc/mail.rc <<EOF
set from=发送方邮箱地址,如youxiang@xxx.com
set smtp=smtp服务器地址,如smtp.youjian.com
set smtp-auth-user=登录邮箱用的用户名
set smtp-auth-password=登录邮箱用的密码或授权码
set smtp-auth=login
EOF

[root@lynk ~]# echo 'zabbix mail test'|mail -s 'zabbix' 接收邮件用的邮箱地址
  1. 管理-报警媒介类型创建报警媒介类型
    zabbix监控配置与邮件告警
  2. 管理-用户,选择 报警媒介 标签页,添加
    zabbix监控配置与邮件告警
  3. 配置-动作创建动作
    1. 填写内容
      zabbix监控配置与邮件告警
    2. 选择 操作 标签页,添加 操作
      zabbix监控配置与邮件告警
    3. 选择 恢复操作 标签页,配置当问题被解决后发送的邮件,添加 操作
      zabbix监控配置与邮件告警
    4. 选择 更新操作 标签页,配置当问题发生更新后发送的邮件,该内容可以不进行配置。
  4. 配置脚本
[root@lynk ~]# mkdir /usr/local/etc/alertscripts
[root@lynk ~]# vim /usr/local/etc/zabbix_server.conf
#搜索AlertScriptsPath,按如下内容添加
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lcoal/etc/alertscripts
#编写之前在报警媒介类型中设置的mail.sh
[root@lynk ~]# vim /usr/local/etc/alertscripts/mail.sh
#!/bin/bash
message=$3
subject=$2
echo "$message"|mail -s "$subject" $1
#给脚本运行权限
[root@lynk ~]# chmod +x /usr/local/etc/alertscripts/mail.sh
[root@lynk ~]# chown -R zabbix.zabbix /usr/local/etc/alertscripts
#重启zabbix
[root@lynk ~]# pkill zabbix
[root@lynk ~]# zabbix_server
[root@lynk ~]# zabbix_agentd
  1. 测试触发告警