在日常运维工作中,难免会遇到这样或那样的故障,如何能在第一时间发现故障,并及时定位故障原因,保证业务不受影响,我想这应该是做好一个运维必须要掌握的技能。但人力不可能实时掌控系统的变化,于是监控系统应运而生,监控便是运维的眼睛,把监控和性能管理做好后,运维就是一件很轻松的事情。目前比较流行的开源监控工具有Cacti、Nagios(Icinga)、Zabbix等。本文带来的是Zabbix基于Proxy分布式部署实现Web监控。
Zabbix 简介Zabbix是一个基于Web界面提供分布式系统监视以及网络监视功能的企业级的开源解决方案。它能监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
基本功能数据采集方式:zabbix agent,agent(active),SNMP,SSH等
数据存储方式:RDBMS,如MySQL,Pgsql等
数据展示方式:php,web,gui
报警功能:支持报警升级
组件及基础架构Zabbix主要由zabbix server和zabbix agent组成
server端负责从agent端收集监控数据,并存储在数据库中,同时对数据进行分析展示,并触发相关报警
agent端负责监控数据的采集,并发送给server端
数据采集方式除了在被监控主机上部署agent程序外,还可通过ICMP/IPMI/SNMP等协议对网络设备进行监控,同时配置web监控方式可以监控web页面的下载速率和响应时间等重要参数
Zabbix proxy是在大规模分布式监控场景中,采用的一种用以分担server端压力的分层结构,Proxy只负责一定区域内的数据采集工作,然后定期将数据一次性发送给server,极大的减轻了server的负载压力,使得可以支持更大规模的监控需求
一些Zabbix相关教程集合:
Ubuntu 14.04下Zabbix2.4.5 源码编译安装 .com/Linux/2015-05/117657.htm
CentOS 6.3下Zabbix安装部署
CentOS 6.3下Zabbix监控apache server-status
实现过程 实验拓扑 #系统环境:CentOS6.6 #Zabbix Server为LAMP环境 #Zabbix Proxy需数据库支持 #Zabbix Server与Zabbix Proxy需时间同步,全部节点已做同步 Zabbix Server配置快速构建LAMP
[root@node4 ~]# yum install httpd mysql mysql-libs php php-mysql mysql-server php-bcmath php-gd php-mbstring -y安装Zabbix Server所需软件包
[root@node4 ~]# cd zabbix-2.4/ [root@scholar zabbix-2.4]# ls zabbix-2.4.0-1.el6.x86_64.rpm zabbix-sender-2.4.0-1.el6.x86_64.rpm zabbix-agent-2.4.0-1.el6.x86_64.rpm zabbix-server-2.4.0-1.el6.x86_64.rpm zabbix-get-2.4.0-1.el6.x86_64.rpm zabbix-server-mysql-2.4.0-1.el6.x86_64.rpm zabbix-proxy-2.4.0-1.el6.x86_64.rpm zabbix-web-2.4.0-1.el6.noarch.rpm zabbix-proxy-mysql-2.4.0-1.el6.x86_64.rpm zabbix-web-mysql-2.4.0-1.el6.noarch.rpm [root@node4 zabbix-2.4]# yum install zabbix-2.4.0-1.el6.x86_64.rpm zabbix-agent-2.4.0-1.e l6.x86_64.rpm zabbix-get-2.4.0-1.el6.x86_64.rpm zabbix-se* zabbix-web-* -y数据库准备
[root@node4 ~]# vim /etc/my.cnf [mysqld] default-character-set = utf8 #此项可确保zabbix中文界面不乱码 [root@node4 ~]# service mysqld start Starting mysqld: [ OK ] #授权 mysql> create database zabbix; Query OK, 1 row affected (0.01 sec) mysql> grant all on zabbix.* to 'zbuser'@localhost identified by 'zbpass'; Query OK, 0 rows affected (0.09 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) #导入zabbix数据 [root@node4 ~]# cd /usr/share/doc/zabbix-server-mysql-2.4.0/create/ [root@node4 create]# mysql --default-character-set=utf8 zabbix < schema.sql [root@node4 create]# mysql --default-character-set=utf8 zabbix < images.sql [root@node4 create]# mysql --default-character-set=utf8 zabbix < data.sql #--default-character-set=utf8 此项为防止中文乱码,不用中文则可忽略