搭建zabbix监控系统
会不会有那么一天,生活可以简单到每天清早踏上一辆载着鲜花的脚踏车,微笑着穿过窄窄的街巷,为爱花的人送去芬芳,为需要知识的你送去帮助。
简介
在企业网络运维过程中,管理员必须随时关注各服务器和网络的运行状况,以便及时发现问题。尽可能减少故障的发生。当网络中的设备、服务器等数量较多时,为了更加方便、快捷地获得各种监控信息,通常会借助于一些集中监测软件。
本章将以Zabbix为例,介绍服务器集中监测体系的构建和使用。
本章重点
Zabbix工作原理及重要组件
Zabbix安装
Zabbix监控系统及网络设备
一,案例分析
要想实时地了解服务器的运行状况并且能在出现问题时及时解决,利用监控软件是一个很好的途径。就目前而言,有服务器的地方就少不了监控系统。现有的监控系统软件很多,但是Zabbix可以灵活地监控服务器资源,并且集Cacti与Nagio两者的优点于一身且功能更强大,实现企业级分布式监控,所以在市场应用更广。
二,zabbix基础
1.Zabbix是一个基于Web界面的企业级开源监控套件,提供分布式系统监控与网络监视功能。具备主机的性能监控,网络设备性能监控,数据库性能监控,多种告警方式,详细报表,图表的绘制等功能。监测的对象可以是Linux或Windows服务器,也可以是路由器、交换机等网络设备,通过SNMP
(Simple NetworkManagement Protocol.简单网络管理协议)、ZabbixAgent,PING.端口监视等方法提供对远程网络服务器等监控、数据收集等功能,并提供通知机制使系统管理员可以快速定位、解决系统中存在的各种问题。目前,Zabbix最新版本为Zabbix3.4,官方网站是http://www.zabbix.com。
Zabbix是免费的。Zabbix遵循GPL(General Public License.通用公共许可证)版本2,这意味着它的源代码是可以自由分布的。Zabbix的商业版本是由Zabbix公司提供支持的。世界上很多大小不同的组织机构都依赖于Zabbix作为自己的一个主要的监控平台。尤其是现在很多互联网企业都在使
用它。
Zabbix是一个高度集成的网络监控解决方案,具备如表所示的特点。
2. zabbix重要组件
zabbix主要由以下几个重要组件构成,具体作用如下。
Zabbix Server:负责接收Agent发送报告信息的核心组件,所有的配置、数据统计、数据操作都由它组织进行。
Database storage:负责存储所有的配置信息以及收集的数据。
Web interface:是zabbix的GUl接口,通常情况下与Zabbix Server运行在同一台主机上。
Pxory:属于可选组件,常用于分布式监控环境中,代理Server 收集部分数据,然后转发到Server,可以减轻Server的压力。
Agent:部署在被监控的主机(客户端)上,负责收集被监控端主机的数据,如CPU、内存、数据库等数据,然后发送到Server 端或Proxy端。
zabbix进程
默认情况下Zabbix包含五个程序;zabbixagentd,zabbix_get.zabbix_sender、zabbix_server.
zabbix_proxy.另外有个zabbixjava_gateway是可选的,需要另外安装。下面来分别介绍它们各自的作用:
zabbix_agentd:客户端守护进程,此进程用于收集被监控端的数据,如CPU负载、内存、硬盘使用情况等。
zabbix_get:zabbix工具是单独使用的命令。zdbbix_get 是在server或者proxy端执行获取远程客户端信息的命令,主要用于排错。例如,在server 端获取不到客户端的内存数据时,我们可以使用zabbix_get获取客户端的内容的方式来做故障排查。
zabbix sender:用于发送数据给server 或者proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致zabbix超时。于是我们在脚本执行完毕之后,可以使用sender主动提交数据。
zabbix_server:zabbix 服务端守护进程。zabbix_agentd,zabbixget.zabbix_sender、zabbix_proxy.
zabbix_java_gateway:的数据最终都是提交到server。数据并不都是主动提交给zabbix_server的,也有被动提交数据的,即server主动去获取数据。
zabbix_proxy:zabbix代理守护进程。功能类似server.唯一不同的是它只是一个中转站,需要把收集到的数据主动(或被动)地提交到server上。
zabbix_java_gateway:在zabbix2.0之后引入的一个功能。顾名思义;Java网关,类似agentd,但是只用于Java方面。需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会提交到server 或者proxy。
3.zabbix监控架构
在实际生产环境中,Zabbix根据网络环境、监控规模等外界因素分为三种架构:server-client(直接连接)、master-node-client(Node架构)、server-proxy-client(Proxy架构),如图所示。
1)server-client架构
server-client 架构是zabbix的最简单的架构,监控机和被监控机之间不经过任何代理,直接在zabbix server 和zabbix agentd之间进行数据交互,适用于网络比较简单,设备比较少的监控环境。
2)master-node-client架构
master-node-client架构是Zabbix最复杂的监控架构,适用于跨网络、跨机房、设备较多的大型环境。每个node同时也是一个server端,node 下面可以接proxy,也可以直接接client。node有自已的配置文件和数据库,其要做的是将配置信息和监控数据向master同步。当master 发生故障或损坏,node可以保证架构的完整性。
3)server-proxy-client架构
proxy是server、client之间沟通的一个桥梁,proxy本身没有前端,而且其本身并不存放数据,只是将agentd 发来的数据暂时存放,而后再提交给server.该架构经常是和master-node-client架构做比较的架构,一般适用于跨机房、跨网络的中型网络架构的监控。
三,YUM安装Zabbix
Zabbix 提供两种安装方式:YUM安装与编译安装。需要注意的是,由于CentOS官方YUM源中并不提供Zbbix软件包以及相关依赖包,因此,如果想用YUM安装Zabbix需要通过Zabbix官方源或第三方的YUM源实现。本节中我们通过YUM安装的方式学习Zabbix的安装及配置。
Zabbix服务器需要LAMP环境或者LNMP环境,本例以YUM安装的LAMP环境为例,演示Zabbix监控服务器的部署方法。
1)安装MariaDB在CentOS7系统光盘镜像中默认提供的数据库软件不是MySOL 而是MariaDB,因此在LAMP架构中使用MariaDB来充当“M”的角色,其余的组件还是保持原有的Apache 与PHP.MariaDB是MySOl数据库源码的一个分支版本,与MySOL在大多数方面是兼容的。
部署YUM源后直接执行以下命令即可安装并启动MariaDB并将数据库管理员密码史改为
“pwd@123”,并能登录数据库,验证数据库是否正常安装。
2)启动并设置为开机自启
3)设置密码,登录数据库
4)创建存储zabbix数据库,字符编码设置为uft8
5)授权用户访问zabbix数据库
6)安装zabbix数据到MySQL数据库中
7)导入zabbix数据到MySQL数据库中
8)修改zabbix主配置修改时区
9)修改zabbix配置文件连接数据库
10)修改zabbix支持简体中文
11)启动zabbix服务器端口
12)监听端口
13)使用浏览器安装zabbix(一路如图)
四,安装zabbix客户端
1)修改zabbix客户端主配置文件
2)启动客户端服务。设置开机自启
3)监控客户端
至此,结束~~~
故事很短,道理很长,学无止境,不忘初心,砥砺前行