Centos7 部署 Zabbix 5.4 高可用集群

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Centos7 部署 Zabbix 5.4 高可用集群

Zabbix 是一个企业级分布式开源监控解决方案,能够监控各种网络设备、服务器、中间件和应用程序等等。Zabbix 支持主动轮询(polling)和被动捕获(trapping)两种方式获取数据。Zabbix 所有的报表、统计数据和配置参数都可以通过基于 Web 的前端页面进行访问,并且提供了完善的 API 接口便于二次开发。

Zabbix 有以下几个主要组件:

  • Zabbix Server:是 Zabbix 软件的核心组件,Zabbix Agent 向其报告可用性、系统完整性信息和统计信息。
  • Zabbix Web:通过 Apache HTTP 运行,提供前端的访问页面。
  • Zabbix Proxy(可选):Zabbix Proxy 可以代替 Zabbix Server 收集客户端的数据,然后把数据汇报给 Zabbix Server,以减轻 Zabbix Server 的负担,本文中没有安装 Zabbix Proxy。
  • Zabbix Agent:部署在需要监控的服务器上,主动监控本地资源和应用程序,并将收集到的数据上报给 Zabbix Server(或 Zabbix Proxy)。
  • 数据库存储:存储所有的配置信息以及 Zabbix 收集到的数据。数据库使用外部已经部署好的 MySQL 高可用集群。

目前 Zabbix 最新的稳定版本是 5.4,然而官方 yum 源只支持在 Centos8 上安装 Zabbix 5.4 版本,想要在 Centos7 上安装 Zabbix 5.4 版本上只能通过源码编译的方式安装。本文将会介绍在 Centos7 上通过源码编译安装的方式部署一套 Zabbix 高可用集群。

image.png

主机名 IP地址 角色
ydt-net-zabbix1 11.8.38.70:80 Zabbix Web 主
ypt-net-zabbix2 11.8.38.100:80 Zabbix Web 备
ydt-net-zabbix1 11.8.38.70:10051 Zabbix Server 主
ypt-net-zabbix2 11.8.38.100:10051 Zabbix Server 备

11.8.38.208:80 Zabbix 虚拟 IP

11.17.6.81:4442 MySQL 虚拟 IP

准备工作

安装 PHP

Zabbix 5.4 版本要求 PHP 版本在 7.2 以上。

卸载旧版本 PHP:

yum remove php-*

安装 7.2 版本 PHP:

rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install -y php72w php72w-opcache  php72w-xml  php72w-gd php72w-devel php72w-mysqlnd  php72w-intl    php72w-mbstring   php72w-pear  php72w-pdo  php72w-fpm  php72w-bcmath

安装 Golang

Zabbix 前端服务依赖 Golang。

rpm --import https://mirror.go-repo.io/centos/RPM-GPG-KEY-GO-REPO
curl -s https://mirror.go-repo.io/centos/go-repo.repo | tee /etc/yum.repos.d/go-repo.repo
yum install golang
go env -w GOPROXY=https://goproxy.cn

安装依赖

yum install -y gcc mysql-devel net-snmp-devel pcre*\
 curl-devel libxml2 libxml2-devel \
 automake libssh2-devel libevent-devel httpd libcurl-devel.x86_64 \
 kernel-devel openssl-devel popt-devel

部署 MySQL

MySQL 安装可以参考 MySQL + Keepalived 双主热备搭建

注意 Zabbix 要求数据库版本在 5.7.35 以上,并且 database 字符集要求是 utf8,校验集为 utf8_bin。

创建 database 指定字符集。

CREATE DATABASE `acpzabbixdb` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin

源码编译部署 Zabbix

下载并解压源码包

wget https://cdn.zabbix.com/zabbix/sources/stable/5.4/zabbix-5.4.4.tar.gz
tar -xzvf zabbix-5.4.4.tar.gz
cd zabbix-5.4.4

编译安装

