添加主机与主机组
- 进入web页面,在 配置-主机群组,创建主机群组
- 在 配置-主机,新建主机
- 在可见的名称中建议填写为类似 主机类型-主机名-IP或域名 的格式,如Web-Hyrule001-192.168.233.247
- 在 群组 中选择之前新建的群组
- agent代理程序的接口 填写agent端的IP和端口
- 创建完成后,如果创建成功,将可以看到下面出现了我们之前创建的主机,并且 状态 提示为绿色的 已启用 字样
配置监控项模板
- 在 配置-主机,点击自己需要配置的主机,如我们上文新建的主机Web-Hyrule001-192.168.233.247。
- 在出现的页面中,切换到模板标签页,
- 在 链接指示器 中选择Template OS Linux
- 点击添加
- 点击更新
- 可以看到在我们的主机后面的应用集、监控项、触发器等后面出现了数字,此时zabbix已经开始对该主机进行监控
添加监控项
在 配置-主机,点击自己需要配置的主机后面的 监控项,如Web-Hyrule001-192.168.233.247。
点击右上角的 创建监控项,修改一下内容,其余保持默认
- 填写表单
- 名称 为你希望这个监控项的名字
- 类型 为你希望使用的监控模式,如默认的 zabbix客户端
- 键值 为你希望使用的监控工具,如 vfs.file.cksum[file],"[file]"字段修改为文件位置。如 vfs.file.cksum['/Hyrule/zelda']
- 信息类型 为返回值的类型
- 更新间隔 为多长时间收集并更新一次数据,太短会对服务器产生负担,一般推荐为30s~60s或5min。改为0可以禁用
- 自定义时间间隔 可以自定义数据在哪一天进行收集,使用自定义需要禁用 更新间隔。如希望周一到周五每天六点到二十四点每隔一分钟更新一次数据,为 灵活模式 60s 1-5,6:00-24:00
- 历史数据保留时长 为收集到的数据的保留时间,超过这个时间的数据将会被清除
- 应用集 为监控的类型,用于对监控项分类,比如可以分类为filesystems
- 新的应用集 为当 应用集 中没有希望分的类的时候,可以自定义一个分类。
- 手动刷新
[root@lynk ~]# zabbix_get -s 目标主机的ip地址 -k 监控项键值
添加触发器
如果仅仅是添加了监控项,zabbix并不会在出现问题的时候提醒我们,我们需要添加一个触发器才能实现让zabbix提醒我们。
在 配置-主机,点击自己需要配置的主机后面的 触发器,如Web-Hyrule001-192.168.233.247。
- 点击右上角的 创建触发器,修改以下内容,其余保持默认
- 名称 为报警时的提示信息
- 严重性 为显示的颜色
-
表达式 为触发器的公式,点开add
- 监控项 为需要要对哪个监控项进行告警
- 功能 为使用的函数
- 重启zabbix服务
#重启服务端
[root@lynk ~]# pkill zabbix
[root@lynk ~]# zabbix_server
[root@lynk ~]# zabbix_agentd
#重启客户端
[root@Hyrule001 ~]# pkill zabbix
[root@Hyrule001 ~]# zabbix_agentd
自定义监控
进程监控
- 修改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
- 编写脚本
[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
- 在服务端手动刷新测试是否能检测到
[root@lynk ~]# zabbix_get -s 192.168.233.247 -k check_apache
添加监控项
添加触发器
重启服务
邮件告警
#关闭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' 接收邮件用的邮箱地址
- 在 管理-报警媒介类型,创建报警媒介类型
- 在 管理-用户,选择 报警媒介 标签页,添加
- 在 配置-动作,创建动作,
- 填写内容
- 选择 操作 标签页,添加 操作
- 选择 恢复操作 标签页,配置当问题被解决后发送的邮件,添加 操作
- 选择 更新操作 标签页,配置当问题发生更新后发送的邮件,该内容可以不进行配置。
- 填写内容
- 配置脚本
[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
- 测试触发告警