一、zabbix proxy 概述

zabbix小结(一)zabbix概述 篇中有介绍过master — proxy架构,其多用在在跨机房、跨网络的环境中 ,除此之外,其还可以减小master 的压力。proxy 虽然在安装过程中也需要配置数据库,不过其只向数据库中写入 代理主机信息,并不存入数据信息 。其架构图如下:

二、zabbix proxy的安装

由于在 zabbix小结(二)zabbix的安装 篇中有介绍到zabbix server端(master 端)的安装 ,所以这里就略过 master 的安装部分,主要介绍 proxy 的安装 。

1、安装必备软件环境

1# yum install -y gcc make cmake mysql-server mysql-devel
2net-snmp  net-snmp  net-snmp-devel  curl curl-devel perl-DBI
3libxml libxml2-devel

注:操作系统为centos 的情况下,默认源里没有fping 软件包,需要从第三方源里下载安装 。

2、添加用户

1# groupadd  -g 201 zabbix
2# useradd -g zabbix -u 201 -m zabbix -s /sbin/nologin

3、下载zabbix及安装

这里以源码包为例,和master保持一致,版本选的还是2.3.3

1# wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.3/zabbix-2.2.3.tar.gz
2# tar zxvf zabbix-2.2.3.tar.gz

编译参数和编译 mater 端的方法基本一致,只是把 –enable-server 去掉了,如下(–enable-proxy是必须的):

1#./configure  --enable-agent --enable-proxy
2--with-mysql --enable-ipv6
3--with-net-snmp --with-libcurl
4--with-libxml2
5--prefix=/usr --sysconfdir=/etc/zabbix/
6#make install

4、创建和导入数据库

创建zabbix库

1mysql -uroot -p
2>create database zabbix default charset utf8;
3> grant all on zabbix.* to zabbix@localhost identified by '123456';
4>flush privileges;
5>exit

导入表结构

1mysql -uzabbix -p123456 zabbix < ./database/mysql/schema.sql

这里只需要导入schema.sql 即可,不需要像 mater 一样,要导入schema.sql 、images.sql 、data.sql 三个文件 。

5、配置服务

编辑/etc/services配置文件,新增下面部分:

1# vim /etc/services
2zabbix-agent 10050/tcp #Zabbix Agent
3zabbix-agent 10050/udp #Zabbix Agent
4zabbix-trapper 10051/tcp #Zabbix Trapper
5zabbix-trapper 10051/udp #Zabbix Trapper

6、编辑zabbix_proxy.conf文件

zabbix_proxy.conf文件中,只需要指定如下几项即可正常使用:

 1# egrep -v "(^#|^$)" zabbix_proxy.conf
 2Server=127.0.0.1,172.20.0.233  //指定master 主机IP
 3Hostname=proxy_0_214  //指定本代理主机名,在master 的DM配置界面用
 4LogFile=/tmp/zabbix_proxy.log
 5DebugLevel=3  //默认3是warnings mode
 6PidFile=/var/run/zabbix/zabbix_proxy.pid
 7DBName=zabbix
 8DBUser=zabbix
 9DBPassword=123456
10ConfigFrequency=120

上面的 server、hostname、DB配置部分是必须的 。当proxy 通信不正常时,可以将debuglevel 调为4 开启debug模式 。

zabbix_proxy.conf 里的配置参数可以查看 官方wiki 参数表 ,其中有几项需要特别注意的,这里提下:

1CacheSize      指定为 配置cache 、主机信息、项目数据 分配的内存大小
2ConfigFrequency   proxy从master接收配置数据的时间间隔,默认是1小时
3DataSenderFrequency   proxy 向 master 发送data 的频率间隔,默认是1秒
4ProxyLocalBuffer   proxy 向master发送完的数据在本地保留多久,默认0,不保存 ,多在第三方应用需要用这些数据的情况时配置
5Timeout   和agent连接的超时时间,默认3秒

7、zabbix proxy的启动

proxy可以使用启动脚本进行启动,源码包安装时,会在/usr/local/src/zabbix-2.2.3/misc/init.d 目录有相应操作系统的启动脚本样例,如centos的就选fredora 下的,ubuntu系统就选debian下的 。默认情况下可能没有zabbix_proxy 自启动脚本,可以按照 zabbix_server 或zabbix_agentd的进行下修改就可以了。除了使用脚本启动,也可以直接使用命令启动,如下:

1zabbix_proxy -c /etc/zabbix/zabbix_proxy.conf

8、防火墙配置

开启相应的端口

1iptables -A INPUT -p tcp  --dport 10050 -j ACCEPT
2iptables -A INPUT -p tcp  --dport 10051 -j ACCEPT
3iptables -A INPUT -p udp  --dport 10050 -j ACCEPT
4iptables -A INPUT -p udp  --dport 10051 -j ACCEPT

三、master 端添加proxy主机

1、在server 端按添加普通主机的流程增加proxy主机 。步骤为:Configuration —– Hosts —– Create host ,如下图

proxy_zabbix

2、依次点击Administration —– DM —– Create proxy ,增加proxy主机,并按下图所示进行添加:

dm-proxy

注:需要注意,此处的proxy_name一定要和zabbix_proxy.conf里的配置的Hostname一致,不然会出现maste – proxy无法通信 。

3、增加完proxy,并save保存后,会看到下图的界面,通过查看 last seen 项是否有值显示,确认prxoy – master之间是否通信正常。

proxies

默认情况下,proxy和master之间每60秒进行一次心跳检测 。

四、增加agent主机(通过proxy)

第三步 中增加proxy主机的通示, 通过Configuration —– Hosts —– Create host 增加被监控的agent主机 。同增加普通主机不同的是在 Monitored by proxy 选项处,选择刚刚新增的代理主机 ———— proxy_0_214 。link 模块保存后,可以在hosts里看到通过代理增加的主机和普通方式增加的主机显示方式上会略有不同,如下图:

proxy_agent_host

通过代理增加的主机,在新增主机的主机名前会有代理服务器的hostname,格式 为 ” proxy_hostname: agent_hostname ” 。

同样,测试proxy和agent之间是否正常,也可以使用zabbix_get命令,如:

1# zabbix_get -s 172.20.0.42 -p 10050 -k "system.cpu.util[,user]"
21.519579

proxy_agent_host