监控远程区域设备; 监控本地网络不稳定区域; 当 zabbix 监控上千设备时,使用它来减轻 server 的压力; 简化分布式监控的维护。
1. 架构示意图

2. 环境准备
节点主机名 | IP地址 | 备注 |
zabbixserver | xx.xx.xx.xx | Zabbix服务器 |
zabbixproxy01 | xx.xx.xx.xx | Zabbix poxy代理服务器1 |
zabbixproxy02 | xx.xx.xx.xx | Zabbix poxy代理服务器2 |
node01 | xx.xx.xx.xx | 模拟poxy1所监控的服务器node01 |
node02 | xx.xx.xx.xx | 模拟poxy2所监控的服务器node02 |
可关闭防火墙和SELinux,若不关闭可进行相应端口放通。
# systemctl stop firewalld
# systemctl disable firewalld
# setenforce 0
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# vi etc/hosts #添加在server和proxy节点添加以下主机名配置
server主机 ip zabbixserver
Proxy1主机ip zabbixproxy01
Proxy2主机ip zabbixproxy02
1. 安装Zabbix官方源和epel源
[root@server~]#rpm-ivh
http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
[root@server ~]#ls /etc/yum.repos.d/

2. 安装Zabbix Server等组件
[root@server ~]#
yum -y install zabbix-get zabbix-server-mysql zabbix-web-mysql zabbix-web zabbix-agent mariadb mariadb-server
3. 简单优化MariaDB
[root@server ~]# vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
character-set-server=utf8 #设置字符集为utf8
innodb_file_per_table=1 #设置innodb的每个表文件单独存储
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
……
[root@server ~]# systemctl enable mariadb #设为开机启动
[root@server ~]# systemctl start mariadb #开启MariaDB数据
4. 设置数据库相关项
[root@server ~]# mysql_secure_installation #设置安全性,并设置数据库root密码
[root@server ~]# mysql -u root -p
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
#创建数据库且字符集为utf8,使web界面显示中文不出现乱码
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'localhost' identified by 'zxc26134';
#创建zabbix数据库和Zabbix用户,且赋予此用户拥有此数据库全部权限。
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
5. 导入数据库相关表
[root@server ~]#cd /usr/share/doc/zabbix-server-mysql-4.x.x/ #进入数据库模板所在目录
[root@server zabbix-server-mysql-4.0.45]# ls

[root@server zabbix-server-mysql-4.0.45]#zcat create.sql.gz | mysql -uroot -p zabbix #
将模板数据恢复至Zabbix数据库
[root@server ~]#mysql -u zabbix -pzxc26134 zabbix -e "show tables" #
查看数据表项
6. 配置Zabbix_server.conf项
[root@server ~]# vi /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
DBHost=localhost #修改主机
DBName=zabbix
DBUser=zabbix
DBPassword=zxc26134 #修改DB密码(之前所创建密码)
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
7. Server自身agent配置
[root@server ~]# vi /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=本机ip
ServerActive=本机ip #主动模式,Server自身主动向自己传送数据
Hostname=zabbixserver #zabbix server web上添加自身需要用到
8. 启动Zabbix服务
[root@server ~]#systemctl enable zabbix-server #设为开机启动Zabbix服务
[root@server ~]#systemctl start zabbix-server #启动Zabbix服务
[root@server ~]#systemctl start zabbix-agent #需要监控自己,因此也开启agent
[root@server ~]#systemctl enable zabbix-agent #启动Zabbix服务
9. 配置php
[root@server ~]# vi /etc/php.ini
date.timezone= Asia/Shanghai
max_execution_time = 300
post_max_size = 16M
memory_limit = 128M
[root@server ~]# vi /etc/httpd/conf.d/zabbix.conf
Alias /zabbix /usr/share/zabbix
<Directory "/usr/share/zabbix">
Options FollowSymLinks
AllowOverride None
Require all granted
<IfModule mod_php5.c>
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 always_populate_raw_post_data -1
php_value date.timezone Europe/Riga
</IfModule>
</Directory>
10. 启动Apache服务
[root@server ~]#systemctl start httpd.service
[root@server ~]#systemctl enable httpd.service
11. Web界面配置










