概述
Zabbix Proxy简介
Zabbix Proxy
是一个可以从一个或多个受监控设备采集监控数据并将信息发送到Zabbix Server
的进程,主要是代表Zabbix Server工作。 Proxy 收集到数据之后,首先将数据缓存在本地,然后在一定得时间之后传递给Server,这样就不会因为服务器的任何临时通信问题而丢失数据。
Zabbix Proxy的特点
- 使用
独立的数据库
- 有利于分担单个Zabbix Server的负载,减少 CPU 和磁盘 I/O 的开销
- 无需本地管理员即可集中监控远程位置、分支机构和网络的理想解决方案
本质上,Zabbix Proxy 只是一个数据收集器,它不计算触发器、不处理事件、不发送报警
Zabbix Proxy使用场景
- 监控远程区域设备
- 监控本地网络不稳定区域
- 当
Zabbix
监控上千设备时,使用它来减轻Server的压力 - 简化分布式监控的维护
其运行架构可用下图表示
安装
安装基础编译环境
代码语言:javascript复制[root@hns-zabbix-proxy ~]# yum groupinstall "Development tools"
[root@hns-zabbix-proxy ~]# yum -y install wget tree
获取zabbix源码包
代码语言:javascript复制[root@hns-zabbix-proxy ~]# wget -P /usr/src/ http://192.168.20.55/packages/zabbix/zabbix-3.4.8.tar.gz
[root@hns-zabbix-proxy ~]# cd /usr/src/
[root@hns-zabbix-proxy src]# tar xf zabbix-3.4.8.tar.gz
[root@hns-zabbix-proxy src]# cd zabbix-3.4.8
创建zabbix用户
代码语言:javascript复制[root@hns-zabbix-proxy zabbix-3.4.8]# groupadd -r zabbix
[root@hns-zabbix-proxy zabbix-3.4.8]# useradd -r -g zabbix -s /sbin/nologin -M zabbix
创建Zabbix数据库
- 安装
MySQL Server
[root@hns-zabbix-proxy zabbix-3.4.8]# yum -y install mysql-server
[root@hns-zabbix-proxy zabbix-3.4.8]# chkconfig --add mysqld
[root@hns-zabbix-proxy zabbix-3.4.8]# chkconfig mysqld on
[root@hns-zabbix-proxy zabbix-3.4.8]# chkconfig mysqld --list
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@hns-zabbix-proxy zabbix-3.4.8]# service mysqld start
[root@hns-zabbix-proxy zabbix-3.4.8]# mysql_secure_installation #密码:Proxy@zabbix
[root@hns-zabbix-proxy zabbix-3.4.8]# service mysqld restart
- 导入数据库架构
代码语言:javascript复制Zabbxi数据库必须在Zabbix服务器和代理安装的时候创建。
对于Zabbix proxy而言,只需导入数据库架构(schema),而Zabbix server数据库在建立数据库架构(schema)后,还需要数据集(dataset,具体表现为 images.sql 和 data.sql)
[root@hns-zabbix-proxy zabbix-3.4.8]# mysql -uroot -p
Enter password:
MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.001 sec)
MariaDB [(none)]> grant all privileges on zabbix_proxy.* to proxy@localhost identified by 'Proxy@zabbix';
Query OK, 0 rows affected (0.002 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.002 sec)
MariaDB [(none)]> exit
Bye
[root@hns-zabbix-proxy zabbix-3.4.8]# mysql -uproxy -p zabbix_proxy < database/mysql/schema.sql #导入数据库架构
Enter password:
[root@hns-zabbix-proxy zabbix-3.4.8]# mysql -uproxy -p #验证是否导入成功
Enter password:
MariaDB [(none)]> show databases ;
--------------------
| Database |
--------------------
| information_schema |
| zabbix_proxy |
--------------------
2 rows in set (0.002 sec)
MariaDB [(none)]> use zabbix_proxy
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [zabbix_proxy]> show tables ; #截取部分
----------------------------
| Tables_in_zabbix_proxy |
----------------------------
| acknowledges |
| actions |
| alerts |
| application_discovery |
| application_prototype |
...
MariaDB [(none)]> exit
Bye
编译Zabbix Proxy
- 安装zabbix相关编译依赖
[root@hns-zabbix-proxy zabbix-3.4.8]# yum -y install mysql-devel openssl-devel pcre-devel zlib-devel net-snmp-devel libcurl-devel libxml2-devel libssh2-devel
- 编译
[root@hns-zabbix-proxy zabbix-3.4.8]# ./configure --prefix=/usr/local/zabbix_proxy --enable-proxy --enable-agent --with-net-snmp --with-ssh2 --enable-ipv6 --with-libcurl --with-libxml2 --with-mysql=/usr/bin/mysql_config
[root@hns-zabbix-proxy zabbix-3.4.8]# make install
配置PATH变量及开机自启
- 查看Zabbix Proxy程序结构
[root@hns-zabbix-proxy zabbix-3.4.8]# cd /usr/local/zabbix_proxy/
[root@hns-zabbix-proxy zabbix_proxy]# tree bin sbin
bin
├── zabbix_get
└── zabbix_sender
sbin
├── zabbix_agentd
└── zabbix_proxy
0 directories, 4 files
[root@hns-zabbix-proxy zabbix_proxy]# pwd
/usr/local/zabbix_proxy
- 配置PATH变量
[root@hns-zabbix-proxy zabbix_proxy]# echo "export PATH=/usr/local/zabbix_proxy/bin:/usr/local/zabbix_proxy/sbin:$PATH" >> /etc/profile.d/zabbix_proxy.sh
[root@hns-zabbix-proxy zabbix_proxy]# source /etc/profile.d/zabbix_proxy.sh
- 配置开机自启动
#配置proxy上的agentd为开机自启动
[root@hns-zabbix-proxy zabbix_proxy]# echo "/usr/local/zabbix_proxy/sbin/zabbix_proxy" >> /etc/rc.d/rc.local
[root@hns-zabbix-proxy zabbix_proxy]# chmod x /etc/rc.d/rc.local
[root@hns-zabbix-proxy zabbix_proxy]# cat /etc/rc.d/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
/usr/local/zabbix_proxy/sbin/zabbix_proxy
查看和编辑配置文件
代码语言:javascript复制[root@hns-zabbix-proxy zabbix_proxy]# vi etc/zabbix_proxy.conf
Server=192.168.20.70
Hostname=hns-zabbix-proxy
DBHost=localhost
DBName=zabbix_proxy
DBUser=proxy
DBPassword=Proxy@zabbix
DBPort=3306
[root@hns-zabbix-proxy zabbix_proxy]# vi etc/zabbix_agentd.conf
Server=127.0.0.1 #配置为zabbix server
ServerActive=127.0.0.1
Hostname=hns-zabbix-proxy
[root@hns-zabbix-proxy zabbix_proxy]# zabbix_proxy
[root@hns-zabbix-proxy zabbix_proxy]# zabbix_agentd
[root@hns-zabbix-proxy zabbix_proxy]# ss -tnl #看到10051端口则代表Proxy运行正常
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 :::10050 :::*
LISTEN 0 128 *:10050 *:*
LISTEN 0 128 :::10051 :::*
LISTEN 0 128 *:10051 *:*
LISTEN 0 50 *:3306 *:*
LISTEN 0 128 :::22 :::*
LISTEN 0 128 *:22 *:*