vlambda博客
学习文章列表

Zabbix-(5)-​Proxy主动被动部署

续:

推荐阅读:


一. Zabbix Proxy 架构

分布式监控文档:

https://www.zabbix.com/documentation/4.0/zh/manual/distributed_monitoring

Zabbix 通过 Zabbix proxies 为 IT 基础设施提供有效和可用的分布式监控。代理(proxies)可用于代替 Zabbix server 本地收集数据,然后将数据报告给服务器。

zabbix 作为一个分布式监控系统(分布式监控解决方案),支持通过代理(proxy)收集zabbix agent 的监控数据然后由 zabbix proxy 再把数据发送给 zabbix server,也就是 zabbix proxy 可以代替 zabbix server 收集监控数据,然后把数据汇报给zabbix server,所以 zabbix proxy 可以在一定程度上分担了 zabbix server 的数据收集压力,从而降低了数据的采集时间、也相应的增加了 zabbix server 的监控能力。另外 zabbix proxy 也区分主动模式和被动模式,通信方式与 zabbix server主动模式和被动模式一样,区别是 zabbix proxy 由于没有 zabbix agent 的配置,所以 zabbix proxy 在主动模式下要周期性的向 zabbix server 申请获取 zabbix agent的监控项信息,zabbix proxy 在被动模式下也是等待 zabbix server 的连接并接受 zabbix server 发送的监控项指令,然后再由 zabbix proxy 向 zabbix agent发起请求获取数据。


zabbix proxy MYSQL用于临时存储收集的信息资源数据


二.Zabbix proxy 和 Zabbix server 对比

对比表格:

Zabbix-(5)-​Proxy主动被动部署


三. Zabbix proxy 部署与使用

zabbix proxy 版本选择

在使用 proxy 做分布式监控时 zabbix proxy 的大版本必须要和 zabbix server版本一致,否则会导致出现 zabbix server 与 zabbix proxy 不兼容问题,出现类似以下的错误提示:

 proxy "zabbix-proxy-active" protocol version x.x differs from server version x.x

安装 proxy

官方安装参考手册:

https://www.zabbix.com/documentation/4.0/zh/manual/installation/install

ubuntu18.04系统

主机准备:

Zabbix-(5)-​Proxy主动被动部署

Ubuntu 1804 node1 apt安装

这里有两种方式安装对应的应用,这里在主动模式下用apt安装 在被动模式下用编译安装

root@Zabbix-proxy-active:~# wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-3+bionic_all.deb
root@Zabbix-proxy-active:~# dpkg -i zabbix-release_4.0-3+bionic_all.deb
root@Zabbix-proxy-active:~# apt update

上面的源在国外,可能比较慢,所以可以替换成阿里云的源

阿里开源参考

https://developer.aliyun.com/mirror/

阿里云镜像源

https://mirrors.aliyun.com/zabbix/


root@Zabbix-proxy-active:~# vim /etc/apt/sources.list.d/zabbix.list 
#deb http://repo.zabbix.com/zabbix/4.0/ubuntu bionic main
#deb-src http://repo.zabbix.com/zabbix/4.0/ubuntu bionic main
deb http://mirrors.aliyun.com/zabbix/zabbix/4.0/ubuntu bionic main
deb-src http://mirrors.aliyun.com/zabbix/zabbix/4.0/ubuntu bionic main
root@Zabbix-proxy-active:~# apt update 
Get:1 http://mirrors.aliyun.com/zabbix/zabbix/4.0/ubuntu bionic InRelease [7,096 B]
Get:2 http://mirrors.aliyun.com/zabbix/zabbix/4.0/ubuntu bionic/main Sources [1,182 B]                                              
Get:3 http://mirrors.aliyun.com/zabbix/zabbix/4.0/ubuntu bionic/main amd64 Packages [2,683 B]                                       
Get:4 http://mirrors.aliyun.com/zabbix/zabbix/4.0/ubuntu bionic/main i386 Packages [2,684 B]                                        
Hit:5 http://security.ubuntu.com/ubuntu bionic-security InRelease                                                             
Hit:6 http://us.archive.ubuntu.com/ubuntu bionic InRelease                      
Hit:7 http://us.archive.ubuntu.com/ubuntu bionic-updates InRelease
Hit:8 http://us.archive.ubuntu.com/ubuntu bionic-backports InRelease
Fetched 13.6 kB in 2s (6,013 B/s)
Reading package lists... Done
Building dependency tree       
Reading state information... Done
251 packages can be upgraded. Run 'apt list --upgradable' to see them.

