【企业级分布式系统】Zabbix监控系统与部署安装

文章目录

Zabbix监控系统

Zabbix 6.0 是一个功能强大的开源监控系统,用于监视分布式系统和网络的状态。它提供了一个基于Web的界面,使运维人员能够方便地查看和分析服务器性能、应用服务状态和网站流量等指标。

Zabbix是什么?

Zabbix是一个企业级开源解决方案,通过Web界面提供分布式系统监视和网络监视功能。它能够监控各种网络参数,确保服务器系统的安全运营,并提供灵活的通知机制,帮助系统管理员快速定位和解决存在的问题。Zabbix由Zabbix Server和可选的Zabbix Agent两部分构成,通过C/S模式采集数据,通过B/S模式在Web端展示和配置。

Zabbix监控原理

  1. Zabbix Agent:安装在被监控的主机上,负责定期收集客户端本地的各项数据,如CPU、内存、磁盘使用情况等,并将这些数据发送至Zabbix Server端。
  2. Zabbix Server:接收来自Zabbix Agent的数据,并将其存储到数据库中。同时,Zabbix Server还负责配置信息的存储、告警的触发和通知的发送。
  3. 数据库:存储所有配置信息和Zabbix采集到的数据。Zabbix支持多种数据库,如MySQL、PostgreSQL、Oracle等。
  4. Web前端:用户通过Web前端查看监控数据、配置监控项和触发器。Web前端基于Apache/Nginx + PHP实现,可以与Zabbix Server运行在同一台物理机器上,也可以分开部署。

Zabbix 6.0新特性

  1. Zabbix Server高可用:原生支持HA群集配置,可以定义一个或多个备用节点,实时监控Zabbix Server群集节点的状态,从而防止硬件故障或计划维护期导致的停机。
  2. Kubernetes监控功能:新增对Kubernetes系统的监控,可以自动发现和监控Kubernetes节点和Pods,无需代理即可采集相关信息,并提供高水平的节点主机信息。

Zabbix 6.0功能组件

  1. Zabbix Server:Zabbix软件的核心组件,负责接收Zabbix Agent发送的数据,存储配置信息和监控数据,以及触发告警和发送通知。
  2. 数据库:存储所有配置信息和监控数据,支持多种数据库类型。
  3. Web界面:基于Apache/Nginx + PHP实现,用于展示和配置监控项、触发器和告警等。
  4. Zabbix Agent:部署在被监控目标上,用于主动监控本地资源和应用程序,并将收集的数据发送给Zabbix Server。
  5. Zabbix Proxy:可选组件,用于代替Zabbix Server采集性能和可用性数据,可以分担单个Zabbix Server的负载,适用于监控大量主机的情况。
  6. Java Gateway:用于监控Tomcat服务或其他Java程序,作为代理从Java程序中获取数据。

部署安装

●系统:CentOS 7 不支持 yum 方式安装 Zabbix 6.0 服务端

●安装方式:Zabbix 服务端采用编译安装的方式,zabbix 客户端采用 yum 安装的方式

关闭 selinux 与防火墙

bash 复制代码
systemctl disable --now firewalld
setenforce 0
hostnamectl set-hostname zbx-server

服务端

部署 Nginx + PHP 环境并测试

安装 nginx
bash 复制代码
cat > /etc/yum.repos.d/nginx.repo << 'EOF'
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF
bash 复制代码
yum install -y nginx

安装 php

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum -y install epel-release
yum -y install https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-gd php72w-mbstring php72w-pdo php72w-xml php72w-fpm php72w-mysqlnd php72w-opcache php72w-ldap php72w-bcmath

修改 nginx 配置