./configure --prefix=/usr/local/zabbix \
--enable-server \
--enable-agent \
--with-mysql \
--with-libcurl \
--with-net-snmp \
--with-libxml2 \
--with-ssh2 \
--enable-webservice
make install

部署 Zabbix Server

创建用户和相关目录

useradd zabbix
mkdir /usr/local/zabbix/logs
mkdir /usr/local/zabbix/trap
chown -R zabbix.zabbix /usr/local/zabbix/

Zabbix Server 配置文件

编辑 /usr/local/zabbix/etc/zabbix_server.conf 文件:

#Zabbix Server 地址
SourceIP=11.8.38.70
#日志文件目录
LogFile=/usr/local/zabbix/logs/zabbix_server.log
#Pid 文件目录
PidFile=/usr/local/zabbix/zabbix_server.pid
#Socket 文件目录
SocketDir=/usr/local/zabbix
#数据库连接信息
DBHost=11.17.6.81
DBPort=4442
DBName=acpzabbixdb
DBUser=acpzabbixdb
DBPassword=yourpassword
Timeout=4
LogSlowQueries=3000
#允许所有地址访问
StatsAllowedIP=0.0.0.0
#配置缓存
CacheSize=1G
#snmp trap 目录
SNMPTrapperFile=/usr/local/zabbix/trap/zabbix_traps
#开启 snmp trap
StartSNMPTrapper=1
#拉取 snmp 信息的线程数
StartProxyPollers=20

Zabbix Server 备机配置和主机除了 SourceIP 以外,其余配置一样。

初始化数据库

SQL 文件在源码解压后的目录 zabbix-5.4.4/database/ 中,执行以下命令初始化数据库。初始化数据库只需要做一次,Zabbix Server 备机和主机共用一个 MySQL 数据库。

mysql -h 11.17.6.81 -P 4442 -uacpzabbixdb -pyourpassword acpzabbixdb < schema.sql
mysql -h 11.17.6.81 -P 4442 -uacpzabbixdb -pyourpassword acpzabbixdb < images.sql
mysql -h 11.17.6.81 -P 4442 -uacpzabbixdb -pyourpassword acpzabbixdb < data.sql

配置 Zabbix Server 系统服务

编辑 /usr/lib/systemd/system/zabbix-server.service 文件:

[Unit]
Description=Zabbix Server
After=network.target
[Service]
User=zabbix
Environment="CONFFILE=/usr/local/zabbix/etc/zabbix_server.conf"
Type=forking
Restart=on-failure
PIDFile=/usr/local/zabbix/zabbix_server.pid
KillMode=control-group
ExecStart=/usr/local/zabbix/sbin/zabbix_server -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeoutSec=0
[Install]
WantedBy=multi-user.target

启动 Zabbix Server,并设置开机自动启动。

systemctl enable zabbix-server.service 
systemctl start zabbix-server.service

查看 Zabbix Server 状态,Running 表示正常运行:

