Zabbix基于Proxy分布式部署
前言
在日常运维工作中,难免会遇到这样或那样的故障,如何能在第一时间发现故障,并及时定位故障原因,保证业务不受影响,我想这应该是做好一个运维必须要掌握的技能。但人力不可能实时掌控系统的变化,于是监控系统应运而生,监控便是运维的眼睛,把监控和性能管理做好后,运维就是一件很轻松的事情。目前比较流行的开源监控工具有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 Proxy配置
安装前的准备:
1、安装mysql
zabbix proxy自身需要安装mysql,可以yum安装mysql,并启动mysql
yum install mysql-server -y
yum install mysql-devel -y
yum install mysql
service mysqld start
/usr/bin/mysqladmin -u root password ‘zabbix@sendinfo’
chkconfig –add mysqld
2.建zabbix_proxy数据库
mysql -uroot -pzabbix@sendinfo
mysql> create database zabbix_proxy;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on zabbix_proxy.* to ‘zabbixproxy’@localhost identified by ‘zabbixproxy’;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.06 sec)
3.安装fping
由于fping 为扩展源软件,需要添加扩展源
#wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
# rpm -ivh epel-release-6-8.noarch.rpm
然后yum安装fping
yum -y install fping
4.安装依赖包
yum -y install net-snmp net-snmp-devel perl-DBI libxml libxml2-devel
yum -y install OpenIPMI
yum -y install unixODBC
- 安装zabbix-proxy-mysql
下载RPM包
zabbix-proxy-mysqlRPM包下载地址:
http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/
或安装文件夹包里也有。
安装
# rpm -ivh zabbix-proxy-mysql-3.0.4-1.el6.x86_64.rp
- 导入zabbix 数据库
#cd /usr/share/doc/zabbix-proxy-mysql-3.0.4/
#gunzip schema.sql.gz
#mysql -uzabbixproxy -pzabbixproxy zabbix_proxy < schema.sql
- 配置zabbix Proxy的zabbix_proxy.conf配置文件
[root@node3 ~]# vim /etc/zabbix/zabbix_proxy.conf
Server= 114.55.175.156 #指向Zabbix Server
Hostname=主机内网ip地址 #主机名
DBHost=localhost #指定数据库
DBName=zabbix_proxy #数据库名
DBUser=zabbixproxy #数据库用户
LogFile=/var/log/zabbix/zabbix_proxy.log
DBPassword=zabbixproxy #数据库密码
ConfigFrequency=60 #配置文件同步间隔
DataSenderFrequency=5 #数据同步间隔
#其他参数根据自己实际需求修改即可
然后启动zabbix_proxy 程序
[root@node3 ~]# service zabbix-proxy start
Starting Zabbix proxy: [ OK ]
- 安装 配置Zabbix Agent
Zabbix Agent 网上下载地址
http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64
安装包中也有zabbix-agent-3.0.4-1.el6.x86_64.rpm
#rpm -ivh zabbix-agent-3.0.4-1.el6.x86_64.rpm
安装完成后
[root@node1 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server= proxy端ip #指向proxy
Hostname=本机内网ip地址
[root@node1 ~]# service zabbix-agent start
Starting Zabbix agent: [ OK ]
#全部Agent节点都执行以上配置
9.添加监控 添加代理
以下为proxy 参数配置
ProxyLocalBuffer=0 #设定为0小时,除非有其他第三方应用和插件需要调用
ProxyOfflineBuffer=1 #proxy或者server无法连接时,保留离线的监控数据的时间,单位小时
ConfigFrequency=600 #server和proxy配置修改同步时间间隔,设定5-10分钟即可。
DataSenderFrequency=10 #数据发送时间间隔,10-30s;
#网络传输质量越好,可以设定间隔时间越短,监控效果也越迅速;
StartPollers=10 #开启多线程数,一般不要超过30个;
StartPollersUnreachable=1 #该线程用来单独监控无法连接的主机,1个即可;
StartTrappers=10 #trapper线程数
StartPingers=1 #fping线程数
CacheSize=64M #用来保存监控数据的缓存数,根据监控主机数量适当调整;
Timeout=10 #超时时间,设定不要超过30s,不然会拖慢其他监控数据抓取时间;
TrapperTimeout=30 #同上
FpingLocation=/usr/sbin/fping #配合simple check icmp检测使用,如不需要可关闭;
其他配置默认即可;