企业级分布式监控zabbix实战——Zabbix监控平台搭建
1. 什么是zabbix
Zabbix 是由Alexei Vladishev创建,目前由Zabbix SIA在持续开发和支持
Zabbix 是一个企业级的分布式开源监控方案
Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件
Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警,这样可以快速反馈服务器的问题
基于已存储的数据,Zabbix提供了出色的报告和数据可视化功能,这些功能使得Zabbix成为容量规划的理想方案
Zabbix支持主动轮询和被动捕获,Zabbix所有的报告、统计信息和配置参数都可以通过基于Web的前端页面进行访问
基于Web的前端页面可以确保从任何方面评估网络状态和服务器的健康性
适当的配置后,Zabbix可以在IT基础架构监控方面扮演重要的角色
对于只有少量服务器的小型组织和拥有大量服务器的大型公司也同样如此
Zabbix是免费的。Zabbix是根据GPL通用公共许可证第2版编写和发行的。这意味着它的源代码都是免费发行的,可供公众任意使用
2. zabbix监控的整体架构
Zabbix由几个主要的软件组件构成,这些组件的功能如下:
- (1)服务器
Zabbix服务器是代理程序报告系统可用性,系统完整性和统计数据的核心组件,是所有配置信息,统计信息和操作数据的核心存储器。 - (2)数据库存储
所有配置信息和的zabbix收集到的数据都被存储在数据库中。 - (3)网络界面
为了从任何地方和任何平台都可以轻松的访问Zabbix,我们提供基于Web的Zabbix界面。
该界面是Zabbix Server的一部分,通常(但不一定)跟Zabbix Server运行在同一台物理机器上。 - (4)代理服务器
Zabbix proxy可以替Zabbix Server收集性能和可用性数据.Proxy代理服务器是Zabbix软件可选择部署的一部分;
当然,Proxy代理服务器可以帮助单台Zabbix Server分担负载压力。 - (5)代理监控代理
Zabbix代理监控代理部署在监控目标上,能够主动监控本地资源和应用程序,并将收集到的数据报告给Zabbix服务器。 - (6)数据流
了解的zabbix内部的数据流同样很重要。监控方面,为了创建一个监控项(项)用于采集数据,必须先创建一个主机(主机)。
告警方面,在监控项里创建触发器(扳机) ,因此,如果你想收到Server X CPU负载过高的告警,你必须:
1.为Server X创建一个主机并关联一个用于对CPU进行监控的监控项(Item)。
2.创建一个Trigger,设置成当CPU负载过高时会触发
3.触发被触发,发送告警邮件虽然看起来有很多步骤,
但是使用模板的话操作起来其实很简单,ZABBIX这样的设计使得配置机制非常灵活易用。
3. zabbix的搭建环境
要想搭建一个Zabbix的工作环境,需要从服务器入手。与服务器通信,管理员需要使用一个Zabbix前端界面,与Zabbix服务器和数据库进行通信。三个关键(界面、服务器和数据库)可以安装在同一台服务器上,但是如果你拥有一个更大更复杂的环境,将它们安装在不同的主机上也是一个选项。Zabbix服务器能够直接监控到同一网络中的设备,如果其他网络的设备也需要被监控,那还需要一台Zabbix代理服务器。
4. zabbix-agent
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。zabbix agent可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows (2000/2003/XP/Vista)等系统之上。
zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(agent方式),同时还可被动接收zabbix agent发送的数据(trapping方式)
5. 工作原理
一个监控系统运行的大概的流程是这样的:
zabbix agent需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图。这里agent收集数据分为主动和被动两种模式:
主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
被动:server向agent请求获取监控项的数据,agent返回数据。
6. Zabbix的搭建
首先封装7.3/7.5的虚拟机,然后创建三个虚拟机使用。本次搭建选择使用server1(ip:172.25.60.1)作为zabbix界面、zabbix服务器和数据库,即搭建所需的三者都在server1中。正式搭建过程如下:
首先添加三台虚拟机,分别命名为server11,server22,server33
使用sshd服务连接到这三台虚拟机,查看其ip
将zabbix的安装包放在/root/zabbix/4.0/目录下,
使用yum命令来安装zabbix的相关软件
可以看到,安装成功
然后安装数据库软件,安装mariadb-server
可以看到,安装成功
开启mariadb服务
对数据库进行安全初始化, 设置密码
登陆数据库,创建zabbix数据库并且授权
create database zabbix character set utf8 collate utf8_bin; #字符 校验字符
grant all privileges on zabbix.* to zabbix@localhost identified by 'redhat';
导入zabbix数据库
cd /usr/share/doc/zabbix-server-mysql-4.0.5/
zcat create.sql.gz | mysql -p zabbix
zcat=gzip + cat #把这个数据库导入zabbix这个数据库中
再次登录数据库可以看到zabbix数据库里面有很多表格以及数据
编辑zabbix的配置文件,修改数据库密码和时区
cd /etc/zabbix/
vim zabbix_server.conf
124 DBPassword=redhat 修改密码 124行
systemctl start zabbix-server
systemctl enable zabbix-server
ps ax 如果有与数据库zabbix-server有关的选项 则成功。
或者查看日志,vim /var/log/zabbix/zabbix_server.log
cd /etc/httpd/conf.d/
vim zabbix.conf
修改: 20 行的时区 php_value date.timezone Asia/Shanghai
[root@server1 conf.d]# systemctl start httpd
[root@server1 conf.d]# systemctl enable httpd
在真机中打开浏览器,测试
在浏览器页面输入http://172.25.60.1/zabbix,开始在zabbix的web页面进行设置
点击【Next step】——相关配置都必须是【OK】
输入zabbix用户的密码(redhat)
输入server端的名字(可以自行命名, 这里我暂时不命名)
确认相关配置后,点击【Next step】
点击【Finash】
登录zabbix平台
登录之后可以修改监控界面的语言为中文,点击右上角用户图表
【Language】中选择Chinese,点击【Update】
修改完毕!
点击【配置】–>【主机】,查看server的状态
可以看到zabbix监控的名称zabbix-server是自己,但是还没有安装zabbix-agent,因此安装了之后才会变绿,才可以对自己进行相关监控
可用性ZBX表示对自己的监控还没有开启,要监控自己,首先要安装被监控的服务zabbix-agent
可以看到server1已经安装
开启zabbix-agent服务,并且设置开机自启
查看zabbix的服务器和代理的端口是否打开
刷新zabbix的监控界面,
可以看到,server1已经可以使用zabbix来监控自身了