可以看到上面的链接是到了阿里云上面

查看并且安装proxy-mysql

root@Zabbix-proxy-active:~# apt-cache madison zabbix-proxy-mysql
zabbix-proxy-mysql | 1:4.0.20-1+bionic | http://mirrors.aliyun.com/zabbix/zabbix/4.0/ubuntu bionic/main amd64 Packages
zabbix-proxy-mysql | 1:3.0.12+dfsg-1 | http://us.archive.ubuntu.com/ubuntu bionic/universe amd64 Packages
    zabbix | 1:4.0.20-1+bionic | http://mirrors.aliyun.com/zabbix/zabbix/4.0/ubuntu bionic/main Sources

root@Zabbix-proxy-active:~# apt install zabbix-proxy-mysql -y

准备数据库

Zabbix-(5)-​Proxy主动被动部署

这里创建对应的主动和被动代理的数据库名称以及用户和密码。

root@Mysql-master:~# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 789
Server version: 5.7.29-0ubuntu0.18.04.1 (Ubuntu)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> CREATE DATABASE zabbix_proxy_active CHARACTER SET UTF8 COLLATE UTF8_BIN;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON zabbix_proxy_active.* TO proxy@'172.20.32.%' IDENTIFIED BY '123456';
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> CREATE DATABASE zabbix_proxy_passive CHARACTER SET UTF8 COLLATE UTF8_BIN;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON zabbix_proxy_passive.* TO kaivi@'172.20.32.%' IDENTIFIED BY '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> 

Ubuntu 1804 node2 编译安装

编译安装 zabbix proxy 时直接使用 zabbix 的源码包,通过指定编译参数来编译 proxy。

root@Zabbix-proxy-passive:~# cd /usr/local/src/
root@Zabbix-proxy-passive:/usr/local/src# rz -E
rz waiting to receive.
root@Zabbix-proxy-passive:/usr/local/src# ll
total 16820
drwxr-xr-x  2 root root     4096 Apr 30 23:25 ./
drwxr-xr-x 10 root root     4096 Oct 26  2019 ../
-rw-r--r--  1 root root 17215217 Apr 29 13:41 zabbix-4.0.20.tar.gz
root@Zabbix-proxy-passive:/usr/local/src# tar xf zabbix-4.0.20.tar.gz 
root@Zabbix-proxy-passive:/usr/local/src# cd zabbix-4.0.20/
#解决数据库依赖关系
root@Zabbix-proxy-passive:/usr/local/src/zabbix-4.0.20# apt install libmysqld-dev libmysqlclient-dev libxml2-dev libxml2 snmp libsnmp-dev libevent-dev curl libcurl4-openssl-dev -y 
#编译安装
root@Zabbix-proxy-passive:/usr/local/src/zabbix-4.0.20# ./configure --prefix=/apps/zabbix_proxy  --enable-proxy --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --enable-java
......
checking for pthread.h... (cached) yes
checking for process shared libpthread support... yes
checking for javac... no
configure: error: Unable to find "javac" executable in path 
#因为--enable-java参数所以需要解决Java依赖
root@Zabbix-proxy-passive:/usr/local/src/zabbix-4.0.20# apt install openjdk-8-jdk -y

root@Zabbix-proxy-passive:/usr/local/src/zabbix-4.0.20# ./configure --prefix=/apps/zabbix_proxy  --enable-proxy --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --enable-java