bash 复制代码
vim /etc/nginx/conf.d/zbx.conf
server {
  listen 80;
  server_name zbx.xy101.com;
  root /var/www/zbx;
  
  location / {
    index index.php;
  }
  
  location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /var/www/zbx$fastcgi_script_name;
    include fastcgi_params;
  }
}
bash 复制代码
vim /etc/nginx/conf.d/zbx.conf
server {
   listen       80;
   server_name  localhost;

   #access_log  /var/log/nginx/host.access.log  main;

   location / {
       root   /var/www/zbx;
       index  index.php index.html index.htm;
   }

   #error_page  404              /404.html;

   # redirect server error pages to the static page /50x.html
   #
   error_page   500 502 503 504  /50x.html;
   location = /50x.html {
       root   /usr/share/nginx/html;
   }

   # proxy the PHP scripts to Apache listening on 127.0.0.1:80
   #
   #location ~ \.php$ {
   #    proxy_pass   http://127.0.0.1;
   #}

   # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
   #
   location ~ \.php$ {
       root /var/www/zbx;
       fastcgi_pass   127.0.0.1:9000;
       fastcgi_index  index.php;
       fastcgi_param  SCRIPT_FILENAME  /var/www/zbx$fastcgi_script_name;
       include        fastcgi_params;
   }

   # deny access to .htaccess files, if Apache's document root
   # concurs with nginx's one
   #
   #location ~ /\.ht {
   #    deny  all;
   #}
}

修改 php 配置

bash 复制代码
vim /etc/php-fpm.d/www.conf
user = nginx
group = nginx

vim /etc/php.ini

max_execution_time = 300		# 368行
max_input_time = 600			# 378行
post_max_size = 80M				# 656行
date.timezone = Asia/Shanghai	# 877行

创建目录和测试文件

#创建目录和测试文件
mkdir -p /var/www/zbx
bash 复制代码
vim /var/www/zbx/index.php
<?php
phpinfo();
?>

启动服务

#启动服务
systemctl enable --now nginx php-fpm

测试访问

方式一:直接访问ip地址

方式二:windows主机上修改hosts文件解析域名访问

bash 复制代码
#修改 
C:\Windows\System32\drivers\etc\hosts
192.168.80.20 zbx.xy101.com

浏览器访问:http://zbx.xy101.com/index.php

数据库部署

部署数据库,要求 MySQL 5.7 或 Mariadb 10.5 及以上版本
配置 Mariadb yum源

bash 复制代码
cat > /etc/yum.repos.d/mariadb.repo << EOF
[mariadb]
name = MariaDB
baseurl = http://mirrors.aliyun.com/mariadb/yum/10.5/centos7-amd64/
gpgkey = http://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1
enabled=1
EOF

yum安装

bash 复制代码
yum install -y mariadb-server mariadb

启动

systemctl enable --now mariadb

初始化数据库

bash 复制代码
mysql_secure_installation

分别输入 回车 -> n -> Y (设置root密码,如abc123) -> 后面一路 Y
登陆数据库

bash 复制代码
mysql -u root -pabc123

创建数据库并指定字符集

CREATE DATABASE zabbix character set utf8 collate utf8_bin;

创建 zabbix 数据库用户并授权

GRANT all ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
flush privileges;

向数据库导入 zabbix 数据

上传源码包 zabbix-6.0.13.tar.gz 到 /opt 目录

注意压缩包的名字,不同版本的名字会有所不同

bash 复制代码
cd /opt
tar xf zabbix-6.0.13.tar.gz
bash 复制代码
ls /opt/zabbix-6.0.13/database/mysql
data.sql  double.sql  history_pk_prepare.sql  images.sql  Makefile.am  Makefile.in  schema.sql

按照顺序导入数据库

cd /opt/zabbix-6.0.13/database/mysql
mysql -uroot -pabc123 zabbix < schema.sql
mysql -uroot -pabc123 zabbix < images.sql
mysql -uroot -pabc123 zabbix < data.sql
mysql -uroot -pabc123 zabbix < double.sql
mysql -uroot -pabc123 zabbix < history_pk_prepare.sql

编译安装 zabbix Server 服务端