root@ydt-net-zabbix1:/root/zabbix-5.4.4/database #systemctl status zabbix-server
● zabbix-server.service - Zabbix Server
   Loaded: loaded (/usr/lib/systemd/system/zabbix-server.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2021-09-13 11:27:14 CST; 3min 23s ago
  Process: 18685 ExecStop=/bin/kill -SIGTERM $MAINPID (code=exited, status=0/SUCCESS)
  Process: 18688 ExecStart=/usr/local/zabbix/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS)
 Main PID: 18690 (zabbix_server)
   CGroup: /system.slice/zabbix-server.service
           ├─18690 /usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf
           ├─18692 /usr/local/zabbix/sbin/zabbix_server: configuration syncer [synced configuration in 0.055682 sec, idle 60 sec]
           ├─18693 /usr/local/zabbix/sbin/zabbix_server: alert manager #1 [sent 0, failed 0 alerts, idle 5.006520 sec during 5.006634 sec]
           ├─18694 /usr/local/zabbix/sbin/zabbix_server: alerter #1 started
           ├─18695 /usr/local/zabbix/sbin/zabbix_server: alerter #2 started
           ├─18696 /usr/local/zabbix/sbin/zabbix_server: alerter #3 started
           ├─18697 /usr/local/zabbix/sbin/zabbix_server: preprocessing manager #1 [queued 0, processed 2 values, idle 5.000761 sec during 5.000817 sec]
           ├─18698 /usr/local/zabbix/sbin/zabbix_server: preprocessing worker #1 started
           ├─18699 /usr/local/zabbix/sbin/zabbix_server: preprocessing worker #2 started
           ├─18700 /usr/local/zabbix/sbin/zabbix_server: preprocessing worker #3 started
           ├─18701 /usr/local/zabbix/sbin/zabbix_server: lld manager #1 [processed 0 LLD rules, idle 5.954542sec during 5.954592 sec]
           ├─18702 /usr/local/zabbix/sbin/zabbix_server: lld worker #1 started
           ├─18703 /usr/local/zabbix/sbin/zabbix_server: lld worker #2 started
           ├─18704 /usr/local/zabbix/sbin/zabbix_server: housekeeper [startup idle for 30 minutes]
           ├─18705 /usr/local/zabbix/sbin/zabbix_server: timer #1 [updated 0 hosts, suppressed 0 events in 0.001053 sec, idle 59 sec]
           ├─18706 /usr/local/zabbix/sbin/zabbix_server: http poller #1 [got 0 values in 0.000933 sec, idle 5 sec]
           ├─18707 /usr/local/zabbix/sbin/zabbix_server: discoverer #1 [processed 0 rules in 0.000936 sec, idle 60 sec]
           ├─18708 /usr/local/zabbix/sbin/zabbix_server: history syncer #1 [processed 0 values, 0 triggers in 0.000021 sec, idle 1 sec]
           ├─18709 /usr/local/zabbix/sbin/zabbix_server: history syncer #2 [processed 2 values, 2 triggers in 0.002352 sec, idle 1 sec]
           ├─18710 /usr/local/zabbix/sbin/zabbix_server: history syncer #3 [processed 0 values, 0 triggers in 0.000012 sec, idle 1 sec]
           ├─18711 /usr/local/zabbix/sbin/zabbix_server: history syncer #4 [processed 0 values, 0 triggers in 0.000022 sec, idle 1 sec]
           ├─18712 /usr/local/zabbix/sbin/zabbix_server: escalator #1 [processed 0 escalations in 0.001885 sec, idle 3 sec]
           ├─18713 /usr/local/zabbix/sbin/zabbix_server: proxy poller #1 [exchanged data with 0 proxies in 0.000037 sec, idle 5 sec]
           ├─18714 /usr/local/zabbix/sbin/zabbix_server: self-monitoring [processed data in 0.000017 sec, idle 1 sec]
           ├─18715 /usr/local/zabbix/sbin/zabbix_server: task manager [processed 0 task(s) in 0.003206 sec, idle 5 sec]
           ├─18716 /usr/local/zabbix/sbin/zabbix_server: poller #1 [got 0 values in 0.000026 sec, idle 5 sec]
           ├─18717 /usr/local/zabbix/sbin/zabbix_server: poller #2 [got 0 values in 0.000054 sec, idle 5 sec]
           ├─18718 /usr/local/zabbix/sbin/zabbix_server: poller #3 [got 0 values in 0.000018 sec, idle 5 sec]
           ├─18719 /usr/local/zabbix/sbin/zabbix_server: poller #4 [got 0 values in 0.000014 sec, idle 5 sec]
           ├─18720 /usr/local/zabbix/sbin/zabbix_server: poller #5 [got 0 values in 0.000067 sec, idle 5 sec]
           ├─18721 /usr/local/zabbix/sbin/zabbix_server: unreachable poller #1 [got 0 values in 0.000040 sec, idle 5 sec]
           ├─18722 /usr/local/zabbix/sbin/zabbix_server: trapper #1 [processed data in 0.000706 sec, waiting for connection]
           ├─18723 /usr/local/zabbix/sbin/zabbix_server: trapper #2 [processed data in 0.000486 sec, waiting for connection]
           ├─18724 /usr/local/zabbix/sbin/zabbix_server: trapper #3 [processed data in 0.000538 sec, waiting for connection]
           ├─18725 /usr/local/zabbix/sbin/zabbix_server: trapper #4 [processed data in 0.000475 sec, waiting for connection]
           ├─18726 /usr/local/zabbix/sbin/zabbix_server: trapper #5 [processed data in 0.000536 sec, waiting for connection]
           ├─18727 /usr/local/zabbix/sbin/zabbix_server: icmp pinger #1 [got 0 values in 0.000017 sec, idle 5 sec]
           ├─18728 /usr/local/zabbix/sbin/zabbix_server: alert syncer [queued 0 alerts(s), flushed 0 result(s) in 0.001174 sec, idle 1 sec]
           ├─18729 /usr/local/zabbix/sbin/zabbix_server: history poller #1 [got 0 values in 0.000039 sec, idle 1 sec]
           ├─18730 /usr/local/zabbix/sbin/zabbix_server: history poller #2 [got 1 values in 0.000109 sec, idle 1 sec]
           ├─18731 /usr/local/zabbix/sbin/zabbix_server: history poller #3 [got 1 values in 0.000163 sec, idle 1 sec]
           ├─18732 /usr/local/zabbix/sbin/zabbix_server: history poller #4 [got 0 values in 0.000140 sec, idle 1 sec]
           ├─18733 /usr/local/zabbix/sbin/zabbix_server: history poller #5 [got 0 values in 0.000150 sec, idle 1 sec]
           └─18734 /usr/local/zabbix/sbin/zabbix_server: availability manager #1 [queued 0, processed 0 values, idle 5.005236 sec during 5.005267 sec]

