文档名称 Zabbix双机房集群部署方案
版本编号 V1.0
日期 修改章节 文档类型 修改类型 修改人
2021/06/09 安装部署 C 余亮亮
  • 修改类型分为 C - CREATED M - MODIFIED D - DELETED

1、部署架构

Zabbix部署方式有三种,分别为“从源码包安装”、“从二进制包安装”、“从容器安装”,本文档采用源码部署的方式。部署基于分布式的前后端分离架构。

1.1、环境准备

1.1.1、硬件环境

参考配置,可根据实际情况调整。

角色 CPU 内存 硬盘 节点数量 部署描述
Zabbix-Server 12Core 64G 100G 2 钦州主节点,临港备节点
Zabbix-Proxy 8Core 24G 100G N
Zabbix-Web+Nginx 4Core 8G 100G 2 钦州主节点,临港备节点
Zabbix-DB

1.1.2、软件环境
软件 版本
操作系统 CentOS Linux release 7.9.2009 (Core)
Zabbix-Server zabbix-5.0.3
Zabbix-Agent zabbix_agent-5.0.3
Nginx nginx-1.16.1
PHP php-7.2.24
数据库 MySQL 5.7.33

1.1.3、操作系统初始化配置
  • 关闭防火墙
  1. systemctl stop firewalld
  2. systemctl disable firewalld
  • 关闭selinux
  1. sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久
  2. setenfore 0 # 临时

1.2、部署架构图

image-20210618160536791.png
注:

  • Zabbix Web部署Nginx和zabbix静态资源。
  • 钦州和临港zabbix.conf.php文件中ZBX_SERVER地址指向各自机房的Zabbix Server地址。
  • Zabbix Server启动后被动模式即会工作,因此同时只可启动一个机房的Zabbix Server。
  • 主从切换时,停止主机房Zabbix Server,切换Nginx配置文件及zabbix.conf.php文件中ZBX_SERVER地址,启动从机房Zabbix Server,完成Zabbix Server主从切换。

1.3、获取安装包

1.3.1、Zabbix Server/Proxy下载
  1. $ wget https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.12.tar.gz

1.3.2、Zabbix Agents下载
  1. $ wget https://cdn.zabbix.com/zabbix/binaries/stable/5.0/5.0.12/zabbix_agent-5.0.12-linux-3.0-amd64-static.tar.gz

1.3.3、PHP下载
  1. $ wget https://www.php.net/distributions/php-7.4.20.tar.gz

1.3.4、Nginx下载
  1. $ wget http://nginx.org/download/nginx-1.16.1.tar.gz

1.4、软件安装规范

软件安装遵循两个准则:

  • 权限最小化
  • 结构规范化

本环境按照以下规范统一安装:

  • 启动用户:
    • Zabbix Server、Zabbix Proxy、Zabbix Agent、PHP均使用app用户启动
    • Nginx默认端口为80,1024以下的端口需使用超级管理员启动,本文档使用8080端口app用户启动,如使用80端口,可使用root用户启动。
  • 目录结构
    • 安装包路径:$HOME/software
    • Zabbix Server安装路径:$HOME/zabbix_server
    • PHP安装路径:$HOME/php
    • Zabbix Proxy安装路径:$HOME/zabbix_proxy
    • Zabbix Agent安装路径:$HOME/zabbix_agent
    • Nginx安装路径:$HOME/nginx
    • Zabbix日志路径:$HOME/logs/zabbixlogs
    • PHP日志路径:$HOME/logs/phplogs
    • Nginx日志路径:$HOME/logs/nginxlogs

2、数据库主从环境部署

数据库采用MHA集群部署,具体文档参考“MySQL5.7_MHA集群部署手册”

3、从源码包安装PHP

3.1、安装依赖环境

  1. $ yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel libxml2 libxml-devel curl-devel mysql-devel libxml2-devel net-snmp-devel libevent-devel libcurl-devel unixODBC-devel jpeglib-devel libpng libpng-devel freetype-devel libicu-devel openldap-devel openldap libjpeg libjpeg-devel libssh2-devel sqlite-devel oniguruma-devel