root@Zabbix-proxy-passive:/usr/local/src/zabbix-4.0.20# make install
root@Zabbix-proxy-passive:/usr/local/src/zabbix-4.0.20# ll /apps/zabbix_proxy/
total 28
drwxr-xr-x 7 root root 4096 May  1 01:04 ./
drwxr-xr-x 3 root root 4096 May  1 01:04 ../
drwxr-xr-x 2 root root 4096 May  1 01:04 bin/
drwxr-xr-x 4 root root 4096 May  1 01:04 etc/
drwxr-xr-x 3 root root 4096 May  1 01:04 lib/
drwxr-xr-x 3 root root 4096 May  1 01:04 sbin/
drwxr-xr-x 4 root root 4096 May  1 01:04 share/

将 proxy 所需的导入数据库

在机器172.20.32.103中测试是否可以连到远程数据库

root@Zabbix-proxy-passive:/usr/local/src/zabbix-4.0.20# mysql -ukaivi -p123456 -h172.20.32.104
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 897
Server version: 5.7.29-0ubuntu0.18.04.1 (Ubuntu)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+----------------------+
| Database             |
+----------------------+
| information_schema   |
| zabbix_proxy_passive |
+----------------------+
2 rows in set (0.00 sec)

mysql>

导入数据
这里只需要导入数据schema.sql 即可

root@Zabbix-proxy-passive:/usr/local/src/zabbix-4.0.20# pwd
/usr/local/src/zabbix-4.0.20
root@Zabbix-proxy-passive:/usr/local/src/zabbix-4.0.20# mysql -ukaivi -p123456 -h172.20.32.104  zabbix_proxy_passive < database/mysql/schema.sql 
mysql: [Warning] Using a password on the command line interface can be insecure.

root@Zabbix-proxy-passive:/usr/local/src/zabbix-4.0.20
root@Zabbix-proxy-passive:/usr/local/src/zabbix-4.0.20# mysql -ukaivi -p123456 -h172.20.32.104  zabbix_proxy_passive 
mysql: [Warning] Using a password on the command line interface can be insecure.
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 937
Server version: 5.7.29-0ubuntu0.18.04.1 (Ubuntu)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show tables;
+--------------------------------+
| Tables_in_zabbix_proxy_passive |
+--------------------------------+
| acknowledges                   |
| actions                        |
| alerts                         |
| application_discovery          |
| application_prototype          |
| application_template           |
| applications                   |
......
| triggers                       |
| users                          |
| users_groups                   |
| usrgrp                         |
| valuemaps                      |
| widget                         |
| widget_field                   |
+--------------------------------+
144 rows in set (0.00 sec)

编写 proxy 的启动文件

主动模式是用apt安装的proxy。把主动模式下的启动文件拷贝到被动模式下

root@Zabbix-proxy-active:~# ll /lib/systemd/system/zabbix-proxy.service 
-rw-r--r-- 1 root root 491 Dec 18 18:46 /lib/systemd/system/zabbix-proxy.service
root@Zabbix-proxy-active:~# scp /lib/systemd/system/zabbix-proxy.service 172.20.32.103:/lib/systemd/system/zabbix-proxy.service
The authenticity of host '172.20.32.103 (172.20.32.103)' can't be established.
ECDSA key fingerprint is SHA256:0ze4VLdSnOsoO+pl/Hj+Ln8kc5lPyF1En6W6MEV22jM.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '
172.20.32.103' (ECDSA) to the list of known hosts.
[email protected]'
s password: 
zabbix-proxy.service                                                                               100%  491   762.0KB/s   00:00    
root@Zabbix-proxy-active:~#

编辑启动文件

root@Zabbix-proxy-passive:/usr/local/src/zabbix-4.0.20# vim /lib/systemd/system/zabbix-proxy.service
root@Zabbix-proxy-passive:/usr/local/src/zabbix-4.0.20# cat /lib/systemd/system/zabbix-proxy.service
[Unit]
Description=Zabbix Proxy
After=syslog.target
After=network.target
#After=mysql.service
#After=mysqld.service
#After=mariadb.service

[Service]
Environment="CONFFILE=/apps/zabbix_proxy/etc/zabbix_proxy.conf"
EnvironmentFile=-/etc/default/zabbix-proxy
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_proxy.pid
KillMode=control-group
ExecStart=/apps/zabbix_proxy/sbin/zabbix_proxy -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeoutSec=infinity

[Install]
WantedBy=multi-user.target


