官方文档里面说明,Zabbix Server HA 最少需要两个节点,多台Zabbix server作为集群中的节点运行。 当集群中的一个Zabbix server 处于active
时,其他服务器处于standy
,随时准备在必要时接管。
无论集群的节点数量有多少,只有一个节点实例是出于Active
状态,Standby
节点不收集监控数据或者处理其他任务;
官方文档:
- https://www.zabbix.com/documentation/6.0/zh/manual
- https://www.zabbix.com/documentation/6.0/zh/manual/concepts/server/ha
- https://www.zabbix.com/download?zabbix=6.0&os_distribution=debian&os_version=11&components=server_frontend_agent&db=mysql&ws=nginx
国内zabbix源:
环境约定
组件版本
OS: Debian 11.7
Zabbix: 6.0
MySQL: 8.0
Nginx: 1.24.0
PHP: 7.4
节点信息
因为我的笔记本内存有限,只能搭建最小规模的HA集群,所以我们只部署一个单点的MySQL实例,并将Zabbix Web服务和Zabbix Server(Nginx+PHP)服务部署在一台机器上;在大规模监控或对可用性要求非常高的场景下,建议高可用部署MySQL,并将Zabbix Web独立部署,相关架构图可以参考https://www.infvie.com/ops-notes/zabbix-ha-cluster.html 这个博客的内容
IP | Role | Port |
---|---|---|
10.100.1.11 | Zabbix Server + Zabbix Web | 10051 + 80 |
10.100.1.12 | Zabbix Server + Zabbix Web | 10051 + 80 |
10.100.1.13 | MySQL |
节点的初始化操作可以浏览debian11系统初始化
MySQL安装
mysql的安装可以浏览Debian11 TAR包安装MySQL8.0
安装完成后我们需要手动创建zabbix的库
# mysql -uroot -p
输入password
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;
Nginx安装
Debian 11系统自身源的nginx版本是1.18
, 我这边选择安装最新的nginx stable
版本
我们需要在两台Zabbix Web
服务器上安装Nginx
, 安装可以浏览 Debian 11 安装Nginx最新stable版本
有些文档可以重复利用,哈哈
Zabbix Server + Web安装
接下来其实按照官方文档安装没有任何问题,如果就像上面说的,你如果要部署完全高可用的Zabbix,就需要把组件拆开安装了,我选择安装在一块儿
如果选择安装在一块儿
- all in one 安装
wget https://repo.zabbix.com/zabbix/6.0/debian/pool/main/z/zabbix-release/zabbix-release_6.0-4+debian11_all.deb
dpkg -i zabbix-release_6.0-4+debian11_all.deb
apt update
apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
如果要拆开安装
- zabbix web 安装
apt install zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
- zabbix server安装
apt install zabbix-server-mysql zabbix-sql-scripts zabbix-agent
数据初始化
只需要在一台Zabbix Server机器执行即可,进行数据初始化, 可能需要执行apt install unzip
安装需要的包
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -h 10.100.1.13 -uzabbix -p zabbix
导入数据库架构后禁用log_bin_trust_function_creators
选项
# mysql -uroot -p
password
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;
配置Zabbix Server
两台Zabbix Server上都需要修改配置,并修改DBHost
、DBName
、DBUser
、DBPassword
、DBPort
、HANodeName
、NodeAddress
参数
ListenPort=10051
LogType=file
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
DebugLevel=3
PidFile=/run/zabbix/zabbix_server.pid
SocketDir=/run/zabbix
DBHost=10.100.1.13
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBPort=3306
AllowUnsupportedDBVersions=0
StartPollers=50
StartIPMIPollers=10
StartPreprocessors=30
StartPollersUnreachable=10
StartHistoryPollers=50
StartTrappers=50
StartPingers=10
StartDiscoverers=10
StartHTTPPollers=10
StartTimers=10
StartEscalators=10
StartAlerters=30
StartVMwareCollectors=10
VMwareFrequency=60
VMwarePerfFrequency=60
VMwareCacheSize=80M
VMwareTimeout=10
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
StartSNMPTrapper=1
ListenIP=0.0.0.0
HousekeepingFrequency=1
MaxHousekeeperDelete=50000
CacheSize=2G
CacheUpdateFrequency=60
StartDBSyncers=40
HistoryCacheSize=512M
HistoryIndexCacheSize=512M
TrendCacheSize=256M
TrendFunctionCacheSize=256M
ValueCacheSize=512M
Timeout=5
TrapperTimeout=300
UnreachablePeriod=45
UnavailableDelay=60
UnreachableDelay=15
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
FpingLocation=/usr/bin/fping
Fping6Location=/usr/bin/fping6
LogSlowQueries=3000
TmpDir=/tmp
StartProxyPollers=10
ProxyConfigFrequency=60
ProxyDataFrequency=1
StartLLDProcessors=20
AllowRoot=0
User=zabbix
StatsAllowedIP=127.0.0.1
# 这俩参数是HA的关键,这里的两个配置可以写IP也可以写域名, 需要保证每个节点的地址不冲突
HANodeName=10.100.1.11
NodeAddress=10.100.1.11:10051
# 另一台节点需要改下地址
#HANodeName=10.100.1.12
#NodeAddress=10.100.1.12:10051
配置Zabbix Server
我们需要编辑/etc/zabbix/conf.d/zabbix.conf
取消注释listen
和server_name
, 修改端口为80
listen 80;
server_name example.com;
修改php-fpm配置,/etc/php/7.4/fpm/pool.d/zabbix-php-fpm.conf
中默认的配置中listen.owner
的用户配置不正确,我们需要将其修改为nginx
,否则在最终服务都启动后,因为权限原因,浏览器访问zabbix web会报502的错
[zabbix]
user = www-data
group = www-data
listen = /var/run/php/zabbix.sock
listen.owner = nginx
listen.allowed_clients = 127.0.0.1
pm = dynamic
pm.max_children = 200
pm.start_servers = 20
pm.min_spare_servers = 20
pm.max_spare_servers = 140
pm.max_requests = 800
php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/sessions/
php_value[max_execution_time] = 1200
php_value[memory_limit] = 512M
php_value[post_max_size] = 64M
php_value[upload_max_filesize] = 20M
php_value[max_input_time] = 1200
php_value[max_input_vars] = 400000
配置Zabbix Agent
修改/etc/zabbix/zabbix_agentd.conf
PidFile=/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.100.1.11,10.100.1.12
ServerActive=10.100.1.11,10.100.1.12
Hostname=10.100.1.11
RefreshActiveChecks=60
BufferSend=5
BufferSize=256
Timeout=5
AllowRoot=0
User=zabbix
Include=/etc/zabbix/zabbix_agentd.d/*.conf
启动服务
systemctl disable --now apache2.service
systemctl restart zabbix-server zabbix-agent nginx php7.4-fpm
systemctl enable zabbix-server zabbix-agent nginx php7.4-fpm
配置Web
需要逐台配置web,分别登陆 http://10.100.1.11
、 http://10.100.1.12
进行配置
文档写的比较粗糙,适合稍微有点zabbix经验的人,文档有错误或者需要改进的地方希望大家能够指出,我会及时修改更新
标签:LTS,10.100,zabbix,server,Server,Zabbix,mysql,php From: https://www.cnblogs.com/zhaojli/p/17586282.html