3.2、配置php环境

  1. $ cp -frp /usr/lib64/libldap* /usr/lib
  2. $ cd /data/app/software && tar zxvf php-7.2.30.tar.gz
  3. $ cd /data/app/software/php-7.2.30
  4. $ ./configure --prefix=/data/app/php \
  5. --with-config-file-path=/data/app/php/etc \
  6. --enable-fpm \
  7. --with-fpm-user=app \
  8. --with-fpm-group=app \
  9. --enable-mysqlnd \
  10. --with-mysqli=mysqlnd \
  11. --with-pdo-mysql=mysqlnd \
  12. --enable-mysqlnd-compression-support \
  13. --with-iconv-dir \
  14. --with-freetype-dir \
  15. --with-jpeg-dir \
  16. --with-png-dir \
  17. --with-zlib \
  18. --with-libxml-dir \
  19. --enable-xml \
  20. --disable-rpath \
  21. --enable-bcmath \
  22. --enable-shmop \
  23. --enable-sysvsem \
  24. --enable-inline-optimization \
  25. --with-curl \
  26. --enable-mbregex \
  27. --enable-mbstring \
  28. --enable-intl \
  29. --with-libmbfl \
  30. --enable-ftp \
  31. --with-gd \
  32. --with-openssl \
  33. --with-mhash \
  34. --enable-pcntl \
  35. --enable-sockets \
  36. --with-xmlrpc \
  37. --enable-zip \
  38. --enable-soap \
  39. --with-gettext \
  40. --disable-fileinfo \
  41. --enable-opcache \
  42. --with-pear \
  43. --enable-maintainer-zts \
  44. --with-ldap=shared \
  45. --without-gdbm

3.3、编译安装

  1. $ make
  2. $ make install