root@Zabbix-proxy-passive:/usr/local/src/zabbix-4.0.20# useradd zabbix
root@Zabbix-proxy-passive:/usr/local/src/zabbix-4.0.20# chown zabbix.zabbix /apps/zabbix_proxy/ -R

配置被动模式的 proxy

配置并使用被动模式(Passive Proxy Mode)的 zabbix proxy 收集 zabbix agent 监控数据。

zabbix server        : 172.20.32.101
zabbix proxy passive : 172.20.32.103
web server           : 172.20.32.104

修改配置文件

root@Zabbix-proxy-passive:/usr/local/src/zabbix-4.0.20# vim /apps/zabbix_proxy/etc/zabbix_proxy.conf

# 注意,配置文件的选项后接注释会报错,注释从头开始
root@Zabbix-proxy-passive:/usr/local/src/zabbix-4.0.20# grep "^[a-Z]" /apps/zabbix_proxy/etc/zabbix_proxy.conf
ProxyMode=1                            # 0为主动,1为被动
Server=172.20.32.101                   # zabbix server服务器的地址或主机名
Hostname=kaivi-zabbix-proxy-passive    # 代理服务器名称,需要与zabbix server添加代理时候的 proxy name是一致的!
ListenPort=10051                       # zabbix proxy监听端口
LogFile=/tmp/zabbix_proxy.log
EnableRemoteCommands=1                 # 允许zabbix server执行远程命令
PidFile=/tmp/zabbix_proxy.pid
DBHost=172.20.32.104
DBName=zabbix_proxy_passive
DBUser=kaivi
DBPassword=123456
DBPort=3306
ProxyLocalBuffer=720                   # 已经提交到zabbix server的数据保留时间
ProxyOfflineBuffer=720                 # 未提交到zabbix server的时间保留时间
ConfigFrequency=5                      # 一般设置较长,此处5秒是为了看效果 一般300s
StartPollers=10                        # 启动的数据采集器数量
JavaGateway=172.20.32.102              # java gateway服务器地址,当需要监控java的时候必须配置否则监控不到数据
JavaGatewayPort=10052
StartJavaPollers=10
CacheSize=16M                          # 保存监控项而占用的最大内存
HistoryCacheSize=128M                  # 保存监控历史数据占用的最大内存
HistoryIndexCacheSize=16M              # 历史索引缓存的大小
Timeout=30                             # 监控项超时时间,单位为秒 
LogSlowQueries=3000                    # 毫秒,多久的数据库查询会被记录到日志

启动验证启动文件