1. 安装Zabbix官方源和epel源
[root@proxy01 ~]#yum -y install epel-release.noarch
[root@proxy01 ~]#rpm -ivh
http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
2. 安装Zabbix-proxy等组件
[root@proxy01 ~]#
yum install -y zabbix-proxy zabbix-proxy-mysql mariadb mariadb-server zabbix-agent
3. 简单优化MariaDB
[root@proxy01 ~]# vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
character-set-server=utf8 #设置字符集为utf8
innodb_file_per_table=1 #设置innodb的每个表文件单独存储
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
……
[root@proxy01 ~]# systemctl enable mariadb #设为开机启动
[root@proxy01 ~]# systemctl start mariadb #开启MariaDB数据
4. 设置数据库相关项
[root@proxy01 ~]# mysql_secure_installation #设置安全性,并设置数据库root密码
[root@proxy01 ~]# mysql -u root -p
MariaDB [(none)]> create database zabbixproxydb character set utf8 collate utf8_bin;
#创建数据库且字符集为utf8,使web界面显示中文不出现乱码
MariaDB [(none)]> grant all privileges on zabbixproxydb.* to proxy@'localhost' identified by 'zxc26134';
#创建zabbixproxydb数据库和proxy用户,且赋予此用户拥有此数据库全部权限。
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
5. 导入数据库相关表
[root@proxy01 ~]#cd /usr/share/doc/zabbix-proxy-mysql-4.x.x/ #进入数据库模板所在目录
[root@proxy01 zabbix-proxy-mysql-4.x.x]# ls
AUTHORS ChangeLog COPYING NEWS README schema.sql.gz

[root@proxy01 zabbix-proxy-mysql-4.x.x]# zcat schema.sql.gz | mysql -uroot -p zabbixproxydb
#将模板数据恢复至Zabbix数据库,此处为需要输入MariaDB的root用户密码。
Enter password:
[root@proxy01 ~]#mysql -u proxy -p #用proxy用户登录
MariaDB [(none)]> show databases;
MariaDB [(none)]> use zabbixproxydb;
MariaDB [zabbixproxydb]> show tables; #查看数据表
MariaDB [zabbixproxydb]> exit
6. 配置zabbix_proxy.conf项
[root@proxy01 ~]# vi /etc/zabbix/zabbix_proxy.conf
ProxyMode=0 # 默认即为0,代表 Proxy 处于主动模式,即 Proxy 主动去请求 Zabbix Server 获取监控项;1 代表被动模式
Server=server主机的ip
ServerPort=10051 # 默认即为10051,Zabbix Server 监听端口,同上只在 Proxy 为主动模式时生效
Hostname=zabbixproxy01 # Server端添加proxy的时候需要一致,建议采用主机名
LogFile=/var/log/zabbix/zabbix_proxy.log # Proxy 日志文件位置
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
DBHost=localhost # 连接数据库的主机
DBName=zabbixproxydb # 数据库名
DBUser=proxy # 连接用户
DBPassword=zxc26134 # 用户密码
ConfigFrequency=60 # proxy主动从server端检索配置更新的频率,单位秒,主动proxy 参数, 被动 proxies忽略此项
DataSenderFrequency=60 # Proxy 向 Zabbix Server 发送监控数据间隔,单位为秒
Timeout=4
7. Proxy自身agent配置
[root@imxhy02 ~]# vi /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=server主机的ip #若为纯主动模式需要注释此行
ServerActive=server主机的ip #主动模式,proxy自身主Server传送数据
Hostname=zabbixproxy01 #zabbix server web上添加自身需要用到
8. zabbix启动级开机启动
[root@proxy01 ~]#systemctl start zabbix-proxy.service
[root@proxy01 ~]#systemctl enable zabbix-proxy.service
[root@proxy01 ~]#systemctl start zabbix-agent.service
[root@proxy01 ~]#systemctl enable zabbix-agent.service
9. Server端添加Proxy


1. 安装Zabbix官方源和epel源
[root@node01~]#rpm -ivh
http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
[root@node01 ~]#ls /etc/yum.repos.d/

2. 安装Zabbix Agent等组件
[root@node01 ~]#yum -y install zabbix-agent
3. 主机节点agent配置
[root@server ~]# vi /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=proxy的ip #若为纯主动模式需要注释此行
ServerActive=proxy的ip #主动模式,主机1向proxy01主动传送数据
Hostname=自身主机名 #Zabbix server web上添加主机需要用到
4. 启动Zabbix服务
[root@node01 ~]#systemctl start zabbix-agent
[root@node01 ~]#systemctl enable zabbix-agent






本文作者:谌 鹏(上海新炬中北团队)
本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




