|
编者按Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。借助Zabbix,可以减轻运维人员们繁重的服务器管理任务,实现业务系统的持续运行。本文中,作者张世锋结合公司的实际机房分布在多个城市的案例,总结了Zabbix分布式部署实施方案的全过程。
最近在研究Zabbix监控,由于机房分布在多个城市,因此采用zabbix proxy做为监控方案,在每个节点部署zabbix proxy,由zabbix proxy收集agentd数据,然后将采集到的数据主动推送给zabbix server,zabbix server将数据存入数据库,并在WEB前端显示。
一、Zabbix主要功能和优劣势说明
1、Zabbix主要功能:
1)Application monitoring 应用监控
数据库/SSH/Apache/Nginx等应用程序的监控。
2)Server monitoring 服务器监控
CPU,内存,SWAP,磁盘空间,网卡流量的监控等,可以通过浏览器实时查看Graphs。
3)Network monitoring 网络设备监控
支持Cisco, Juniper, 3Com等网络设备,网络设备通过SNMP(SNMP (v1,v2,v3) devices)协议进行监控。
4)添加自定义监控,对于Zabbix无法满足的监控,可以添加自定义监控。
2、Zabbix 优势:
1)安装配置简单,支持多种语言,包括中文。
2)系统自带多种监控模板,可以直接使用。
3)支持分布式部署和WEB集中管理(通过WEB页面设置或查看报警结果)。
4)自动发现主机和网络设备(discovery of file systems,network interfaces,hosts and netwrok devices)。
5)WEB监控:可以监控WEB下载速度,返回码及响应时间。
6)提供实时和历史的监控分析数据。
7)EMAIL报警,按照故障级别|服务器类型|业务类型发送EMAIL邮件到相关负责人。
3、Zabbix 劣势:
1)需要在被监控机器上面安装agent。
2)All configuration information都存储在数据库里面,数据库是整个监控平台的瓶颈。
二、Zabbix分布式部署需求分析
1、软件需求
官方推荐的软件配置
1)MySQL5.0.3 or laterRequired if MySQLis used as Zabbix back end database,InnoDB engine isrequired.
2)PHP 5.3.0 or later
3)Apache 1.3.12 or later
2、硬件需求
官方推荐的最小硬件配置:
三、Zabbix分布式部署实施
1、分布式部署拓扑图

补充说明:
当proxy部署为主动模式(Active)时,Zabbix Server的负载最小。
1)Server:负责把数据写入到数据库,然后通过Apache|Nginx +php在WEB前端显示。
2)Proxy:帮助server采集被监控端的数据,并把采集到的数据主动传送给Server,proxy只负责数据收集。
3)Database:所有的配置信息都存储在数据库里面,Zabbix server数据库和proxy数据库必须独立。
4)Agent:agent的作用就是获取host数据,然后将收集到的数据发送给server(主动模式),或者是server主动来拿取数据(被动模式)。
5)Email:通过Qmail|postfix的SMTP负责报警邮件的发送(故障邮件和故障恢复邮件)。
2、Zabbix分布式安装部署:
1)Mysql 数据库安装(参照:http://sfzhang88.blog.运维网.com/4995876/900846)
2)LNMP + Zabbix server 安装(参照:http://sfzhang88.blog.运维网.com/4995876/978686)
3)Zabbix proxy 安装(略)
4)Zabbix agent 安装
- [root@www20 shell]# cat zabbix_agentd_install.sh
- #!/bin/sh
- #Create by sfzhang 2014.02.27
- yum -y install net-snmp
- yum -y install net-snmp-devel
- BASE_DIR="/data/software"
- TAR="zabbix-2.2.1.tar.gz"
- tar -zxvf $BASE_DIR/$TAR -C$BASE_DIR
- cd $BASE_DIR/zabbix-2.2.1
- ./configure--prefix=/usr/local/zabbix --sysconfdir=/etc/zabbix --enable-agent
- make && make install
- groupadd zabbix
- useradd zabbix -g zabbix
- cpmisc/init.d/fedora/core/zabbix_agentd /etc/init.d/zabbix_agentd
- chmod 700/etc/init.d/zabbix_agentd
- chown zabbix.zabbix/etc/init.d/zabbix_agentd
- sed -i "/BASEDIR=/s#/.*#/usr/local/zabbix#" /etc/init.d/zabbix_agentd
- sed -i"s#bin/zabbix_agentd#sbin/zabbix_agentd#" /etc/init.d/zabbix_agentd
- sed -i"s#Server=127.0.0.1#Server=192.168.161.129#"/etc/zabbix/zabbix_agentd.conf
- sed -i"s#ServerActive=127.0.0.1#\#ServerActive=127.0.0.1#"/etc/zabbix/zabbix_agentd.conf
- sed -i "/Hostname=/s#=.*#"=$HOSTNAME#""/etc/zabbix/zabbix_agentd.conf
- sed -i"s#\#/tmp/zabbix_agentd.pid#/data/logs/zabbix_agentd.pid#"/etc/zabbix/zabbix_agentd.conf
- sed -i"s#/tmp/zabbix_agentd.log#/data/logs/zabbix_agentd.log#"/etc/zabbix/zabbix_agentd.conf
- sed -i "s#\#Timeout=3#Timeout=30#" /etc/zabbix/zabbix_agentd.conf
- cat>>/etc/services
|
|
|