随着业务的复杂和服务器数量的增多,需要对服务器使用情况进行信息监控,前同事叶云轩同学调研并使用的Zabbix,于是呼决定在前人的肩膀上砥砺前行!
概述
Zabbix是保证服务器系统的安全运营,主要功能: CPU负荷 内存使用 磁盘使用 网络状况 端口监视 日志监视。
Zabbix是一种企业级开源分布式监控解决方案,可以监控网络的众多参数信息以及服务器的健康状况和完整性的软件
Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于电子邮件的警报,这可以对服务器问题作出快速反应
Zabbix存储的数据提供出色的报告和数据可视化功能。Zabbix支持轮询和捕获。Zabbix报告和统计信息、配置参数、网络状态以及服务器运行状况都可通过Web的前端访问
Zabbix是免费的
名词解释
名称 | 阐述 |
---|---|
主机 | 要监视的网络设备,具有IP/DNS |
主机群组 | 主机的逻辑分组,它可能包含主机和模板。当为不同用户组的主机分配访问权限时,使用主机组。 |
监控项 | 要从主机接收的特定数据 |
触发器 | 定义问题阈值的逻辑表达式,用于“评估” 监控项中接收到的数据 (Problem/OK)。 |
动作 | 预先定义的对事件作出反应的行为,由操作(例如发送通知)和条件(当操作执行时)组成 |
模板 | 应用于一个或多个主机的一组实体。作用是加速在主机上部署监控任务(批量更改应用于监视任务)。模板直接链接到各个主机。 |
应用 | 逻辑组中的一组监控项 |
1.zabbix安装
zabbix叶云轩同学已经在服务器上安装的,避免造轮子,直接给出zabbix安装过程 和 官方文档,下图是登录后页面!
2.邮件报警
服务器出现异常,需要通知相关人员处理,目前使用的是邮件通知
(1) 服务器配置
① 安装sendmail或者postfix(安装一种即可)
yum install sendmail #安装
service sendmail start #启动
chkconfig sendmail on #设置开机启动
或者
yum install postfix #安装
service postfix start #启动
chkconfig postfix on #设置开机启动
② 安装邮件发送工具mailx
yum install mailx #安装
③ 设置发送邮件的email
vim /etc/mail.rc //内容如下
set from=xxxserver@163.com # 代理邮箱(发邮件邮箱)
set smtp=smtp.163.com:25
set smtp-auth-user=xxxserver@163.com # 认证用户
set smtp-auth-password=xxx0213 # 认证密码(邮箱授权码)
set smtp-auth=login
④ 发送测试邮件
echo "邮件信息" | mail -s "邮件主题" xxx@163.com # 设置接收邮箱
邮件发送过程异常:
异常:smtp-server: 550 User has no permission
解决:发送邮件时相当于自定义客户端根据用户名和密码进行登录,然后使用SMTP服务发送邮件。但新注册的163邮件默认是不开启客户端授权验证的,因此登录总是会被拒绝,验证没有权限。解决办法是网页登录163邮箱,设置——>客户端授权密码,选择开启即可
(2) 创建媒介类型
点击Email进入页面:
(3) 指定用户媒介
点击 Admin进入页面:
点击添加进入页面:
(4) 创建动作
官网操作指南
配置发生异常邮件模板:
配置问题修复邮件模板:
配置信息:
主 机 IP:{HOST.CONN}
告警项目:{TRIGGER.KEY1}
告警信息: {TRIGGER.NAME}
告警状态: {TRIGGER.STATUS}
告警等级:{TRIGGER.SEVERITY}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
告警时间:{EVENT.DATE} {EVENT.TIME}
Item values:
{ITEM.NAME1} ({HOST.NAME1}:{ITEM.KEY1}): {ITEM.VALUE1}
Original event ID: {EVENT.ID}
(5) 监控测试
目的:修改触发器可用内存报警条件
操作:配置—>模板—>Template OS Linux选项—>选择触发器 (已监控某台主机)
点击上图名称进入页面:
查看报表日志:
警报发送过程异常:
异常:Support for SMTP authentication was not compiled in
解决:出现这种问题是因为服务器上的libcurl版本太低所致。在zabbix的官方说明文档上要求:zabbix3.x要想使用SMTP,那么需要7.20.0及以上版本的curl并且zabbix服务端在编译安装时需要添加–with-libcurl模块,官方原文如下:
To make SMTP authentication options available, Zabbix server should be compiled with the –with-libcurl compilation option with cURL 7.20.0 or higher.
当前curl版本:
升级curl版本:
rpm -Uvh http://www.city-fan.org/ftp/contrib/yum-repo/rhel6/x86_64/city-fan.org-release-2-1.rhel6.noarch.rpm
yum install libcurl
重新编译安装zabbix3
cd /usr/local/src/zabbix-3.2.7
./configure --prefix=/usr/local --sysconfdir=/etc/zabbix --enable-server --enable-agent --with-ssh2 --with-openssl --with-mysql --with-net-snmp --with-libcurl --with-libxml2
make && make install
重新启动zabbix即可
3.监控多台服务器配置
(1) 配置主机信息
添加结果:配置—>主机;发现列表添加一条记录!但是此时可用性是红色的!异常并收到 unreachable 异常邮件!
异常信息:Get value from agent failed: cannot connect to [[192.168.1.15]:10050]: [111]
原因:zabbix agent部署在监视目标上,以主动监视本地资源和应用程序,并将收集的数据报告给Zabbix服务器。
解决:在每台被监控服务器安装zabbix客户端 zabbix-agent 即可!
(2) 安装zabbix客户端
在安装过程比较曲折,参考了多份安装教程,都存在问题!
① 使用yum方式安装Zabbix Agent,在安装前首先添加对应的yum repository;有很多高版本,但在安装时存在问题!打开官网
应用官网rpm安装文件版本!
# rpm -Uvh https://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
补充: rpm -Uvh http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/zabbix-release-3.2-1.el6.noarch.rpm 版本可以!
在安装过程中,其中某次安装了高版本,但是后面进行不下去,此时安装时显示如下
解决:rpm -ivh --replacefiles --force https://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
② 安装Zabbix Agent
yum -y install zabbix-agent
③ 编辑Zabbix Agent 配置文件
vim /etc/zabbix/zabbix_agentd.conf
Server=[zabbix server ip]
ServerActive=[zabbix server ip]
Hostname=[ Hostname of client system ] # 与主机配置主机名称一致
④ 启动 Zabbix Agent
service zabbix-agent start
查看启动状态: ps -ef | grep zabbix 发现没有启动成功!
异常:启动失败!查看zabbix_agentd.conf文件配置LogFile路径中的日志信息
解决:发现是selinux的问题,更新selinux策略即可
yum -y update selinux-policy.noarch selinux-policy-targeted.noarch
启动zabbix即可!(检查打开服务器10050端口!!!)
⑤ 添加开机启动
chkconfig zabbix-agent on
主机列表主机可用性正常,并收到恢复操作 unreachable 的邮件信息