安装依赖包,创建 zabbix 用户

bash 复制代码
yum install -y mysql-devel pcre-devel openssl-devel zlib-devel libxml2-devel net-snmp-devel net-snmp libssh2-devel OpenIPMI-devel libevent-devel openldap-devel libcurl-devel fping gcc gcc-c++ make

添加用户

useradd -s /sbin/nologin -M zabbix

编译安装

cd /opt/zabbix-6.0.13/

./configure \
--sysconfdir=/etc/zabbix/ \
--enable-server \
--with-mysql \
--with-net-snmp \
--with-libxml2 \
--with-ssh2 \
--with-openipmi \
--with-zlib \
--with-libpthread \
--with-libevent \
--with-openssl \
--with-ldap \
--with-libcurl \
--with-libpcre
make install

检查版本

zabbix_server --version
zabbix_server (Zabbix) 6.0.13

修改 zabbix server 配置文件,修改数据库的密码

vim /etc/zabbix/zabbix_server.conf
......
LogFile=/var/log/zabbix_server.log		# 38行,指定 zabbix 日志路径
DBPassword=zabbix					# 123行,指定 zabbix 数据库的密码

准备 systemctl 服务管理文件

bash 复制代码
cat > /usr/lib/systemd/system/zabbix-server.service << EOF
[Unit]
Description=Zabbix Server with MySQL DB
After=syslog.target network.target mysqld.service

[Service]
Type=simple
ExecStart=/usr/local/sbin/zabbix_server -f
User=zabbix

[Install]
WantedBy=multi-user.target
EOF

重新加载 systemd 配置

bash 复制代码
systemctl daemon-reload

创建目录并授予权限

touch /var/log/zabbix_server.log
chown zabbix.zabbix /var/log/zabbix_server.log

启动服务

systemctl enable --now zabbix-server

检查端口

netstat -lntp | grep 10051			#zabbix_server 默认监听 10051 端口

