先简单的介绍一下zabbix分布式的2种实现方式proxy与node的优缺点
Proxy:
Zabbix proxy 是一个或多个从监控设备收集监测数据和发送到zabbixserver 的进程,属于代表zabbix server 的运行,所有收集到的数据被暂时存放在代理服务器,之后统一由代理服务器转发给zabbix proxy 所属的服务器,部署proxy是可选的,但是对于分担单个zabbix服务器的负载是非常有益的。如果尽在proxies上收集数据,那么将减轻服务器上 的进程对cpu资源和磁盘I/O的消耗。
zabbix proxy在没有本地管理员的情况下,是集中监控远程区域,分支和网络的理想解决方案。
Node:
使用node节点,建立一个层次结构的分布式监测。每一个节点是一个完整的zabbix服务器,和负责监视它自己的位置,zabbx 支持高达一千个节点的分布式安装。
使用node节点的好处:
1、在大型的网络中,涉及多个地点建立一个多层次的监控,在层次结构中的一个节点报告其主节点。
2、一个节点可以在本地配置或通过其主节点,它的所有子节点的配置数据的副本。
3、数据收集更多的免疫可能的通信问题。如果主站和子节点之间的通信发生故障时,节点可以保持运行状态。历史信息和事件存储在本地。当通信又回来了,一个子节点将有选择地将数据发送到主节点。
4、节点可以分裂一个单一的zabbix服务器的工作,监视数千台主机。
5、新节点的连接和拆卸,不影响现有的设置的功能。无需重新启动所需的任何节点。
所以本文选为以proxy为主是zabbix分布式(同时我的跨机房监控方案也是proxy,好处是安装配置方便,坏处是如果proxy代理有问题,所有监控主机都报警,但可以在配置里添加一个检测来解决)。
环境为
Ip 状态 hostname 软件版本 系统192.168.56.101 zabbix agent server 2.0.6 ubuntu server 12.04192.168.56.102 zabbix server centos 2.0.6 centos 6.2192.168.56.103 zabbix proxy client1 2.0.6 ubuntu server 12.04
安装依赖库
如果是debian或者ubuntu需要安装
apt-get install mysql-server gcc make libghc6-hsql-mysql-dev libcurl4-openssl-dev libsnmp-dev snmp curl
如果是centos或者redhat的需要安装
yum install install mysql-server mysql-devel gcc make wget net-snmp* curl libcurl
2.添加用户
groupadd zabbixuseradd zabbix -g zabbix –s /sbin/nologin
注意:
如果是redhat或者centos系统,如果不想用户登录,可以使用-s /sbin/nologin,如果是debian或者ubuntu系统,可以使用-s /usr/sbin/nologin
3.下载源码包
去官网下载的zabbix-2.0.6.tar.gz,或者在这里下载
4.解压与安装
tar zxvf zabbix-2.0.6.tar.gzcd zabbix-2.0.6./configure --prefix=/usr/local/zabbix --enable-proxy --with-mysql --with-net-snmp --with-libcurlmake install
5.配置数据库
mysql –u root –pcreate database zabbix character set utf8;grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';mysql -uzabbix -p'zabbix' zabbix < database/mysql/schema.sql
6.修改zabbix_proxy.conf文件
下面是我的修改后的配置
root@client1:/usr/local/zabbix/etc# grep -v "#" zabbix_proxy.conf|sed '/^$/d'Server=192.168.56.102Hostname=client1LogFile=/tmp/zabbix_proxy.logDBName=zabbixDBUser=zabbixDBPassword=zabbixDBSocket=/tmp/mysql.sockProxyLocalBuffer=0ProxyOfflineBuffer=1ConfigFrequency=30DataSenderFrequency=10StartPollers=10StartPollersUnreachable=1StartTrappers=10StartPingers=1CacheSize=64MTimeout=10TrapperTimeout=30
参数介绍
erver=192.168.56.102 #zabbix server的ip地址或者域名Hostname=client1 #proxy主机名,在zabbix web会以这个名字为准#DB 设定档DBName=zabbixDBUser=zabbixDBPassword=zabbixDBSocket=/tmp/mysql.sockProxyLocalBuffer=0 #设定为0小时,除非有其他第三方应用和插件需要调用ProxyOfflineBuffer=1 #proxy或者server无法连接时,保留离线的监控数据的时间,单位小时ConfigFrequency=30 DataSenderFrequency=1 #数据发送时间间隔;#网络传输质量越好,可以设定间隔时间越短,监控效果也越迅速;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检测使用,如不需要可关闭;其他配置默认即可;
7.启动
/usr/local/zabbix/sbin/zabbix_proxy
8.去agent节点修改配置文件
主要修改
Server=192.168.56.103ServerActive=192.168.56.103:10051
其中Server为代理服务器的ip,ServerActive也为代理服务器的ip与端口
然后重启服务
ps -ef|grep zabbix|grep -v grep|awk '{print $2}'|xargs kill -9/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/conf/zabbix_agentd.conf
9.web添加proxy节点
高级配置-》节点管理-》代理节点-》创建节点
填写proxy的主机名即可,与配置文件一致:
Active - 代理服务器将主动连接zabbix服务器并请求配置数据被动模式 - zabbix服务器连接代理服务器
现在我也把代理的主机server给添加了,如果不想在这里添加,可以在系统配置-》主机-》Create host,”由代理监控”选择刚添加的proxy
配置文件详解:
proxy: https://www.zabbix.com/documentation/2.4/manual/appendix/config/zabbix_proxy
server: https://www.zabbix.com/documentation/2.4/manual/appendix/config/zabbix_server
agent: https://www.zabbix.com/documentation/2.4/manual/appendix/config/zabbix_agentd
本文转自:
http://dl528888.blog.51cto.com/2382721/1334573