Zabbix Proxy
是一个可以从一个或多个受监控设备采集监控数据并将信息发送到Zabbix Server
的进程,主要是代表Zabbix Server工作。 Proxy 收集到数据之后,首先将数据缓存在本地,然后在一定得时间之后传递给Server,这样就不会因为服务器的任何临时通信问题而丢失数据。独立的数据库
本质上,Zabbix Proxy 只是一个数据收集器,它不计算触发器、不处理事件、不发送报警
Zabbix
监控上千设备时,使用它来减轻Server的压力其运行架构可用下图表示
[root@hns-zabbix-proxy ~]# yum groupinstall "Development tools"
[root@hns-zabbix-proxy ~]# yum -y install wget tree
[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
[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
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
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
[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
[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
[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
[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 *:*