3.4、修改php-fpm.conf

  1. $ cp /data/app/app/php/etc/php-fpm.conf.default /data/app/app/php/etc/php-fpm.conf
  2. [global]
  3. daemonize = yes
  4. # 修改日志配置
  5. pid = /data/app/app/logs/phplogs/php-fpm.pid
  6. error_log = /data/app/app/logs/phplogs/php-fpm.log
  7. include=/data/app/app/php/etc/php-fpm.d/*.conf

3.5、修改php.ini

$ cp /data/app/app/software/php-7.2.30/php.ini-production  /data/app/app/php/etc/php.ini
# 修改以下参数
sed -i 's/post_max_size = 8M/post_max_size = 32M/g' php.ini
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 50M/g' php.ini
sed -i 's/;date.timezone =/date.timezone =Asia\/Shanghai/g' php.ini
sed -i 's/max_execution_time = 30/max_execution_time = 600/g' php.ini
sed -i 's/max_input_time = 60/max_input_time = 600/g' php.ini
sed -i 's/memory_limit = 128M/memory_limit = 256M/g' php.ini
sed -i 's/;extension=ldap/extension=ldap/g' php.ini

3.6、增加zabbix的php配置

$ cd /data/app/app/php/etc/php-fpm.d
$ cat > zabbix.conf1 << EOF
[zabbix]
user = app
group = app

listen = /data/app/app/php/var/run/php-zabbix.sock
;listen.acl_users = app,nginx
listen.allowed_clients = 127.0.0.1

pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35

php_value[session.save_handler] = files
php_value[session.save_path]    = /data/app/app/php/var/run/session/

php_value[max_execution_time] = 300
php_value[memory_limit] = 128M
php_value[post_max_size] = 16M
php_value[upload_max_filesize] = 2M
php_value[max_input_time] = 300
php_value[max_input_vars] = 10000
php_value[date.timezone] = Asia/Shanghai
EOF

3.7、添加PHP启停脚本

vim /data/app/app/php/sbin/php_tools.sh
#!/usr/bin/env bash
# @Time    : 2021/06/16
# @File    : php_tools.sh
# create by Larry Yu <larry@yull.cc>
# description: PHP Server

RETVAL=0
prog="PHP Server"
PHP_BIN="/data/app/app/php/sbin/php-fpm"

if [ ! -x ${PHP_BIN} ];then
  echo "${PHP_BIN} not installed!"
  exit 3
fi

start() {
  echo "Starting ${prog}"
  ${PHP_BIN}
  RETVAL=$?
  [ $RETVAL -eq 0 ] && echo "${prog} start success."
}

stop() {
  echo "Stoping ${prog}"
  /bin/pkill -9 php-fpm
  RETVAL=$?
  [ $RETVAL -eq 0 ] && echo "${prog} stop success."
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  reload|restart)
    stop
    sleep 3
    start
    ;;
  *)
    echo "Usage: $0 {start|stop|reload|restart}"
    exit 1
esac

exit $RETVAL

# 启动服务
sh php_tools.sh start
# 停止服务
sh php_tools.sh stop
# 重启服务
sh php_tools.sh restart | sh php_tools.sh reload

4、从源码包安装Zabbix Server

4.1、编译安装Server

# 编译参数默认按照官网推荐
$ tar -xvf zabbix-5.0.12.tar.gz 
$ cd zabbix-5.0.12
$ ./configure --prefix=/data/app/app/zabbix_server --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
$ make && make install

4.2、配置Zabbix Server数据库

# 建库、建用户
# mysql -uroot -p
mysql> create database dbzabbix5 character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)

mysql> create user zabbix50@'%' identified by 'Zabbix@50';  
Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on dbzabbix5.* to 'zabbix50'@'%';
Query OK, 0 rows affected (0.00 sec)

mysql> quit;
Bye
# 导入数据库表和基础数据
$ cd /data/app/app/software/zabbix-5.0.12/database/mysql
$ mysql -uzabbix50 -pZabbix@50 dbzabbix5 < schema.sql
$ mysql -uzabbix50 -pZabbix@50 dbzabbix5 < images.sql
$ mysql -uzabbix50 -pZabbix@50 dbzabbix5 < data.sql

4.3、配置Zabbix Server

4.3.1、Zabbix Server配置文件优化
vim /data/app/app/zabbix_server/etc/zabbix_server.conf
# 修改以下配置
LogFile=/data/app/app/logs/zabbixlogs/zabbix_server.log
LogFileSize=0
PidFile=/data/app/app/zabbix_server/run/zabbix_server.pid
SocketDir=/data/app/app/zabbix_server/run
DBHost=10.11.32.24
DBName=dbzabbix5
DBUser=zabbix50
DBPassword=Zabbix@50
DBPort=3306
CacheSize=256M # 存储主机、监控项、触发器数据的共享内存大小.
HistoryIndexCacheSize=10M  # 可以根据监控项数量*1000/1024/1024来计算
SNMPTrapperFile=/data/app/app/logs/zabbixlogs/snmptrap.log
Timeout=4
AlertScriptsPath=/data/app/app/zabbix_server/zbx_script/
ExternalScripts=/data/app/app/zabbix_server/externalscripts
FpingLocation=/usr/sbin/fping
SNMPTrapperFile=/tmp/zabbix_traps.tmp
StartSNMPTrapper=1
ListenIP=0.0.0.0
Timeout=10
FpingLocation=/usr/sbin/fping
Include=/data/app/app/zabbix_server/etc/zabbix_server.conf.d/*.conf

4.3.3、修改数据库最大连接数
# 因zabbix server启动进程较多,mysql默认最大连接数151,因此需修改
mysql> show variables like "max_connections";
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 151   |
+-----------------+-------+
1 row in set (0.00 sec)

mysql> set GLOBAL max_connections=1000;
Query OK, 0 rows affected (0.00 sec)

4.3.4、增加Zabbix Server启停脚本
# 停止脚本
vim /data/app/app/zabbix/sbin/zabbix_tools.sh 
#!/usr/bin/env bash
# @Time    : 2021/06/16
# @File    : zabbix_tools.sh
# create by Larry Yu <larry@yull.cc>
# description: Zabbix Monitoring Agent

RETVAL=0
prog="Zabbix Server"
ZABBIX_BIN="/data/app/app/zabbix_server/sbin/zabbix_server"

if [ ! -x ${ZABBIX_BIN} ];then
  echo "${ZABBIX_BIN} not installed!"
  exit 3
fi

start() {
  echo "Starting ${prog}"
  ${ZABBIX_BIN} -c /data/app/app/zabbix_server/etc/zabbix_server.conf
  RETVAL=$?
  [ $RETVAL -eq 0 ] && echo "${prog} start success."
}

stop() {
  echo -n "Stoping ${prog}"
  ps -ef| grep zabbix_server |grep -Ev "grep|zabbix_tools" |awk {'print $2'} |xargs kill -9
  RETVAL=$?
  [ $RETVAL -eq 0 ] && echo "${prog} stop success."
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  reload|restart)
    stop
    sleep 3
    start
    ;;
  *)
    echo "Usage: $0 {start|stop|reload|restart}"
    exit 1
esac

exit $RETVAL

# 启动服务
sh zabbix_tools.sh start
# 停止服务
sh zabbix_tools.sh stop
# 重启服务
sh zabbix_tools.sh restart | sh zabbix_tools.sh reload

5、Nginx安装及Zabbix Web配置

5.1、从源码包安装nginx

$ tar -xvf nginx-1.16.1.tar.gz 
$ ./configure --user=app --group=app --prefix=/data/app/app/nginx --with-http_ssl_module  --with-http_stub_status_module --with-stream --with-http_gzip_static_module --with-http_sub_module
$ make && make install

5.2、导入Zabbix Web静态资源

cp -r /data/app/app/software/zabbix-5.0.12/ui/* /data/app/app/nginx/html/

5.3、修改Nginx配置

# nginx.conf调整
cat > /data/app/app/nginx/conf/nginx.conf <<EOF
worker_processes  auto;

events {
    use epoll;
    worker_connections  65535;
    multi_accept on;
}


http {
    include       mime.types;
    default_type  application/octet-stream;


    log_format main     '$remote_addr $remote_port $host $remote_user [$time_local] "$request" '
                        '$status $body_bytes_sent "$http_referer" '
                        '"$http_user_agent" "$http_x_forwarded_for" "$upstream_response_time" "$upstream_addr" "$upstream_status" "$request_time"';

    sendfile        on;

    server_tokens off;
    keepalive_timeout  65;

    gzip  on;
    server_names_hash_bucket_size 64;

    client_header_buffer_size 16k;
    large_client_header_buffers 16 32k;
    client_header_timeout 15;
    client_body_timeout 60;
    send_timeout 15;
    reset_timedout_connection on;
    client_body_buffer_size 128k;

    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For  $remote_addr;

    include vhost.d/*.conf;
}
EOF

# 增加zabbix.conf配置
mkdir vhost.d
cat > zabbix.conf << EOF
server {
    server_name 10.11.32.37;
    listen  8080;

    access_log /data/app/app/logs/nginxlogs/zabbix.access.log main;
    error_log  /data/app/app/logs/nginxlogs/zabbix.error.log;
    root           html;
    index index.php index.html;

    location ~ \.php$ {
        fastcgi_pass   unix:/data/app/app/php/var/run/php-zabbix.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}
EOF

5.4、启停Nginx

# 启动
/data/app/app/nginx/sbin/nginx 
# 重载
/data/app/app/nginx/sbin/nginx  -s reload
# 停止Nginx
/data/app/app/nginx/sbin/nginx  -s stop

5.5、配置Zabbix Web

浏览器访问http://ZABBIXWEB_IP:8080/zabbix,点击Next直至完成。即可登录Zabbix,默认用户名密码为:Admin/zabbix

5.5.1、登录后提示Server未启动

234.PNG
解决方案:

vim /data/app/app/nginx/html/conf/zabbix.conf.php

修改ZBX_SERVER为zabbix server ip:
$ZBX_SERVER                             = '10.11.32.37';

5.5.2、最新数据图标中文乱码

123.png
解决方案:从window中复制字体,并上传至服务器修改字体

cd /data/app/app/nginx/html/assets/fonts
mv DejaVuSans.ttf DejaVuSans.ttf.bak
ln -s graphfont.ttf DejaVuSans.ttf

6、从源码包安装Zabbix Proxy

Zabbix Server及Zabbix Proxy都必须要数据库,且不可是同一个数据库,因Zabbix Proxy仅作为数据临时存储,因此Zabbix Proxy和数据库部署在同一台服务器。

6.1、Zabbix Proxy数据库安装

$ yum -y install mariadb mariadb-server
$ systemctl start mariadb
$ systemctl enable mariadb

$ mysql_secure_installation  # 初始化配置
Enter current password for root (enter for none):<–初次运行直接回车
Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
New password: <– 设置root用户的密码
Re-enter new password: <– 再输入一次你设置的密码
Remove anonymous users? [Y/n] <– 是否删除匿名用户
Disallow root login remotely? [Y/n] <–是否禁止root远程登录
Remove test database and access to it? [Y/n] <– 是否删除test数据库
Reload privilege tables now? [Y/n] <– 是否重新加载权限表

6.2、配置数据库字符集

vi /etc/my.cnf
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci' 
init_connect='SET NAMES utf8' 
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake

vi /etc/my.cnf.d/client.cnf
[client]
default-character-set=utf8

vi /etc/my.cnf.d/mysql-clients.cnf
[mysql]
default-character-set=utf8

# 配置后重启mariadb
systemctl restart mariadb

6.3、创建数据库用户

mysql>  create database zabbix character set utf8;
Query OK, 1 row affected (0.22 sec)
mysql>  grant all privileges on zabbix.* to zabbix@'%' identified by 'zabbix';
Query OK, 0 rows affected (0.02 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

6.4、proxy依赖环境安装

yum install -y net-snmp-devel libssh2-devel libevent-devel

6.5、编译安装Zabbix Proxy

cd zabbix-5.0.12/
./configure --prefix=/data/app/app/zabbix_proxy --enable-proxy --with-net-snmp --with-mysql --with-ssh2  --enable-agent
make && make insatll

6.6、修改zabbix_proxy.conf

Server=10.11.32.37
Hostname=10.11.20.117
LogFile=/data/app/app/logs/zabbixlogs/zabbix_proxy.log
PidFile=data/app/app/logs/zabbixlogs/zabbix_proxy.pid
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=Zabbix@50
DBPort=3306

6.7、zabbix proxy启停脚本

#!/usr/bin/env bash
# @Time    : 2021/06/16
# @File    : zabbix_tools.sh
# create by Larry Yu <larry@yull.cc>
# description: Zabbix Monitoring Proxy

RETVAL=0
prog="Zabbix Proxy"
ZABBIX_BIN="/data/app/app/zabbix_proxy/sbin/zabbix_proxy"

if [ ! -x ${ZABBIX_BIN} ];then
  echo "${ZABBIX_BIN} not installed!"
  exit 3
fi

start() {
  echo "Starting ${prog}"
  ${ZABBIX_BIN} -c /data/app/app/zabbix_proxy/etc/zabbix_proxy.conf
  RETVAL=$?
  [ $RETVAL -eq 0 ] && echo "${prog} start success."
}

stop() {
  echo "Stoping ${prog}"
  ps -ef| grep zabbix_proxy |grep -Ev "grep|zabbix_tools" |awk {'print $2'} |xargs kill -9
  RETVAL=$?
  [ $RETVAL -eq 0 ] && echo "${prog} stop success."
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  reload|restart)
    stop
    sleep 3
    start
    ;;
  *)
    echo "Usage: $0 {start|stop|reload|restart}"
    exit 1
esac

exit $RETVAL


# 启动服务
sh zabbix_tools.sh start
# 停止服务
sh zabbix_tools.sh stop
# 重启服务
sh zabbix_tools.sh restart | sh zabbix_tools.sh reload

7、从源码包安装Zabbix Agent

7.1、前置检查

# 查看内核版本
$ uname  -r
3.10.0-327.el7.x86_64
# 下载对应安装包
$ wget https://cdn.zabbix.com/zabbix/binaries/stable/5.0/5.0.12/zabbix_agent-5.0.12-linux-3.0-amd64-static.tar.gz  # Ceonts
$ https://cdn.zabbix.com/zabbix/binaries/stable/5.0/5.0.10/zabbix_agent-5.0.12-windows-amd64.zip  # windows

7.2、安装Zabbix Agent

# 创建zabbix agent目录
$ mkdir /data/app/app/zabbix_agent
# 解压zabbix agent
$ tar -xvf zabbix_agent-5.0.12-linux-3.0-amd64-static.tar.gz -d /data/app/app/zabbix_agent

7.3、修改配置文件

$ cat > zabbix_agentd.conf << EOF
PidFile=/data/app/app/zabbix_agent/run/zabbix_agentd.pid
LogFile=/data/app/app/logs/zabbixlogs/zabbix_agentd.log
Server=10.11.32.37
ServerActive=10.11.32.37
Hostname=10.11.32.37
EOF

7.4、启停服务

vim /data/app/app/zabbix_agent/sbin/zabbix_tools.sh 
#!/usr/bin/env bash
# @Time    : 2021/06/16
# @File    : zabbix_agent.py
# create by Larry Yu <larry@yull.cc>
# description: Zabbix Monitoring Agent

RETVAL=0
prog="Zabbix Agent"
ZABBIX_BIN="/data/app/app/zabbix_agent/sbin/zabbix_agentd"

if [ ! -x ${ZABBIX_BIN} ];then
  echo "${ZABBIX_BIN} not installed!"
  exit 5
fi

start() {
  echo "Starting ${prog}"
  ${ZABBIX_BIN} -c /data/app/app/zabbix_agent/conf/zabbix_agentd.conf
  RETVAL=$?
  [ $RETVAL -eq 0 ] && echo "${prog} start success."
}

stop() {
  echo -n "Stoping ${prog}"
  ps -ef| grep zabbix_agent |grep -Ev "grep|zabbix_tools" |awk {'print $2'} |xargs kill -9
  RETVAL=$?
  [ $RETVAL -eq 0 ] && echo "${prog} stop success."
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  reload|restart)
    stop
    sleep 3
    start
    ;;
  *)
    echo "Usage: $0 {start|stop|reload|restart}"
    exit 1
esac

exit $RETVAL

# 启动服务
sh zabbix_tools.sh start
# 停止服务
sh zabbix_tools.sh stop
# 重启服务
sh zabbix_tools.sh restart | sh zabbix_tools.sh reload

7.5、批量Agent部署

批量部署Agent通过Python脚本解析Excel的方式进行,支持批量源码安装Zabbix Agent。

7.5.1、依赖包安装

需要Python 3以上版本,建议Python 3.7.

pip3 install xlrd
pip3 install pyzabbix
pip3 install paramiko

7.5.2、脚本使用说明
  • 在Excel表格中生成待安装信息
    主机组允许为空,为空将默认添加到Linux Servers主机组
    代理IP允许为空,为空默认不关联Zabbix Proxy
    模板允许为空,为空管理关联到Template OS Linux by Zabbix agent模板 | 主机可见名 | IP | 主机组 | 代理IP | 模板 | 是否启用 | | —- | —- | —- | —- | —- | —- | | zabbix-test-10.11.12.11 | 10.11.12.11 | Linux servers | | Template OS Linux by Zabbix agent | 0 | | zabbix-test-10.11.12.12 | 10.11.12.12 | Linux servers | | Template OS Linux by Zabbix agent | 1 |

  • 脚本结构

    # tree  autoAddZabbix/
    autoAddZabbix/
    ├── addZabbix.py   # 主程序
    ├── config
    │   ├── agent_setting.conf   # 脚本配置文件
    │   └── zabbix_agentd.conf   # zabbix agent配置文件
    ├── package
    │   └── zabbix_agent-5.0.12.tar.gz   # 源码包
    ├── README.md   # 说明文档
    ├── utils
    │   └── ssh_remote.py   # ssh远程模块
    └── zabbix-ip.20210616.xlsx   # 模板文件
    
  • 脚本使用方式
    部署时,如果客户端已经安装,会提示是否重新安装,安装后会自动启动zabbix-agent

python3 addZabbix.py zabbix-ip.20210616.xlsx