部署 Zabbix Web

拷贝前端文件

Zabbix 前端是 PHP 编写的,所以必须运行在支持 PHP 的 Web 服务器上,使用 Apache HTTP 作为 Web 服务器。

建议使用子目录替代 HTML 根目录。可以使用下列命令,以创建一个子目录并复制 Zabbix 的前端文件到这个目录下。

mkdir -p /var/www/html/zabbix
cp -a zabbix-5.4.4/ui/* /var/www/html/zabbix/

配置 PHP 文件

编辑 /var/www/html/zabbix/conf/zabbix.conf.php 文件:

<?php
//MySQL 连接信息
$DB['TYPE']                             = 'MYSQL';
$DB['SERVER']                   = '11.17.6.81';
$DB['PORT']                             = '4442';
$DB['DATABASE']                 = 'acpzabbixdb';
$DB['USER']                             = 'acpzabbixdb';
$DB['PASSWORD']                 = 'yourpassword';
// Schema name. Used for PostgreSQL.
$DB['SCHEMA']                   = '';
// Used for TLS connection.
$DB['ENCRYPTION']               = false;
$DB['KEY_FILE']                 = '';
$DB['CERT_FILE']                = '';
$DB['CA_FILE']                  = '';
$DB['VERIFY_HOST']              = false;
$DB['CIPHER_LIST']              = '';
// Vault configuration. Used if database credentials are stored in Vault secrets manager.
$DB['VAULT_URL']                = '';
$DB['VAULT_DB_PATH']    = '';
$DB['VAULT_TOKEN']              = '';
// Use IEEE754 compatible value range for 64-bit Numeric (float) history values.
// This option is enabled by default for new Zabbix installations.
// For upgraded installations, please read database upgrade notes before enabling this option.
$DB['DOUBLE_IEEE754']   = true;
#Zabbix Server 信息
$ZBX_SERVER                             = 'localhost';
$ZBX_SERVER_PORT                = '10051';
$ZBX_SERVER_NAME                = 'ACP-ZABBIX-SERVER-1';
$IMAGE_FORMAT_DEFAULT   = IMAGE_FORMAT_PNG;

Zabbix Web 备机部署的配置以及步骤和主机的一样,只是修改 /var/www/html/zabbix/conf/zabbix.conf.php 为

$ZBX_SERVER_NAME                = 'ACP-ZABBIX-SERVER-2';

便于我们识别主机和备机。

启动 Apache HTTP 服务,设置开机自动启动

systemctl start httpd
systemctl enable httpd

查看 HTTP 服务状态,running 表示正常运行:

root@ydt-net-zabbix1:/usr/local/zabbix/sbin #systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2021-09-13 11:05:30 CST; 39min ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 16648 (httpd)
   Status: "Total requests: 781; Current requests/sec: 0.3; Current traffic: 716 B/sec"
   CGroup: /system.slice/httpd.service
           ├─16648 /usr/sbin/httpd -DFOREGROUND
           ├─16649 /usr/sbin/httpd -DFOREGROUND
           ├─16651 /usr/sbin/httpd -DFOREGROUND
           ├─16741 /usr/sbin/httpd -DFOREGROUND
           ├─16749 /usr/sbin/httpd -DFOREGROUND
           ├─16751 /usr/sbin/httpd -DFOREGROUND
           ├─16752 /usr/sbin/httpd -DFOREGROUND
           ├─16879 /usr/sbin/httpd -DFOREGROUND
           ├─17012 /usr/sbin/httpd -DFOREGROUND
           ├─17209 /usr/sbin/httpd -DFOREGROUND
           └─18772 /usr/sbin/httpd -DFOREGROUND

浏览器输入 http://11.8.38.70/zabbix 访问 Zabbix Web 界面。默认用户名 Admin,密码 zabbix 。image.png

部署 Keepalived

下载并解压安装包

wget https://www.keepalived.org/software/keepalived-2.2.4.tar.gz
tar -xzvf keepalived-2.2.4.tar.gz

安装 Keepalived

mkdir /usr/local/keepalived
mkdir /etc/keepalived
cd keepalived-2.2.4
./configure --prefix=/usr/local/keepalived
make && make install

Keepalived 配置文件

主 Zabbix Keepalived 配置

编辑 /etc/keepalived/keepalived.conf 文件:

global_defs { 
     router_id acp_zabbix_server                 # 负载均衡标识,在局域网内应该是唯一的
}
vrrp_script check_zabbix {                               # 配置虚拟脚本
   script "/etc/keepalived/check_zabbix.sh"              # 执行脚本,检查 zabbix 服务是否存活
    interval 3                                           # 脚本执行间隔:秒
}
# vrrp_instance 
vrrp_instance v_zabbix { 
   state MASTER                                # 指定该 keepalived 节点的初始状态(MASTER|BACKUP)  
   interface eth0                               # VRRP 实例绑定的网口,用于发送 VRRP 包
   virtual_router_id 200                    # 路由 ID,范围是 0-255,主备都一样
   priority 100                                   # 指定优先级,优先级高的将成为 MASTER
   advert_int 1                                  # 指定发送 VRRP 广播的间隔。单位是秒
authentication {                               # 身份验证
   auth_type PASS                          # 指定认证方式
  auth_pass 123456                       # 指定认证所使用的密码 ,主备都一样
}
track_script {                               # 调用"vrrp_script"的脚本
    check_zabbix                           # 增加一个跟踪脚本到网口上
}
virtual_ipaddress {                     # 虚拟 IP
    11.8.38.208/24 
    } 
}

编辑 /etc/keepalived/check_zabbix.sh,设置主 Zabbix 健康检查脚本,当主 Zabbix 服务状态异常时,切换虚拟 IP 到备 Zabbix 上。

#!/bin/bash
#检查 Zabbix Server 服务
systemctl status zabbix-server &>/dev/null
if [ $? -ne 0 ];then
    echo -e "`date "+%F  %H:%M:%S"` 主机名: `hostname` Zabbix Server 服务异常,keepalived 切换" >> /usr/local/zabbix/logs/check_zabbix.log
    exit 1
else
   #检查 Zabbix Web 服务
   systemctl status httpd &>/dev/null
   if [ $? -ne 0 ];then
        echo -e "`date "+%F  %H:%M:%S"` 主机名: `hostname` Zabbix Web 服务异常,keepalived 切换" >> /usr/local/zabbix/logs/check_zabbix.log
        exit 1
   else
      exit 0
   fi
exit 0
fi

为脚本赋予可执行权限:

chmod +x /etc/keepalived/check_zabbix.sh
备 Zabbix Keepalived 配置

编辑 /etc/keepalived/keepalived.conf 文件:

global_defs { 
      router_id acp_zabbix_server                # 负载均衡标识,在局域网内应该是唯一的
}
# vrrp_instance 
vrrp_instance v_zabbix { 
   state BACKUP                                 # 指定该 keepalived 节点的初始状态(MASTER|BACKUP)
   interface eth0                                        # VRRP 实例绑定的网口,用于发送 VRRP 包
   virtual_router_id 200                                   # 路由ID,范围是0-255,主备都一样
   priority 90                                             # 指定优先级,优先级高的将成为 MASTER
   advert_int 1                                            # 指定发送VRRP广播的间隔。单位是秒
authentication {                                     # 身份验证
   auth_type PASS                                          # 指定认证方式
   auth_pass 123456                                       # 指定认证所使用的密码 ,主备都一样
}
notify_master /etc/keepalived/notify_zabbix.sh # 转换成 master 时,执行的脚本
virtual_ipaddress { 
    11.8.38.208/24 
   } 
}

编辑 /etc/keepalived/notify_zabbix.sh,当 Zabbix 发送主备切换时,发送告警通知。

#!/bin/bash
echo -e "`date "+%F  %H:%M:%S"` Zabbix 发生主备切换" >> /usr/local/zabbix/logs/notify_zabbix.log

为脚本赋予可执行权限:

chmod +x /etc/keepalived/notify_zabbix.sh

启动 Keepalived,并设置开机自动启动。

systemctl enable keepalived
systemctl start keepalived

高可用验证

浏览器访问 Zabbix Web,可以看到此时访问的是 ACP-ZABBIX-SERVER-1。image.png现在 keepalived 虚拟 IP 在 ydt-net-zabbix1 服务器上。

root@ydt-net-zabbix1:/etc/keepalived #ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 28:6e:d4:88:e3:33 brd ff:ff:ff:ff:ff:ff
    inet 11.8.38.70/24 brd 11.8.38.255 scope global eth0
       valid_lft forever preferred_lft forever
    #虚拟 IP
    inet 11.8.38.208/24 scope global secondary eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::2a6e:d4ff:fe88:e333/64 scope link 
       valid_lft forever preferred_lft forever

停止 ydt-net-zabbix1 上的 Zabbix Server 服务,模拟故障:

systemctl stop zabbix-server

查看 keepalived 状态,显示已经移除了本机的虚拟 IP。

root@ydt-net-zabbix1:/etc/keepalived #systemctl status keepalived.service 
● keepalived.service - LVS and VRRP High Availability Monitor
   Loaded: loaded (/usr/lib/systemd/system/keepalived.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2021-09-13 14:17:29 CST; 1min 47s ago
     Docs: man:keepalived(8)
           man:keepalived.conf(5)
           man:genhash(1)
           https://keepalived.org
  Process: 52720 ExecStart=/usr/local/keepalived/sbin/keepalived $KEEPALIVED_OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 52721 (keepalived)
   CGroup: /system.slice/keepalived.service
           ├─52721 /usr/local/keepalived/sbin/keepalived -D
           └─52722 /usr/local/keepalived/sbin/keepalived -D
Sep 13 14:17:38 ydt-net-zabbix1 Keepalived_vrrp[52722]: Sending gratuitous ARP on eth0 for 11.8.38.208
Sep 13 14:17:38 ydt-net-zabbix1 Keepalived_vrrp[52722]: Sending gratuitous ARP on eth0 for 11.8.38.208
Sep 13 14:17:38 ydt-net-zabbix1 Keepalived_vrrp[52722]: Sending gratuitous ARP on eth0 for 11.8.38.208
Sep 13 14:17:38 ydt-net-zabbix1 Keepalived_vrrp[52722]: Sending gratuitous ARP on eth0 for 11.8.38.208
Sep 13 14:17:38 ydt-net-zabbix1 Keepalived_vrrp[52722]: Sending gratuitous ARP on eth0 for 11.8.38.208
Sep 13 14:19:08 ydt-net-zabbix1 Keepalived_vrrp[52722]: Script `check_zabbix` now returning 1
Sep 13 14:19:08 ydt-net-zabbix1 Keepalived_vrrp[52722]: VRRP_Script(check_zabbix) failed (exited with status 1)
Sep 13 14:19:08 ydt-net-zabbix1 Keepalived_vrrp[52722]: (v_zabbix) Entering FAULT STATE
Sep 13 14:19:08 ydt-net-zabbix1 Keepalived_vrrp[52722]: (v_zabbix) sent 0 priority
Sep 13 14:19:08 ydt-net-zabbix1 Keepalived_vrrp[52722]: (v_zabbix) removing VIPs.

此时虚拟 IP 已经偏移到 ydt-net-zabbix2 上了。

root@ydt-net-zabbix2:/etc/keepalived #ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 28:6e:d4:88:e3:34 brd ff:ff:ff:ff:ff:ff
    inet 11.8.38.100/24 brd 11.8.38.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 11.8.38.208/24 scope global secondary eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::2a6e:d4ff:fe88:e334/64 scope link 
       valid_lft forever preferred_lft forever

浏览器刷新页面,可以看到此时访问的是 ACP-ZABBIX-SERVER-2。

image.pngZabbix Agent 用于收集服务器的监控数据(CPU,内存等等)发送给 Zabbix Server,在部署 Zabbix Server 的服务器上部署 Zabbix Agent 监控自己。

Zabbix Agent 配置文件

编辑 /usr/local/zabbix/etc/zabbix_agentd.conf 文件:

#Pid 文件目录
PidFile=/usr/local/zabbix/zabbix_agentd.pid
#Zabbix Agent 日志目录
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
#允许所有地址访问
Server=0.0.0.0/0
#Zabbix Server 地址,由于Zabbix Server 服务器和 Zabbix Agent 在一台机器上,因此用 127.0.0.1 通信即可
ServerActive=127.0.0.1
Hostname=Zabbix server

配置 Zabbix Agent 系统服务

编辑 /usr/lib/systemd/system/zabbix-agentd.service 文件:

[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target
[Service]
User=zabbix
Environment="CONFFILE=/usr/local/zabbix/etc/zabbix_agentd.conf"
EnvironmentFile=-/etc/sysconfig/zabbix-agent
Type=forking
Restart=on-failure
PIDFile=zabbix_agentd.pid
KillMode=control-group
ExecStart=/usr/local/zabbix/sbin/zabbix_agentd -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
[Install]
WantedBy=multi-user.target

启动 Zabbix Server,并设置开机自动启动。

systemctl enable zabbix-agentd.service 
systemctl start zabbix-agentd.service

查看 Zabbix Agent 主机信息:image.png

  • [官网 Zabbix 5.4 版本源码安装] (https://www.zabbix.com/documentation/current/manual/installation/install)
  • [zabbix ha 官方推荐高可用集群] (https://blog.z0ukun.com/?p=3632)
  • [Zabbix-5.4安装_实操文档] (https://www.jianshu.com/p/ad4bcd9ffeeb)
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
监控 前端开发 Linux
centos7系统安装部署zabbix5.0
【9月更文挑战第23天】在CentOS 7系统上部署Zabbix 5.0的步骤包括:安装MariaDB数据库及必要软件包,配置Zabbix仓库,设置数据库并导入Zabbix数据库架构,配置Zabbix服务器与前端参数,启动相关服务,并通过浏览器访问Web界面完成安装向导。
121 0
|
2月前
|
分布式计算 Hadoop Java
Hadoop集群搭建,基于3.3.4hadoop和centos8【图文教程-从零开始搭建Hadoop集群】,常见问题解决
本文是一份详细的Hadoop集群搭建指南,基于Hadoop 3.3.4版本和CentOS 8操作系统。文章内容包括虚拟机创建、网络配置、Java与Hadoop环境搭建、克隆虚拟机、SSH免密登录设置、格式化NameNode、启动Hadoop集群以及通过UI界面查看Hadoop运行状态。同时,还提供了常见问题的解决方案。
Hadoop集群搭建,基于3.3.4hadoop和centos8【图文教程-从零开始搭建Hadoop集群】,常见问题解决
|
1月前
|
存储 Linux 开发者
虚拟机centos7.9一键部署docker
本文介绍了如何在 CentOS 7.9 虚拟机上安装 Docker 社区版 (Docker-ce-20.10.20)。通过使用阿里云镜像源,利用 `wget` 下载并配置 Docker-ce 的 YUM 仓库文件,然后通过 `yum` 命令完成安装。安装后,通过 `systemctl` 设置 Docker 开机自启并启动 Docker 服务。最后,使用 `docker version` 验证安装成功,并展示了客户端与服务器的版本信息。文中还提供了列出所有可用 Docker-ce 版本的命令。
141 0
虚拟机centos7.9一键部署docker
|
2月前
|
存储 Kubernetes 负载均衡
CentOS 7.9二进制部署K8S 1.28.3+集群实战
本文详细介绍了在CentOS 7.9上通过二进制方式部署Kubernetes 1.28.3+集群的全过程,包括环境准备、组件安装、证书生成、高可用配置以及网络插件部署等关键步骤。
350 3
CentOS 7.9二进制部署K8S 1.28.3+集群实战
|
26天前
|
Kubernetes Ubuntu Linux
Centos7 搭建 kubernetes集群
本文介绍了如何搭建一个三节点的Kubernetes集群,包括一个主节点和两个工作节点。各节点运行CentOS 7系统,最低配置为2核CPU、2GB内存和15GB硬盘。详细步骤包括环境配置、安装Docker、关闭防火墙和SELinux、禁用交换分区、安装kubeadm、kubelet、kubectl,以及初始化Kubernetes集群和安装网络插件Calico或Flannel。
125 0
|
2月前
|
Kubernetes Linux API
CentOS 7.6使用kubeadm部署k8s 1.17.2测试集群实战篇
该博客文章详细介绍了在CentOS 7.6操作系统上使用kubeadm工具部署kubernetes 1.17.2版本的测试集群的过程,包括主机环境准备、安装Docker、配置kubelet、初始化集群、添加节点、部署网络插件以及配置k8s node节点管理api server服务器。
113 0
CentOS 7.6使用kubeadm部署k8s 1.17.2测试集群实战篇
|
运维 监控 安全
centos7怎么安装zabbix5?运维朱工手把手来教你
Zabbix是一个基于WEB界面的提供分布式系统监控的企业级的开源解决方案,Zabbix能监视各种网络参数,系统硬件参数,保证服务器系统的安全稳定的运行,并提供灵活的**通知机制**以让管理员快速定位并解决存在的各种问题。
441 0
centos7怎么安装zabbix5?运维朱工手把手来教你
|
监控 关系型数据库 数据库
CentOS7.6.1810安装Zabbix3.4-2
全新Centos7,全新安装Zabbix
2537 0
|
监控 网络协议 关系型数据库
|
SQL 关系型数据库 MySQL