点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!
zabbix分布式监控
作为一个运维,需要会使用监控系统查看服务器系统性能、应用服务状态和网站流量指标等,利用监控系统的数据去了解网站上线发布的结果和健康状态。
利用一个优秀的监控软件,我们可以:
通过一个友好的界面进行浏览整个网站所有的服务器状态;
可以在 Web 前端方便的查看监控数据;
可以回溯寻找事故发生时系统的问题和报警情况。
1.1 zabbix 初识
zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix 由 2 部分构成,zabbix server 与可选组件 zabbix agent。通过 C/S 模式采集数据,通过 B/S 模式在 Web 端展示和配置。
zabbix server 可以通过 zabbix agent,SNMP协议,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在 Linux 等平台上。
zabbix agent 需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU 等信息的收集。
1.2 工作原理
zabbix agent会定期采集被监控主机的指标数据并发送给zabbix server,zabbix server 接收数据后会存储到zabbix database里 ,管理员可基于zabbix web 在浏览器即可查看到监控数据的图像。
1.3 zabbix功能组件
Zabbix Server
用于配置和管理zabbix应用程序,也是监控系统的告警中心(需要配置监控项告警触发阀值和发送告警)。
zabbix database
数据库持久化存储配置信息和监控指标数据(支持mysql、oracle、gpdb、tsdb等)。
zabbix web
Web 界面用于zabbix服务端配置界面和监控数据的ui界面展示 (支持lamp/lnmp)。
Zabbix Agent
部署在被监控的主机上,采集监控指标数据,并发送给zabbix server(数据采集支持主动模式和被动模式)。
主动模式
zabbix agent 主动向 zabbix server 请求监控项列表,并主动将监控项内需要的数据提交给zabbix server。
被动模式
zabbix agent 被动接受 zabbix server 请求监控项列表,zabbix agent 发送监控项内需要的数据提交给zabbix server。
Zabbix Proxy
zabbix代理端进程,部署在zabbix server 与zabbix agent之间,代替 zabbix server 接收zabbix agent 发送的监控数据并存储在本地,汇总后再转发给zabbix server,从而可以分担zabbix server 的集中式负载压力。
Java Gateway
用于获取通过从jmx在Java应用暴露的端口采集的监控数据。
Zabbix配置
部署zabbix服务端:

重命名主机名该为zbx-server:

准备nginx的安装源:

yum安装nginx:

yum安装epel源:


rpm安装webtatic源:


yum安装php:

编写nginx配置:




修改php配置:


创建目录和测试文件:


配置mariadb yum源:

yum 安装mariadb数据库:

开启mariadb数据库:

初始化数据库:

所有当前root用户密码:

不使用unix_socket身份验证:

修改root登录密码:

删除匿名用户:

禁止root用户远程登录:

删除测试数据库并访问它:

现在重新加载特权表:

配置完成!

使用mysql命令登录数据库:

创建zabbix数据库并指定字符集:

zabbix数据库用户授权:

刷新权限:

将zabbix压缩包添加到opt目录下并解压:

将database目录下mysql中的zabbix数据导入zabbix库中:


可以在zabbix库中查看所有表:

安装依赖包,准备安装zabbix:

创建zabbix用户来管理zabbix服务:

编译安装zabbix:

检查安装的版本:

修改zabbix server 配置文件:

指定zabbix日志路径:

指定zabbix数据库的密码:

准备systemctl 服务管理文件:

检查10051端口号,查看zabbix启动成功:


部署 Web 前端

在浏览器访问http://zbx.kgc.com/




安装zabbix设置账号密码:

成功登录zabbix。

安装zabbix agent2

这里报警是因为还没有安装zabbix agent。


4.1 安装zabbix agent2
4.2 启动zabbix agent2

开启zabbix agent2后,在zabbix中查看,发现报警已经取消。


添加zabbix客户端主机

将客户端和服务端主机进行时间同步:

服务端和客户端都设置hosts解析:

客户端设置zabbix下载源:

安装zabbix agent2
指定服务端的ip地址:


指定当前的zabbix客户端的主机名:

开启zabbix-agent2服务,并设置开机自启:

#客户端的端口号为10050。
在服务端验证zabbix-agent2的连通性:

在web页面中添加agent主机:


自定义监控内容
在客户端创建自定义key:

#创建后重新启动zabbix-agent2服务。
在服务端验证新建的监控项:

回到web网页添加新的监控项:



现在这个模板中没有任何监控项,下面我们来添加监控项。
添加监控项
如下图一样添加:

添加前我们可以先测试一下:

#测试成功后就可以添加到模块中:

在添加触发器:

设置登录主机超过4台时报警:

添加图形,以查看实时状态:

将配置的监控项模块与客户端主机关联:

在图形中可以看到已经开始监控了:

现在我们多开一台客户机,发现图形明显增长:

在多开一台客户机,使登录用户超过4名:

这时触发器检测到登录用户超过4台,发起报警:

我们关闭一台新开的客户机,图形中数值下降,恢复正常:

当登录的用户没有超过4台时,触发器取消报警,恢复正常检测。
但是正常工作的时候我们不能时刻的坐在监控机前等着报警,所以我们可以设置邮箱报警:
当触发器报警时,将报警信息发送到工作人员的邮箱中,以告知工作人员用户登录异常。
在菜单栏中选择管理中的报警媒介类型,在点击创建媒体类型:

如下图配置:

点击测试,发送信息到邮箱:

收件人选择自己的邮箱地址:

登录邮箱检查是否有收到:

添加报警媒介,根据图中顺序选择:

需要我们关注的严重程度选择一般严重及以上:

为触发器添加动作:

当登录用户超过4时发送邮件(下面进行测试):
增加客户端的用户登录,通过监测仪表盘,确认报警,并查看QQ邮箱是否收到报警邮件:

QQ邮箱可以正常收到报警邮件:

这样的操作可以让我们在第一时间知道是哪台客户机的问题,什么样的问题,以便于我们可以快速的查找解决问题!

本文作者:赵乐乐(上海新炬中北团队)
本文来源:“IT那活儿”公众号