#部署 Web 前端,进行访问
cp -r /opt/zabbix-6.0.13/ui/* /var/www/zbx

授予权限

chown -R nginx.nginx /var/www/zbxz

浏览器访问域名或者IP地址

【Default language】选择 Chinese(zh_CN),点击下一步
【密码】输入 zabbix,点击下一步
【Zabbix主机名称】输入 Zabbix-监控;【默认时区】选择 Asia/Shanghai,点击下一步
安装完成后,默认的登录账号和密码为:Admin/zabbix

安装 zabbix 客户端,实现 zabbix 服务端自我监控

rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
sed -i 's#https://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

zabbix 5.0 版本开始采用 golang 语言开发的新版本客户端 agent2

yum install -y zabbix-agent2

启动zabbix agent

systemctl enable --now zabbix-agent2

检查端口

netstat -lntp | grep 10050			#客户端 zabbix_agent2 默认监听 10050 端口

解决 zabbix-server Web页面中文乱码问题

yum install -y wqy-microhei-fonts

\cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /var/www/zbx/assets/fonts/DejaVuSans.ttf

然后刷新浏览器页面即可


添加Zabbix客户端主机的指南~

禁用防火墙和SELinux

bash 复制代码
# 禁用并停止firewalld防火墙服务
systemctl disable --now firewalld

# 将SELinux设置为宽容模式(permissive),允许所有操作但不强制执行安全策略
setenforce 0

设置主机名

bash 复制代码
# 将主机名设置为zbx-agent01
hostnamectl set-hostname zbx-agent01

时间同步

bash 复制代码
# 安装ntpdate工具,用于同步时间
yum install -y ntpdate

# 使用阿里云提供的NTP服务器同步时间
ntpdate -u ntp.aliyun.com

配置hosts解析

bash 复制代码
# 向/etc/hosts文件中添加服务端和客户端的IP地址和主机名映射
cat > /etc/hosts << EOF
192.168.80.20 zbx-server
192.168.80.30 zbx-agent01
EOF

配置Zabbix下载源并安装Zabbix Agent2

bash 复制代码
# 从Zabbix官方仓库下载Zabbix的RPM包
rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm

# 将Zabbix的YUM源地址替换为阿里云的镜像地址,以加速下载
sed -i 's#https://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

# 安装Zabbix Agent2
yum install -y zabbix-agent2

配置Zabbix Agent2

bash 复制代码
# 编辑Zabbix Agent2的配置文件
vim /etc/zabbix/zabbix_agent2.conf

# 修改以下配置项:
# Server:指定Zabbix服务端的IP地址
# ServerActive:指定主动向Zabbix服务端发送数据的IP地址
# Hostname:指定当前Zabbix客户端的主机名,应与Zabbix Web界面中添加的主机名一致

启动并启用Zabbix Agent2

bash 复制代码
# 启动Zabbix Agent2服务
systemctl start zabbix-agent2

# 设置Zabbix Agent2服务开机自启动
systemctl enable zabbix-agent2

# 检查Zabbix Agent2服务是否正常运行,监听在10050端口
netstat -natp | grep zabbix

在服务端验证Zabbix Agent2的连通性

bash 复制代码
# 在Zabbix服务端安装zabbix-get工具
yum install -y zabbix-get

# 使用zabbix-get工具测试与客户端的连通性
# agent.ping:测试服务端与客户端是否连通,返回1表示可达
zabbix_get -s '192.168.80.30' -p 10050 -k 'agent.ping'

# system.hostname:获取客户端的系统主机名
zabbix_get -s '192.168.80.30' -p 10050 -k 'system.hostname'

在Zabbix Web页面中添加客户端主机

  1. 登录Zabbix Web界面。
  2. 点击左边菜单栏的【配置】中的【主机】。
  3. 点击【创建主机】。
  4. 填写以下信息:
    • 【主机名称】:输入zbx-agent01。
    • 【可见的名称】:输入zbx-agent01-192.168.80.30,用于在Web界面中显示。
    • 【模板】:搜索Linux,选择Linux by Zabbix agent模板。
    • 【群组】:选择Linux servers群组。
    • 【Interfaces】:点击添加客户端,输入客户端的IP地址192.168.80.30。

监控模板下载地址

https://share.zabbix.com/

https://monitoringartist.github.io/zabbix-searcher/

https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates


自定义监控内容

自定义监控内容:服务器登录人数

目标:限制登录人数不超过3个,超过则发出报警信息。

在客户端创建自定义Key
  1. 确定需要执行的Linux命令
    使用who | wc -l命令来获取当前登录的用户数。

  2. 创建Zabbix的自定义监控项配置文件

    • 编辑Zabbix Agent2的主配置文件,确保包含自定义监控项配置文件的目录。

      bash 复制代码
      vim /etc/zabbix/zabbix_agent2.conf
      # 找到并确认以下行,确保包含/etc/zabbix/zabbix_agent2.d/目录
      Include=/etc/zabbix/zabbix_agent2.d/*.conf
    • 创建自定义监控项的配置文件。

      bash 复制代码
      cd /etc/zabbix/zabbix_agent2.d/
      vim UserParameter_login.conf
    • 在配置文件中添加自定义的监控项。

      bash 复制代码
      UserParameter=login.user,who|wc -l
    • 重启Zabbix Agent2服务以应用更改。

      bash 复制代码
      systemctl restart zabbix-agent2
  3. 在服务端验证新建的监控项
    使用zabbix_get命令从服务端验证自定义监控项是否能正确返回数据。

    bash 复制代码
    zabbix_get -s '192.168.80.30' -p 10050 -k 'login.user'
在Web页面创建自定义监控项模板
  1. 创建模板
    • 在Zabbix Web界面的【配置】->【模板】中创建新模板。
    • 设置模板名称、可见名称、群组和描述。
  2. 创建监控项
    • 在新创建的模板中,点击【监控项】->【创建监控项】。
    • 设置监控项的名称、键值(与客户端自定义的监控项一致)、更新间隔和历史数据保留时长。
  3. 创建触发器
    • 在模板中,点击【触发器】->【创建触发器】。
    • 设置触发器的名称、严重性、表达式(用于判断监控项的值是否触发报警)。
      • 表达式示例:{Template Login User:login.user.last()}>3
  4. 创建图形
    • 在模板中,点击【图形】->【创建图形】。
    • 设置图形的名称、宽度、高度和要展示的监控项。
  5. 将主机与模板关联
    • 在【配置】->【主机】中,找到要关联的主机。
    • 在主机的模板选项卡中,搜索并选择Template Login User模板,然后点击【更新】。
  6. 查看监控项指标
    • 在【监测】->【主机】中,找到关联的主机,点击其【图形】以查看监控项指标。
设置邮件报警
  1. 创建报警媒介类型
    • 在【管理】->【报警媒介类型】中创建新的报警媒介类型。
    • 设置SMTP服务器、端口、HELO、电邮地址、认证方式等。
    • 生成并设置QQ邮箱的授权码作为密码。
  2. 配置用户报警媒介
    • 在【User settings】->【Profile】->【报警媒介】中为用户添加报警媒介。
    • 设置收件人、启用时间和严重性级别。
  3. 配置动作
    • 在【配置】->【动作】->【Trigger actions】中配置当触发器触发时要执行的动作。
    • 添加新的动作,设置动作类型为触发器,并指定要触发的触发器。
    • 勾选已启动并更新动作。
测试邮件报警
  • 增加测试客户端的用户登录数,使其超过触发器预设的值。
  • 在【监测】->【仪表板】中确认是否收到报警邮件。

Zabbix自动发现与自动注册

Zabbix 自动发现(被动模式)

Zabbix Server会主动扫描指定的IP范围,寻找运行着Zabbix Agent的主机,并将它们添加到Zabbix Server的管理列表中。

  1. 确保客户端Zabbix Agent2服务正常
    使用systemctl is-active zabbix-agent2.service命令检查Zabbix Agent2服务是否处于活动状态。
  2. 删除原有的客户端主机
    在Zabbix Web界面的【配置】->【主机】中,删除已经存在的客户端主机,以便测试自动发现功能。
  3. 配置hosts解析
    在服务端和客户端的/etc/hosts文件中添加主机名和IP地址的对应关系,确保Zabbix Server和Agent之间可以通过主机名相互访问。
  4. 配置自动发现规则
    • 在Zabbix Web界面的【配置】->【自动发现】中,创建新的发现规则。
    • 设置规则名称、IP范围、更新间隔等参数。
    • 添加检查项,选择Zabbix客户端作为检查类型,设置端口范围和键值(如system.uname)。
    • 设置设备唯一性准则和主机名称等选项。
    • 启用规则。
  5. 配置发现动作
    在【配置】->【动作】->【发现动作】中,启用默认的发现动作(如Auto discovery. Linux servers.),以便在发现新主机时自动添加它们。
  6. 等待并验证自动发现
    等待一段时间后,刷新【配置】->【主机】页面,应该能够看到新发现的客户端主机。同时,可以在服务端查看Zabbix日志以确认发现过程。

Zabbix 自动注册(主动模式)

Zabbix Agent2会主动向Zabbix Server注册自己的信息,这种方式通常用于动态网络环境或需要快速添加大量主机的情况。

  1. 环境准备
    • 禁用自动发现规则。
    • 删除原有的客户端主机。
    • 确保服务端和客户端的hosts解析正确。
  2. 修改Zabbix Agent2配置文件
    • /etc/zabbix/zabbix_agent2.conf文件中,确保ServerServerActive参数设置为Zabbix Server的IP地址。
    • 取消注释HostnameItem=system.hostname,以便Agent使用系统主机名作为注册时的主机名。
    • 重启Zabbix Agent2服务以应用更改。
  3. 配置自动注册动作
    • 在Zabbix Web界面的【配置】->【动作】->【自动注册动作】中,创建新的自动注册动作。
    • 设置动作名称。
    • 添加条件,选择主机名称包含特定字符串(如zbx-agent)。
    • 添加操作,选择添加主机、添加到主机群组、与模板关联等操作。
    • 保存并启用动作。
  4. 等待并验证自动注册
    等待一段时间后,刷新【配置】->【主机】页面,应该能够看到自动注册的客户端主机。同时,可以在服务端查看Zabbix日志以确认注册过程。

以下是对部署Zabbix代理服务器步骤的详细注释和解释:


部署Zabbix代理服务器

分布式监控的作用

  • 分担Zabbix Server的集中式压力,通过引入代理服务器来分散数据收集和处理的工作负载。
  • 解决多机房之间的网络延时问题,通过在各机房部署代理服务器,减少跨机房数据传输的延迟。

部署步骤:

  1. 系统准备
    • 禁用防火墙:systemctl disable --now firewalld
    • 设置SELinux为宽松模式:setenforce 0
    • 设置主机名:hostnamectl set-hostname zbx-proxy
  2. 设置Zabbix下载源并安装Zabbix-Proxy
  • 下载并安装Zabbix-release包
bash 复制代码
rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
bash 复制代码
yum install -y zabbix-proxy-mysql zabbix-sql-scripts zabbix-selinux-policy
  1. 部署数据库
    • 配置MariaDB yum源,并安装MariaDB服务器和客户端:通过创建
bash 复制代码
/etc/yum.repos.d/mariadb.repo`文件并运行`yum install -y mariadb-server mariadb
  • 启动并启用MariaDB服务:
bash 复制代码
systemctl enable --now mariadb
  • 初始化数据库:
    运行mysql_secure_installation并设置root密码(如abc123),后续选择Y进行安全配置。
  • 创建Zabbix代理数据库和用户:
    登录MySQL后,创建数据库zabbix_proxy并设置字符集,然后创建用户zabbix并授权。
  1. 导入数据库信息
    • 查询zabbix-sql-scripts包中SQL文件的位置,并导入到创建的数据库中:
bash 复制代码
cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql -uroot -pabc123 zabbix_proxy
  1. 配置Zabbix-Proxy

    • 修改/etc/zabbix/zabbix_proxy.conf文件,设置Server为Zabbix Server的IP地址,Hostname为代理服务器的主机名,DBPassword为数据库用户的密码。
  2. 启动Zabbix-Proxy

    • 启动并启用Zabbix-Proxy服务:
bash 复制代码
systemctl start zabbix-proxy
systemctl enable zabbix-proxy
  1. 配置hosts解析

    • 在所有相关主机上(包括Zabbix Server、代理服务器、客户端)的/etc/hosts文件中添加主机名和IP地址的对应关系。
  2. 在Web页面配置Agent代理

    • 禁用自动注册规则,并删除原有的客户端主机。
    • 在【管理】->【agent代理程序】中创建新的代理,设置代理名称、模式和地址。
  3. 配置Agent使用Proxy

    • 修改客户端的/etc/zabbix/zabbix_agent2.conf文件,将ServerServerActive设置为Zabbix代理服务器的IP地址。
    • 在Web页面的【配置】->【主机】中创建新的主机,设置主机名称、可见名称、模板、群组等,并选择由zbx-proxy代理程序监测。
  4. 重启服务和验证

    • 在客户端和代理服务器上重启Zabbix-Agent和Zabbix-Proxy服务。
    • 等待一段时间后,刷新Web页面的【配置】->【主机】以查看客户端主机的监控状态。
    • 在服务端查看Zabbix-Proxy的日志以确认配置和运行状态。

部署Zabbix高可用集群

Zabbix官方的高可用解决方案仅针对Zabbix Server部分。为了实现完整的高可用,还需要对数据库(如MySQL/MariaDB)和前端(如Zabbix Web界面)采用各自领域的高可用解决方案,如数据库的主从复制、负载均衡等。

服务端配置

默认情况下,Zabbix Server的高可用(HA)功能是关闭的。HA相关的配置位于Zabbix Server配置文件的"High availability cluster parameters"部分。
主节点Zabbix Server配置

  1. 编辑Zabbix Server配置文件:

    bash 复制代码
    vim /etc/zabbix/zabbix_server.conf
  2. 在配置文件中,找到并设置以下参数:

    • DBHost:数据库服务器的IP地址。
    • DBNameDBUserDBPassword:数据库名称、用户名和密码。
    • HANodeName:当前节点的主机名或IP地址,同一集群中必须唯一。
    • NodeAddress:当前节点的IP地址和Zabbix Server的监听端口(默认10051)。
  3. 重启Zabbix Server服务以应用配置:

    bash 复制代码
    systemctl restart zabbix-server
  4. 在数据库服务器上,为主节点和备节点授权远程登录权限(如果数据库和Zabbix Server不在同一台机器上):

    bash 复制代码
    mysql -uroot -pabc123
    GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
    FLUSH PRIVILEGES;

备节点Zabbix Server配置

  1. 编辑备节点的Zabbix Server配置文件,设置与主节点相同的数据库参数。
  2. 设置HANodeNameNodeAddress为备节点的唯一值。
  3. 重启备节点的Zabbix Server服务以应用配置。

注意

  • 在配置文件中,确保没有重复的HANodeName
  • 如果使用防火墙,请确保Zabbix Server的监听端口(默认10051)在防火墙规则中已开放。

客户端配置

为了使客户端能够同时向主节点和备节点发送数据,需要修改客户端配置文件:

  1. 编辑Zabbix Agent配置文件:

    bash 复制代码
    vim /etc/zabbix/zabbix_agentd.conf
  2. 在配置文件中,找到并设置以下参数:

    • Server:列出主节点和备节点的IP地址,用逗号分隔。这是Agent向Server发送被动检查数据的地址列表。
    • ServerActive:列出主节点和备节点的IP地址,用分号分隔。这是Agent向Server发送主动检查数据的地址列表。注意,与Server参数不同,ServerActive的连接符是分号(;)。
  3. 重启Zabbix Agent服务以应用配置。

注意

  • 在配置文件中,确保ServerServerActive参数正确无误,并且使用了正确的连接符。
  • 如果客户端与Zabbix Server之间存在防火墙,请确保Zabbix Agent的端口(默认10050)在防火墙规则中已开放。
相关推荐
工业甲酰苯胺33 分钟前
Redis性能优化的18招
数据库·redis·性能优化
没书读了2 小时前
ssm框架-spring-spring声明式事务
java·数据库·spring
i道i2 小时前
MySQL win安装 和 pymysql使用示例
数据库·mysql
小怪兽ysl2 小时前
【PostgreSQL使用pg_filedump工具解析数据文件以恢复数据】
数据库·postgresql
wqq_9922502773 小时前
springboot基于微信小程序的食堂预约点餐系统
数据库·微信小程序·小程序
爱上口袋的天空3 小时前
09 - Clickhouse的SQL操作
数据库·sql·clickhouse
sinat_384241093 小时前
使用 npm 安装 Electron 作为开发依赖
服务器
朝九晚五ฺ3 小时前
【Linux探索学习】第十四弹——进程优先级:深入理解操作系统中的进程优先级
linux·运维·学习
Oak Zhang3 小时前
sharding-jdbc自定义分片算法,表对应关系存储在mysql中,缓存到redis或者本地
redis·mysql·缓存
Kkooe4 小时前
GitLab|数据迁移
运维·服务器·git