root@Zabbix-proxy-passive:/usr/local/src/zabbix-4.0.20# systemctl status zabbix-proxy
● zabbix-proxy.service - Zabbix Proxy
   Loaded: loaded (/lib/systemd/system/zabbix-proxy.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
root@Zabbix-proxy-passive:/usr/local/src/zabbix-4.0.20# systemctl daemon-reload

root@Zabbix-proxy-passive:/usr/local/src/zabbix-4.0.20# systemctl start zabbix-proxy
root@Zabbix-proxy-passive:/usr/local/src/zabbix-4.0.20# systemctl enable zabbix-proxy
Created symlink /etc/systemd/system/multi-user.target.wants/zabbix-proxy.service → /lib/systemd/system/zabbix-proxy.service.
root@Zabbix-proxy-passive:/usr/local/src/zabbix-4.0.20# systemctl status zabbix-proxy
● zabbix-proxy.service - Zabbix Proxy
   Loaded: loaded (/lib/systemd/system/zabbix-proxy.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2020-05-01 02:12:23 CST; 15s ago
 Main PID: 34160 (zabbix_proxy)
    Tasks: 37 (limit: 2216)
   CGroup: /system.slice/zabbix-proxy.service
   .......

root@Zabbix-proxy-passive:/usr/local/src/zabbix-4.0.20# tail /tmp/zabbix_proxy.log
 34104:20200501:020939.688 proxy #30 started [poller #6]
 34100:20200501:020939.688 proxy #26 started [poller #2]
 34103:20200501:020939.689 proxy #29 started [poller #5]
 34106:20200501:020939.690 proxy #32 started [poller #8]
 34102:20200501:020939.692 proxy #28 started [poller #4]
 34107:20200501:020939.693 proxy #33 started [poller #9]
 34101:20200501:020939.694 proxy #27 started [poller #3]
 34108:20200501:020939.697 proxy #34 started [poller #10]
 34109:20200501:020939.699 proxy #35 started [unreachable poller #1]
 34110:20200501:020939.700 proxy #36 started [icmp pinger #1]

在 web 界面添加被动 proxy

Zabbix-(5)-​Proxy主动被动部署

配置之文件中Hostname=zabbix_proxy_passive,最好保持一致
Zabbix-(5)-​Proxy主动被动部署
Zabbix-(5)-​Proxy主动被动部署

主机关联被动模板

这里为了效果明显,复用数据库的172.20.32.104的数据库服务器添加一个agent代理服务器
在172.20.32.104机器

#从172.20.32.102拷贝deb包到172.20.32.104
root@Zabbix-proxy-active:~# scp zabbix-release_4.0-3+bionic_all.deb 172.20.32.104:/root
The authenticity of host '172.20.32.104 (172.20.32.104)' can't be established.
ECDSA key fingerprint is SHA256:0ze4VLdSnOsoO+pl/Hj+Ln8kc5lPyF1En6W6MEV22jM.
Are you sure you want to continue connecting (yes/no)? yes   
Warning: Permanently added '
172.20.32.104' (ECDSA) to the list of known hosts.
[email protected]'
s password: 
zabbix-release_4.0-3+bionic_all.deb    
#安装
root@Mysql-master:~# dpkg -i zabbix-release_4.0-3+bionic_all.deb 
root@Mysql-master:~# apt update 

root@Mysql-master:~# apt install zabbix-agent -y
#修改配置文件
root@Mysql-master:~# vim /etc/zabbix/zabbix_agentd.conf 
root@Mysql-master:~# cat /etc/zabbix/zabbix_agentd.conf|grep ^[a-Z]
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=172.20.32.103,172.20.32.101  #指向proxy以及server用于探测是否存活
ListenPort=10050
ListenIP=0.0.0.0
StartAgents=5
ServerActive=127.0.0.1
Hostname=172.20.32.104
Include=/etc/zabbix/zabbix_agentd.d/*.conf
#启动
root@Mysql-master:~# systemctl restart zabbix-agent
root@Mysql-master:~# systemctl enable zabbix-agent
Synchronizing state of zabbix-agent.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable zabbix-agent

然后就可以配置主机

Zabbix-(5)-​Proxy主动被动部署
Zabbix-(5)-​Proxy主动被动部署

Zabbix-(5)-​Proxy主动被动部署

Zabbix-(5)-​Proxy主动被动部署

等几分钟,就可以看到变绿了:
这里可以通过自带的测试命名测试是否能够获取到数据:


root@Zabbix-server:~# /apps/zabbix_server/bin/zabbix_get -s 172.20.32.104 -p10050 -k "system.cpu.load[all,avg1]"
0.020000
Zabbix-(5)-​Proxy主动被动部署

验证监控数据

Zabbix-(5)-​Proxy主动被动部署

配置主动模式的 proxy

配置并使用主动模式(Active Proxy Mode)的 zabbix proxy 收集 zabbix agent 监控数据

zabbix server        : 172.20.32.101
zabbix proxy active  : 172.20.32.102
web server           : 172.20.32.105
root@Zabbix-proxy-active:~# /etc/zabbix/zabbix_proxy.conf
root@Zabbix-proxy-active:~# grep "^[a-Z]" /etc/zabbix/zabbix_proxy.conf
ProxyMode=0
Server=172.20.32.101
ServerPort=10051
Hostname=duanxin-zabbix-proxy-active
ListenPort=10051
LogFile=/tmp/zabbix_proxy.log
LogFileSize=0
EnableRemoteCommands=1
PidFile=/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBHost=172.20.32.104
DBName=zabbix_proxy_active
DBUser=proxy
DBPassword=123456
DBPort=3306
ProxyLocalBuffer=720
ProxyOfflineBuffer=720
HeartbeatFrequency=30
ConfigFrequency=5
StartPollers=10
JavaGateway=172.20.32.102
JavaGatewayPort=10052
StartJavaPollers=10
CacheSize=16M
HistoryCacheSize=128M
HistoryIndexCacheSize=16M
Timeout=30
LogSlowQueries=3000

导入数据到 proxy 的数据库

在机器172.20.32.103中测试是否能够正常连接数据库

root@Zabbix-proxy-active:~# mysql -uproxy -p123456 -h172.20.32.104
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 113
Server version: 5.7.29-0ubuntu0.18.04.1 (Ubuntu)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> 

这里的数据库的路径以及对应的schema.sql文件和编译安装的都不一致,但是可以通过zcat和管道符的方法读到数据库中

root@Zabbix-proxy-active:~# cd /usr/share/doc/zabbix-proxy-mysql/
root@Zabbix-proxy-active:/usr/share/doc/zabbix-proxy-mysql# ll
total 48
drwxr-xr-x   2 root root  4096 Apr 30 23:58 ./
drwxr-xr-x 546 root root 20480 Apr 30 23:58 ../
-rw-r--r--   1 root root  2460 Apr 27 15:00 changelog.Debian.gz
-rw-r--r--   1 root root   980 Nov 21 20:16 copyright
-rw-r--r--   1 root root 12946 Apr 27 15:00 schema.sql.gz

root@Zabbix-proxy-active:/usr/share/doc/zabbix-proxy-mysql# zcat schema.sql.gz | mysql -uproxy -p123456 -h172.20.32.104 zabbix_proxy_active

root@Zabbix-proxy-active:/usr/share/doc/zabbix-proxy-mysql# mysql -uproxy -p123456 -h172.20.32.104 zabbix_proxy_active
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 122
Server version: 5.7.29-0ubuntu0.18.04.1 (Ubuntu)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [zabbix_proxy_active]> 
MySQL [zabbix_proxy_active]> show tables;
+-------------------------------+
| Tables_in_zabbix_proxy_active |
+-------------------------------+
| acknowledges                  |
| actions                       |
| alerts                        |
| application_discovery         |
| application_prototype         |
| application_template          |
......
| users                         |
| users_groups                  |
| usrgrp                        |
| valuemaps                     |
| widget                        |
| widget_field                  |
+-------------------------------+
144 rows in set (0.00 sec)

MySQL [zabbix_proxy_active]> 

重启proxy

root@Zabbix-proxy-active:/usr/share/doc/zabbix-proxy-mysql# cd
root@Zabbix-proxy-active:~#  systemctl restart zabbix-proxy
root@Zabbix-proxy-active:~# systemctl  enable  zabbix-proxy
Synchronizing state of zabbix-proxy.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable zabbix-proxy

root@Zabbix-proxy-active:~# tail -f /tmp/zabbix_proxy.log  #查看日志看是否报错

web 界面添加主动代理

Zabbix-(5)-​Proxy主动被动部署
Zabbix-(5)-​Proxy主动被动部署

代理地址可写可不写


Zabbix-(5)-​Proxy主动被动部署

主机关联被动模板

这里为了效果明显,复用数据库从库的172.20.32.105的slave数据库服务器添加一个agent代理服务器
在172.20.32.105机器

#从172.20.32.102拷贝deb包到172.20.32.105
root@Zabbix-proxy-active:~# scp zabbix-release_4.0-3+bionic_all.deb 172.20.32.105:/root
The authenticity of host '172.20.32.105 (172.20.32.105)' can't be established.
ECDSA key fingerprint is SHA256:0ze4VLdSnOsoO+pl/Hj+Ln8kc5lPyF1En6W6MEV22jM.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '
172.20.32.105' (ECDSA) to the list of known hosts.
[email protected]'
s password: 
zabbix-release_4.0-3+bionic_all.deb  
#安装
root@Mysql-slave:~# dpkg -i zabbix-release_4.0-3+bionic_all.deb 
root@Mysql-slave:~# apt update 

root@Mysql-slave:~# apt install zabbix-agent -y
#修改配置文件
root@Mysql-slave:~# vim /etc/zabbix/zabbix_agentd.conf 
root@Mysql-slave:~# cat /etc/zabbix/zabbix_agentd.conf|grep ^[a-Z]
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=172.20.32.102,172.20.32.101  #指向proxy以及server用于探测是否存活
ListenPort=10050
ListenIP=0.0.0.0
StartAgents=5
ServerActive=172.20.32.102  #配置主动模式代理服务器
Hostname=172.20.32.105
Include=/etc/zabbix/zabbix_agentd.d/*.conf
#重新启动
root@Mysql-slave:~# systemctl restart zabbix-agent
root@Mysql-slave:~# systemctl enable zabbix-agent
Synchronizing state of zabbix-agent.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable zabbix-agent

然后就可以配置主机

Zabbix-(5)-​Proxy主动被动部署
Zabbix-(5)-​Proxy主动被动部署

Zabbix-(5)-​Proxy主动被动部署

Zabbix-(5)-​Proxy主动被动部署

命令测试是否主动获取到数据:


root@Zabbix-server:~# /apps/zabbix_server/bin/zabbix_get -s 172.20.32.105 -p10050 -k "system.cpu.load[all,avg1]"
0.000000

稍等一下 然后最终界面:

Zabbix-(5)-​Proxy主动被动部署

验证监控数据

Zabbix-(5)-​Proxy主动被动部署

扩展

root@Zabbix-server:~# /apps/zabbix_server/bin/zabbix_get -s 172.20.32.104 -p10050 -k "agent.ping"
1
root@Zabbix-server:~# /apps/zabbix_server/bin/zabbix_get -s 172.20.32.105 -p10050 -k "agent.ping"
1
root@Zabbix-server:~# /apps/zabbix_server/bin/zabbix_get -s 172.20.32.106 -p10050 -k "agent.ping"
1
root@Zabbix-server:~# /apps/zabbix_server/bin/zabbix_get -s 172.20.32.107 -p10050 -k "agent.ping"
1

实现主动模式java-getewat代理

实现架构

Zabbix-(5)-​Proxy主动被动部署

安装java环境

主机duanxin-zabbix-proxy-active: 172.20.32.105-mysql-slave 主动模式下配置java-getewat代理
先要要web主机 172.20.32.105部署Java环境,这里就直接apt安装jdk

root@Mysql-slave:/apps# apt install openjdk-8-jdk -y
#部署tomcat,这里上传到/usr/local/src
# tar xf apache-tomcat-8.5.54.tar.gz
# ln -sv /usr/local/src/apache-tomcat-8.5.54 /apps/tomcat
root@Mysql-slave:/apps# cd /apps/
root@Mysql-slave:/apps# mkdir tomcat/webapps/myapp -p

root@Mysql-slave:/apps# vim tomcat/webapps/myapp/index.html
root@Mysql-slave:/apps# cat tomcat/webapps/myapp/index.html
mysql slave jsp for tomcat test

root@Mysql-slave:/apps# vim tomcat/bin/catalina.sh 
......
117
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=172.20.32.105"
......

#重启tomcat
root@Mysql-slave:/apps# tomcat/bin/catalina.sh  stop
root@Mysql-slave:/apps# tomcat/bin/catalina.sh  start
root@Mysql-slave:/apps# ss -ntl|grep 12345
LISTEN  0        50                           *:12345                  *:*  

访问测试页面:

Zabbix-(5)-​Proxy主动被动部署

添加主机和模板

Zabbix-(5)-​Proxy主动被动部署

Zabbix-(5)-​Proxy主动被动部署

配置Zabbix-proxy-active的zabbix_proxy

root@Zabbix-proxy-active:~# vim /etc/zabbix/zabbix_proxy.conf
......
317
### Option: JavaGateway
#       IP address (or hostname) of Zabbix Java gateway.
#       Only required if Java pollers are started.
#
# Mandatory: no
# Default:
JavaGateway=172.20.32.102

### Option: JavaGatewayPort
#       Port that Zabbix Java gateway listens on.
#
# Mandatory: no
# Range: 1024-32767
# Default:
JavaGatewayPort=10052

### Option: StartJavaPollers
#       Number of pre-forked instances of Java pollers.
#
# Mandatory: no
# Range: 0-1000
# Default:
StartJavaPollers=10
......
root@Zabbix-proxy-active:~# systemctl restart zabbix-proxy
root@Zabbix-proxy-active:~# ss -ntl|grep 10052
LISTEN   0         50                        *:10052                  *:*   
Zabbix-(5)-​Proxy主动被动部署

验证数据

root@Zabbix-proxy-active:~# netstat -tanlp|grep 172.20.32.105
tcp        0      0 172.20.32.102:10051     172.20.32.105:37169     TIME_WAIT   -                   
tcp        0      0 172.20.32.102:10051     172.20.32.105:37185     TIME_WAIT   -                   
tcp        0      0 172.20.32.102:16913     172.20.32.105:10050     TIME_WAIT   -                   
tcp        0      0 172.20.32.102:10051     172.20.32.105:37177     TIME_WAIT   -                   
tcp        0      0 172.20.32.102:10051     172.20.32.105:37163     TIME_WAIT   -                   
tcp        0      0 172.20.32.102:10051     172.20.32.105:37165     TIME_WAIT   -                   
tcp        0      0 172.20.32.102:10051     172.20.32.105:37183     TIME_WAIT   -                   
tcp        0      0 172.20.32.102:10051     172.20.32.105:37187     TIME_WAIT   -                   
tcp        0      0 172.20.32.102:10051     172.20.32.105:37167     TIME_WAIT   -                   
tcp        0      0 172.20.32.102:10051     172.20.32.105:37175     TIME_WAIT   -                   
tcp        0      0 172.20.32.102:10051     172.20.32.105:37181     TIME_WAIT   -                   
tcp        0      0 172.20.32.102:10051     172.20.32.105:37171     TIME_WAIT   -                   
tcp        0      0 172.20.32.102:10051     172.20.32.105:37179     TIME_WAIT   -                   
tcp        0      0 172.20.32.102:10051     172.20.32.105:37173     TIME_WAIT   -                   
tcp6       0      0 172.20.32.102:39953     172.20.32.105:12345     ESTABLISHED 828/java            
tcp6       0      0 172.20.32.102:48279     172.20.32.105:17694     ESTABLISHED 828/java            
tcp6       0      0 172.20.32.102:48163     172.20.32.105:17694     TIME_WAIT   -                   
tcp6       0      0 172.20.32.102:39715     172.20.32.105:12345     TIME_WAIT   -                   
tcp6       0      0 172.20.32.102:48041     172.20.32.105:17694     TIME_WAIT   -                   
tcp6       0      0 172.20.32.102:48165     172.20.32.105:17694     TIME_WAIT   -                   
tcp6       0      0 172.20.32.102:39837     172.20.32.105:12345     TIME_WAIT   -    
root@Mysql-slave:~# netstat -tanlp|grep 172.20.32.102
tcp        0      0 172.20.32.105:10050     172.20.32.102:17839     TIME_WAIT   -                   
tcp        0      0 172.20.32.105:10050     172.20.32.102:17871     TIME_WAIT   -                   
tcp        0      0 172.20.32.105:10050     172.20.32.102:17903     TIME_WAIT   -                   
tcp        0      0 172.20.32.105:10050     172.20.32.102:17887     TIME_WAIT   -                   
tcp        0      0 172.20.32.105:10050     172.20.32.102:17855     TIME_WAIT   -                   
tcp        0      0 172.20.32.105:10050     172.20.32.102:17741     TIME_WAIT   -                   
tcp        0      0 172.20.32.105:10050     172.20.32.102:17783     TIME_WAIT   -                   
tcp        0      0 172.20.32.105:10050     172.20.32.102:17891     TIME_WAIT   -                   
tcp6       0      0 172.20.32.105:12345     172.20.32.102:40773     ESTABLISHED 12370/java    
#  172.20.32.105:12345 端口连接
tcp6       0      0 172.20.32.105:17694     172.20.32.102:49099     ESTABLISHED 12370/java 
......




推荐阅读: