说明
- 配置zabbix服务过程请看lamp架构以及源码安装zabbix服务
设置语言
- Zabbix web界面默认为英文界面,将语言修改为中文如图
- 点击确认,设置完毕,你会发现有许多乱码
- 解决这些乱码,打开windows控制面板,找到字体选项如图,将下面字体复制一份,并上传到/usr/local/apache/htdocs/zabbix/fonts中
- 然后在修改/usr/local/apache/htdocs/zabbix/include/defines.inc.php文件,修改为如图所示
- 这样中文网页乱码的现象解决
在WEB界面主机配置的步骤
- 创建主机群组
- 添加主机
- 创建应用集
- 添加监控项
- 给监控项添加触发器
- 设置报警类型
- 配置用户报警方式
- 添加动作
以监控/etc/passwd为例
创建主机群组
- 点击配置——主机群组——创建主机群组,页面如下
- 说明:
- 每个主机都需要在一个主机群组中,在创建主机时需要指定。
添加主机
- 点击配置——主机——创建主机,页面配置如下
创建应用集
- 配置——主机——应用集——创建应用集,页面如下
添加监控项
- 配置——主机——监控项——创建监控项页,页面配置如下
- 查看监控是否可以监控到数据,点击检测中——最新数据,页面配置如下
- 监控到的数据,点击查看
给监控项添加触发器
- 配置——主机——触发器——创建触发器,页面配置如下
- 需要验证触发器的正确性,在client端中,修改/etc/passwd文件,看能否触发,点击检测中——仪表盘,问题仪表盘中有闪烁项表示触发器生效,反之不生效
电子邮件报警
- 先要在服务端安装mailx;
- 重新启动postfix服务;
[root@server ~]# systemctl restart postfix
- 测试手动发送邮件;
- 添加报警媒介内容(可以选择默认的E-mail方式或者手动创建媒介类型);
- 默认的E-mail方式;
点击管理——报警媒介类型——选择Email,页面设置如下
注:手动添加方式与上图一样,若没有邮箱可用或者邮箱反垃圾系统会将邮件过滤掉可以使用linux系统自带邮箱,设置方法如下图
- 配置用户发送的警告方式
管理——用户——选择Admin(或者其他用户)——报警媒介,页面设置如下 - 配置触发器的动作
- 点击配置——动作——创建动作,页面如图一——点击操作,页面如下图二
- 修改/etc/passwd文件查看验证
脚本报警
- 安装mailx
- 重启postfix服务
- 测试手动发送邮件
- 添加告警媒介
- 点击配置——报警媒介类型——创建媒介类型,页面配置如下
- 配置用户的警告方式
点击更新 - 配置触发器的动作
点击配置——动作——创建动作,页面如图一——操作,页面如图二 - 在服务端上写发送告警信息脚本
- 在服务端创建存放脚本的目录并写如下图脚本,将目录以及脚本的属主和属组设置为zabbix,并给脚本执行权限
[root@server ~]# mkdir /usr/local/etc/scripts
[root@server scripts]# vim update_file.sh
[root@server scripts]# cd ..
[root@server etc]# chown -R zabbix.zabbix scripts
[root@server etc]# chmod +x scripts/update_file.sh
- 修改/usr/local/etc/zabbix_server.conf,修改如下
- 重启服务
[root@server ~]# pkill zabbix
[root@server ~]# zabbix_server
[root@server ~]# zabbix_agentd
[root@server ~]# ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:10050 *:*
LISTEN 0 128 *:10051 *:*
- 修改配置文件查看验证
通过zabbix用户发送邮件
- 在服务端安装mailx、postfix
- 重新启动postfix
- 修改/etc/postfix/main.cf配置文件
- 修改/etc/hosts文件,添加如下
127.0.0.1 zabbix.com
- 重启postfix服务
[root@server etc]# systemctl restart postfix
- 添加告警媒介
- 添加告警用户
- 添加动作
- 修改配置文件进行验证
以监控vsftpd服务为例
- 编写脚本/usr/local/etc/scripts/server.sh,给脚本执行权限并将属主和属组改为zabbix,脚本如下图
[root@client ~]# chown zabbix.zabbix /usr/local/etc/scripts/server.sh
[root@client ~]# chmod +x /usr/local/etc/scripts/server.sh
- 修改客户端/usr/local/etc/zabbix_agentd.conf配置文件
- 重新启动zabbix_agentd服务
[root@client ~]# pkill zabbix
[root@client ~]# zabbix_agentd
- 在服务器端手动验证脚本是否有问题
[root@server ~]# zabbix_get -s 192.168.92.129 -k 'check_vsftpd'
error
- 在web界面给主机添加监控项
- 给监控项添加触发器
- 添加报警媒介
- 添加用户报警媒介
- 添加动作
以监控vsftpd端口为例
- 添加监控项
或者 - 给监控项添加触发器
- 设置报警媒介
- 设置用户报警媒介
- 设置动作
以监控日志为例
注:监控日志用shell脚本难以实现记录之前已经看过的日志,为了解决这个问题,我们用python来监控
- 编写Python程序,可以点击查看
- 说明:第一个参数为日志文件名(必须有,相对路径、绝对路径均可)
第二个参数为“记录之前所看位置”的文件路径(可选项,若不设置则默认为/tmp/logseek文件。相对路径、绝对路径均可)
第三个参数为搜索关键字,默认为 Error
- 在/usr/local/etc/目录下创建存放脚本的目录scripts
[root@client ~]# mkdir /usr/local/etc/scripts
- 将脚本文件下载后上传到/usr/local/etc/scripts/目录下,将文件赋予执行权限并将属主和属组改为zabbix
[root@client ~]# chmod +x /usr/local/etc/scripts/log.py
[root@client ~]# chown -R zabbix.zabbix /usr/local/etc/scripts
- 修改客户端/usr/locla/etc/zabbix_agentd.conf文件
- 创建日志文件(有,则不需要创建),创建存放读取记录的目录并设置属主和属组为zabbix
[root@client ~]# cat >> /tmp/zabbix.log << EOF
> sklfs
> sfkfnkslf
> error
> errorksdm
> Error
> EOF
[root@client ~]# mkdir /read
[root@client ~]# chown zabbix.zabbix /read
- 重新启动服务
[root@client ~]# pkill zabbix
[root@client ~]# zabbix_agentd
- 在服务端手动执行脚本
[root@server tmp]# zabbix_get -s 192.168.92.129 -k "check_log"
1
- 添加主机监控项
- 给监控项添加触发器
- 添加报警媒介
- 添加用户报警类型
- 添加动作