Zabbix 6.0 部署

目录

一、序章

二、zabbix概念

2.1 zabbix 是什么?

2.2 zabbix 监控原理:

2.3 Zabbix 6.0 新特性:

2.3.1 Zabbix server高可用防止硬件故障或计划维护期的停机

2.3.2 Zabbix 6.0 LTS新增Kubernetes监控功能,可以在Kubernetes系统从多个维度采集指标

2.4 Zabbix 6.0 功能组件:

三、Zabbix 6.0 部署

3.1 部署 zabbix 服务端 前提环境

3.2 部署 Nginx + PHP 环境并测试

3.2.1 安装 nginx

3.2.2 安装 php

3.2.3 修改 nginx 配置

3.2.4 修改 php 配置

3.2.5 创建目录和测试文件

3.3 部署数据库,要求 MySQL 5.7 或 Mariadb 10.5 及以上版本

3.3.1 配置 Mariadb yum源

3.3.2 初始化数据库

3.3.3 创建数据库并指定字符集

3.3.4 创建 zabbix 数据库用户并授权

3.3.5 向数据库导入 zabbix 数据

3.3.6 按照顺利导入数据库

3.4 编译安装 zabbix Server 服务端

3.4.1 安装依赖包,创建 zabbix 用户

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

3.4.3 准备 systemctl 服务管理文件

3.5 部署 Web 前端,进行访问

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

3.7 添加 zabbix 客户端主机

四、自定义监控内容

4.1 在客户端创建自定义 key

4.1.1 明确需要执行的 linux 命令

4.1.2 创建 zabbix 的监控项配置文件,用于自定义 key

4.1.3 在服务端验证新建的监控项

4.2在 Web 页面创建自定义监控项模板

4.2.1 创建模板

4.2.2 创建监控项

4.2.3 创建触发器(当监控项获取到监控的值后和触发器预设的值进行对比,判断是否报警)

4.2.4 创建图形

4.2.5 将主机与模板关联起来(一个主机可以关联多个模板)

4.2.6 设置邮件报警

4.2.7 测试邮件报警

五、zabbix 自动发现与自动注册

5.1 zabbix 自动发现(对于 agent2 是被动模式)

5.1.1 环境准备

5.1.2 确保客户端上的 zabbix-agent2 服务状态正常

5.1.3 在 Web 页面删除原有的客户端主机

5.1.4 在服务端和客户端上配置 hosts 解析

5.1.5 在 Web 页面配置自动发现

5.2 zabbix 自动注册(对于 agent2 是主动模式)

5.2.1 环境准备

5.2.2 修改 zabbix-agent2 配置文件

5.2.3 在 Web 页面配置自动注册

六、部署 zabbix 代理服务器

分布式监控的作用

6.1 环境准备

6.2 设置 zabbix 的下载源,安装 zabbix-proxy

6.3 部署数据库,要求 MySQL 5.7 或 Mariadb 10.5 及以上版本

6.4 初始化数据库 

6.5 创建数据库用户并授权

6.6 导入数据库信息

6.7 修改 zabbix-proxy 配置文件

6.8 启动 zabbix-proxy

6.9 在所有主机上配置 hosts 解析

6.10 在 Web 页面配置 agent 代理

6.11 配置 agent 使用 proxy

6.11.1 在客户端修改 agent2 配置文件

6.11.2 在 Web 页面配置

6.11.3 分别在客户端和代理服务器上重启服务

6.11.4 在服务端查看日志

七、部署 Zabbix 高可用集群

7.1 服务端配置

7.1.1 主节点 Zabbix Server 配置

7.1.2 主节点给数据库授权远程登录权限

7.1.3 备节点 Zabbix Server 配置

7.2 客户端配置


一、序章

作为一个运维,需要会使用监控系统查看服务器系统性能、应用服务状态和网站流量指标等,利用监控系统的数据去了解项目上线发布的结果和健康状态。

利用一个优秀的监控软件,我们可以:

  • 通过一个友好的界面进行浏览整个项目于所有服务器的运行状态
  • 可以在 Web 前端方便的查看监控数据
  • 可以回溯寻找事故发生时系统的问题和报警情况

二、zabbix概念

2.1 zabbix 是什么?

  • zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
  • zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
  • zabbix 由 2 部分构成,zabbix server 与可选组件 zabbix agent。通过 C/S 模式采集数据,通过 B/S 模式在 Web 端展示和配置。
  • zabbix server 可以通过 zabbix agent,SNMP协议,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在 Linux 等平台上。
  • zabbix agent 需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU 等信息的收集。

2.2 zabbix 监控原理:

zabbix agent 安装在被监控的主机上,zabbix agent 负责定期收集客户端本地各项数据,并发送至 zabbix server 端,zabbix server 收到数据后, 将数据存储到数据库中,用户基于 Zabbix Web 可以看到数据在前端展现图像。当 zabbix 监控某个具体的项目, 该项目会设置一个触发器阈值, 当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(shell 命令、reboot、restart、 install 等)。

2.3 Zabbix 6.0 新特性:

2.3.1 Zabbix server高可用防止硬件故障或计划维护期的停机

  • 原生选择加入HA群集配置
  • 定义一个或多个备用节点
  • 实时监控Zabbix server群集节点的状态
  • 不需要外部工具即可将Zabbix server配置为HA群集模式

2.3.2 Zabbix 6.0 LTS新增Kubernetes监控功能,可以在Kubernetes系统从多个维度采集指标

  • Kubernetes节点和pods的自动发现和监控
  • 无代理方式采集Kubernetes pods和节点的信息
  • 获取Kubernetes节点主机高水平信息

2.4 Zabbix 6.0 功能组件:

Zabbix Server

  • zabbix 服务端守护进程,是 Zabbix 软件的核心组件,Zabbix Agent 向其报告可用性、系统完整性信息和统计信息。
  • Zabbix Server 也是存储所有配置信息、统计信息和操作信息的核心存储库。
  • Zabbix Server 也是 Zabbix 监控系统的告警中心。在监控的系统中出现任何异常,将发出通知给管理员。

基本的 Zabbix Server 的功能分解成为三个不同的组件。他们是:Zabbix server、Web 前端、数据库。

Zabbix 的所有配置信息都存储在 Server 和 Web 前端进行交互的数据库中。例如,当你通过 Web 前端(或者API)新增一个监控项时, 它会被添加到数据库的监控项表里。然后,Zabbix server 以每分钟一次的频率查询监控项表中的有效项,接着将它存储在 Zabbix server 中的缓存里。 这就是为什么 Zabbix 前端所做的任何更改需要花费两分钟左右才能显示在最新的数据段的原因。

数据库
所有配置信息以及 Zabbix 采集到的数据都被持久存储在数据库中。
可以支持 MySQL、PostgreSQL、Oracle、DB2、TimescaleDB 等多种数据库。

Web 界面
Web 界面是 Zabbix Server 的一部分,用于实现展示和配置的界面。通常(但不一定)和 Zabbix server 运行在同一台物理机器上。
基于 Apache/Nginx + PHP 实现,早期只支持 LAMP 架构,从 Zabbix5.0 开始支持 LNMP 。

Zabbix Agent
客户端守护进程,部署在被监控目标上,用于主动监控本地资源和应用程序,并将收集的数据发送给 Zabbix Server。从 Zabbix5.0 开始支技 Zabbix Agent2 。

Zabbix Proxy
zabbix 分布式代理守护进程,可以代替 Zabbix Server 采集性能和可用性数据。Zabbix Proxy 在 Zabbix 的部署是可选部分。
Zabbix Proxy 的部署可以很好的分担单个 Zabbix Server 的负载。
通常监控大于 500 台主机时使用,需要进行分布式监控架构部署。

Java Gateway
Zabbix 要监控 Tomcat 服务或其它 JAVA 程序(比例 Elasticsearch、ZooKeeper),需要使用 Java Gateway 做为代理,才能从 JAVA 程序中获取数据。

三、Zabbix 6.0 部署

  • 系统:CentOS 7 不支持 yum 方式安装 Zabbix 6.0 服务端
  • 安装方式:Zabbix 服务端采用编译安装的方式,zabbix 客户端采用 yum 安装的方式

3.1 部署 zabbix 服务端 前提环境

//关闭 selinux 与防火墙
systemctl disable --now firewalld
setenforce 0
hostnamectl set-hostname zbx-server

3.2 部署 Nginx + PHP 环境并测试

3.2.1 安装 nginx

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
EOFyum install -y nginx

3.2.2 安装 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

3.2.3 修改 nginx 配置

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;}
}

3.2.4 修改 php 配置

vim /etc/php-fpm.d/www.conf
user = nginx
group = nginxvim /etc/php.ini
max_execution_time = 300        # 368行
max_input_time = 600            # 378行
post_max_size = 80M             # 656行
date.timezone = Asia/Shanghai   # 877行

3.2.5 创建目录和测试文件

mkdir -p /var/www/zbxvim /var/www/zbx/index.php
<?php
phpinfo();
?>#启动服务
systemctl enable --now nginx php-fpm#测试访问(hosts解析)
修改 C:\Windows\System32\drivers\etc\hosts
192.168.80.20 zbx.xy101.com浏览器访问:http://zbx.xy101.com/index.php

3.3 部署数据库,要求 MySQL 5.7 或 Mariadb 10.5 及以上版本

3.3.1 配置 Mariadb yum源

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
EOFyum install -y mariadb-server mariadbsystemctl enable --now mariadb

3.3.2 初始化数据库

mysql_secure_installation
分别输入 回车 -> n -> Y (设置root密码,如abc123) -> 后面一路 Ymysql -u root -pabc123

3.3.3 创建数据库并指定字符集

CREATE DATABASE zabbix character set utf8 collate utf8_bin;

3.3.4 创建 zabbix 数据库用户并授权

CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
CREATE USER 'zabbix'@'%' IDENTIFIED BY 'zabbix';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'%';
flush privileges;

3.3.5 向数据库导入 zabbix 数据

上传源码包 zabbix-6.0.13.tar.gz 到 /opt 目录
cd /opt
tar xf zabbix-6.0.13.tar.gzls /opt/zabbix-6.0.13/database/mysql
data.sql  double.sql  history_pk_prepare.sql  images.sql  Makefile.am  Makefile.in  schema.sql

3.3.6 按照顺利导入数据库

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

3.4 编译安装 zabbix Server 服务端

3.4.1 安装依赖包,创建 zabbix 用户

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++ makeuseradd -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-libpcremake install#检查版本
zabbix_server --version
zabbix_server (Zabbix) 6.0.13

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

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

3.4.3 准备 systemctl 服务管理文件

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
EOFsystemctl daemon-reloadtouch /var/log/zabbix_server.log
chown zabbix.zabbix /var/log/zabbix_server.logsystemctl enable --now zabbix-servernetstat -lntp | grep 10051            #zabbix_server 默认监听 10051 端口

3.5 部署 Web 前端,进行访问

cp -r /opt/zabbix-6.0.13/ui/* /var/www/zbxchown -R nginx.nginx /var/www/zbx浏览器访问:http://zbx.xy101.com/ 
【Default language】选择 Chinese(zh_CN),点击下一步
【密码】输入 zabbix,点击下一步
【Zabbix主机名称】输入 Zabbix-监控;【默认时区】选择 Asia/Shanghai,点击下一步安装完成后,默认的登录账号和密码为:Admin/zabbix

3.6 安装 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-agent2systemctl enable --now zabbix-agent2netstat -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刷新浏览器页面

3.7 添加 zabbix 客户端主机

systemctl disable --now firewalld
setenforce 0
hostnamectl set-hostname zbx-agent01//服务端和客户端都配置时间同步
yum install -y ntpdate
ntpdate -u ntp.aliyun.com//服务端和客户端都设置 hosts 解析
cat > /etc/hosts << EOF
192.168.80.20 zbx-server
192.168.80.30 zbx-agent01
EOF
//设置 zabbix 的下载源,安装 zabbix-agent2
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.repoyum install -y zabbix-agent2
//修改 agent2 配置文件
vim /etc/zabbix/zabbix_agent2.conf
......
Server=192.168.80.20            #80行,指定 zabbix 服务端的 IP 地址
ServerActive=192.168.80.20        #133行,指定 zabbix 服务端的 IP 地址
Hostname=zbx-agent01            #144行,指定当前 zabbix 客户端的主机名//启动 zabbix-agent2
systemctl start zabbix-agent2
systemctl enable zabbix-agent2netstat -natp | grep zabbix
tcp6       0      0 :::10050                :::*                    LISTEN      43654/zabbix_agent2 
//在服务端验证 zabbix-agent2 的连通性
yum install -y zabbix-get                #安装 zabbix 主动获取数据的命令zabbix_get -s '192.168.80.30' -p 10050 -k 'agent.ping'
1zabbix_get -s '192.168.80.30' -p 10050 -k 'system.hostname'
zbx-agent01
#常用的键值
agent.ping                                                #服务端与客户端是否连通,返回1表示可达,返回非表示不可达
system.hostname                                            #系统主机名
agent.hostname                                            #客户端主机名
net.if.in[if,<mode>]                                    #网络接口进入的流量统计,if表示网卡名称,带<>的参数表示可以省略
net.if.out[if,<mode>]                                    #网络接口流出的流量统计
proc.num[<name>,<user>,<state>,<cmdline>,<zone>]        #进程数
net.tcp.port[<ip>,port]                                    #检查是否能建立tcp连接到指定端口,返回0表示不能连接,返回1表示可以连接
//在 Web 页面中添加 agent 主机
点击左边菜单栏【配置】中的【主机】,点击【创建主机】
【主机名称】输入 zbx-agent01
【可见的名称】输入 zbx-agent01-192.168.80.30
【模板】搜索 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 个,超过 3 个就发出报警信息

4.1 在客户端创建自定义 key

4.1.1 明确需要执行的 linux 命令

who | wc -l

4.1.2 创建 zabbix 的监控项配置文件,用于自定义 key

vim /etc/zabbix/zabbix_agent2.conf
#可以将自定义的监控项配置文件创建在 zabbix_agent2.d 目录中
281 Include=/etc/zabbix/zabbix_agent2.d/*.conf
#自定义监控项的格式如下
321 #    Format: UserParameter=<key>,<shell command>cd /etc/zabbix/zabbix_agent2.d/vim UserParameter_login.conf          #创建自定义监控项配置文件
UserParameter=login.user,who|wc -lsystemctl restart zabbix-agent2

4.1.3 在服务端验证新建的监控项

zabbix_get -s '192.168.80.30' -p 10050 -k 'login.user'

4.2在 Web 页面创建自定义监控项模板

4.2.1 创建模板

点击左边菜单栏【配置】中的【模板】,点击【创建模板】
【模板名称】设置成 Template Login User
【可见的名称】设置成 Template Login User
【群组】选择 Template
【描述】可自定义
点击 【添加】,此时就可在【名称】中搜索到 Template Login User 了

4.2.2 创建监控项

点击 Template Login User 模板进入
点击上方菜单栏【监控项】,点击【创建监控项】
【名称】设置成 Number of login users
【键值】设置成 login.user            #键值必须要与自定义的监控项配置文件中设置的保持一致
【更新间隔】设置成 10s
【历史数据保留时长】Storage period    30d        #保留时间可自定义设置
点击 【添加】

4.2.3 创建触发器(当监控项获取到监控的值后和触发器预设的值进行对比,判断是否报警)

点击上方菜单栏【触发器】,点击【创建触发器】
【名称】设置成 Number of login users is greater than 3
【严重性】设置成 一般严重        #根据严重程度可自定义设置
【表达式】点击添加,【监控项】点击选择 Number of login users,【功能】选择 last(),【结果】选择 > 3,点击 【插入】
点击 【添加】

4.2.4 创建图形

点击上方菜单栏【图形】,点击【创建图形】
【名称】设置成 Number of login users
【宽】、【高】可直接采用默认值
【监控项】点击添加勾选相关监控项 Number of login users,【功能】选择 最大,其它可保持默认值
点击 【添加】

4.2.5 将主机与模板关联起来(一个主机可以关联多个模板)

点击左边菜单栏【配置】中的【主机】,点击你要关联的主机
【模板】搜索 login,选择 Template Login User,点击【更新】此时就点击【监测】中的【主机】,点击你关联主机的【图形】,即可查看到相关的监控项指标

4.2.6 设置邮件报警

点击左边菜单栏【管理】中的【报警媒介类型】,点击【创建媒体类型】
【名称】设置成 qq_Email
【SMTP服务器】设置成 smtp.qq.com
【SMTP服务器端口】设置成 25
【SMTP HELO】设置成 qq.com
【SMTP电邮】设置成 自己的邮箱地址,例如 qwe4546456@qq.com
【认证】选择 用户名和密码
【用户名称】设置成 自己的邮箱地址,例如 qwe4546456@qq.com
【密码】可登录QQ邮箱页面,点击【设置】-->【账户】中的【生成授权码】,通过短信获取授权码
【描述】可自定义
点击上方菜单栏【Message templates】,点击【添加】,【Message type】选择 问题,点击【更新】
点击 【添加】,并测试功能点击左边菜单栏【User settings】-->【Profile】-->【报警媒介】,点击【添加】
【类型】选择 qq_Email
【收件人】设置成 qwe4546456@wo.cn
【当启用时】设置成 1-7,00:00-24:00
【如果存在严重性则使用】勾选需要的严重性
点击 【添加】
再点击 【更新】点击左边菜单栏【配置】->【动作】->【Trigger actions】
选择相对应的动作名称点击进入,点击 【添加】
【类型】选择 触发器,【操作者】选择 等于,【触发器】点击选择 Nunber of login users is greater than 3
点击【添加】
勾选 【已启动】
点击 【更新】

4.2.7 测试邮件报警

增加测试客户端的用户登录数超过触发器预设的值,查看【监测】-->【仪表板】,确认报警

五、zabbix 自动发现与自动注册

5.1 zabbix 自动发现(对于 agent2 是被动模式)

zabbix server 主动的去发现所有的客户端,然后将客户端的信息登记在服务端上。
缺点是如果定义的网段中的主机数量多,zabbix server 登记耗时较久,且压力会较大。

5.1.1 环境准备

systemctl disable --now firewalld
setenforce 0
hostnamectl set-hostname zbx-agent02

5.1.2 确保客户端上的 zabbix-agent2 服务状态正常

systemctl is-active zabbix-agent2.service 
active

5.1.3 在 Web 页面删除原有的客户端主机

点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除

5.1.4 在服务端和客户端上配置 hosts 解析

vim /etc/hosts
192.168.80.20 zbx-server
192.168.80.30 zbx-agent01
192.168.80.40 zbx-agent02

5.1.5 在 Web 页面配置自动发现

点击左边菜单栏【配置】中的【自动发现】,点击【创建发现规则】
【名称】设置成 mynetwork
【IP范围】设置成 192.168.80.1-254
【更新间隔】设置成 30s
【检查】点击【添加】,【检查类型】选择 Zabbix 客户端,【端口范围】设置成 10050,【键值】设置成 system.uname
【设备唯一性准则】选择 IP地址
【主机名称】选择 DNS名称
【可见的名称】选择 主机名称
勾选 【已启用】,点击 【添加】点击左边菜单栏【配置】中的【动作】,上方菜单选择 【发现动作】
勾选 【Auto discovery. Linux servers.】,点击 【启用】点击左边菜单栏【配置】中的【主机】刷新,等待一段时间后即可刷新出自动发现的客户端主机可在服务端查看 zabbix 日志
tail -f /var/log/zabbix_server.log
......6601:20210922:225044.115 enabling Zabbix agent checks on host "zbx-agent02": interface became available

5.2 zabbix 自动注册(对于 agent2 是主动模式)

zabbix agent2 会主动上报自己的信息,发给 zabbix server。
缺点是可能因为配置文件配置错误或者网络不通等原因导致 zabbix agent2 可能找不到 zabbix server。

5.2.1 环境准备

点击左边菜单栏【配置】中的【发现动作】,勾选发现规则,点击 禁用
点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除vim /etc/hosts
192.168.80.20 zbx-server
192.168.80.30 zbx-agent01
192.168.80.40 zbx-agent02

5.2.2 修改 zabbix-agent2 配置文件

vim /etc/zabbix/zabbix_agent2.conf
......
HostnameItem=system.hostname        #152行,取消注释egrep -v "^#|^$" /etc/zabbix/zabbix_agent2.conf 
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.80.20
ServerActive=192.168.80.20
Hostname=zbx-agent01
HostnameItem=system.hostname
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.socksystemctl restart zabbix-agent2

5.2.3 在 Web 页面配置自动注册

点击左边菜单栏【配置】中的【动作】,上方菜单选择 【自动注册动作】,点击【创建动作】
【名称】设置成 Auto registration
点击 【添加】,【类型】选择 主机名称,【操作者】选择 包含,【值】设置成 zbx-agent
点击上方菜单栏【操作】,点击【添加】,【操作类型】选择 添加主机,点击 【Add】
再点击【添加】,【操作类型】选择 添加到主机群组,【主机群组】选择 Linux servers,点击 【Add】
再点击【添加】,【操作类型】选择 与模板关联,【模板】搜索 Linux,选择 Linux by Zabbix agent,点击 【Add】
点击下方的【添加】等待一段时间后,点击左边菜单栏【配置】中的【主机】刷新,即可刷新出自动发现的客户端主机在服务端查看 zabbix 日志
tail -f /var/log/zabbix_server.log

六、部署 zabbix 代理服务器

分布式监控的作用

  • 分担 server 的集中式压力
  • 解决多机房之间的网络延时问题

agent --> proxy --> server

6.1 环境准备

systemctl disable --now firewalld
setenforce 0
hostnamectl set-hostname zbx-proxy

6.2 设置 zabbix 的下载源,安装 zabbix-proxy

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.repoyum install -y zabbix-proxy-mysql zabbix-sql-scripts zabbix-selinux-policy

6.3 部署数据库,要求 MySQL 5.7 或 Mariadb 10.5 及以上版本

#配置 Mariadb yum源
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
EOFyum install -y mariadb-server mariadbsystemctl enable --now mariadb

6.4 初始化数据库 

mysql_secure_installation
分别输入 回车 -> n -> Y (设置root密码,如abc123) -> 后面一路 Ymysql -u root -pabc123

6.5 创建数据库用户并授权

#创建数据库并指定字符集
CREATE DATABASE zabbix_proxy character set utf8 collate utf8_bin;#创建 zabbix 数据库用户并授权
GRANT all ON zabbix_proxy.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
GRANT all ON zabbix_proxy.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
FLUSH PRIVILEGES;

6.6 导入数据库信息

rpm -ql zabbix-sql-scripts         #查询 sql 文件的位置cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql -uroot -pabc123 zabbix_proxy

6.7 修改 zabbix-proxy 配置文件

vim /etc/zabbix/zabbix_proxy.conf
Server=192.168.80.20                #32行,指定 zabbix 服务端的 IP 地址
Hostname=zbx-proxy                    #42行,指定当前 zabbix 代理服务器的主机名
DBPassword=zabbix                    #194行,指定当前数据库 zabbix 用户的密码

6.8 启动 zabbix-proxy

systemctl start zabbix-proxy
systemctl enable zabbix-proxy

6.9 在所有主机上配置 hosts 解析

vim /etc/hosts
192.168.80.20 zbx-server
192.168.80.30 zbx-agent01
192.168.80.13 zbx-proxy

6.10 在 Web 页面配置 agent 代理

点击左边菜单栏【配置】中的【动作】,勾选自动注册规则,点击 禁用
点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除点击左边菜单栏【管理】中的【agent代理程序】,点击【创建代理】
【agent代理程序名称】输入 zbx-proxy
【系统代理程序模式】选择 主动式
【代理地址】输入 192.168.80.13
点击 【添加】

6.11 配置 agent 使用 proxy

6.11.1 在客户端修改 agent2 配置文件

vim /etc/zabbix/zabbix_agent2.conf
......
Server=192.168.80.13            #80行,指定 zabbix 代理服务器的 IP 地址
ServerActive=192.168.80.13        #120行,指定 zabbix 代理服务器的 IP 地址

6.11.2 在 Web 页面配置

点击左边菜单栏【配置】中的【主机】,点击【创建主机】
【主机名称】输入 zbx-agent01
【可见的名称】输入 zbx-agent01
【模板】搜索 Linux ,选择 Linux by Zabbix agent
【群组】选择 Linux server
【Interfaces】选择 客户端,【IP地址】输入 192.168.80.30,【端口】输入 10050
【由agent代理程序监测】选择 zbx-proxy
点击 【添加】

6.11.3 分别在客户端和代理服务器上重启服务

systemctl restart zabbix-agent2systemctl restart zabbix-proxy等待一段时间后,点击左边菜单栏【配置】中的【主机】刷新,查看客户端主机监控状态正常

6.11.4 在服务端查看日志

tail -f /var/log/zabbix/zabbix_proxy.log 

七、部署 Zabbix 高可用集群

官方的高可用仅仅针对 Zabbix Server 部分,数据库部分和前端部分需要自行采用各自领域的高可用解决方案。

7.1 服务端配置

默认情况下,HA 是关闭的。HA 部分的配置在配置文件的最下面:High availability cluster parameters 部分。

7.1.1 主节点 Zabbix Server 配置

vim /etc/zabbix/zabbix_server.conf
......
DBHost=192.168.80.20
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
......
HANodeName=zbx-server01                    #设置为当前节点主机名或者IP地址,需保证同一集群中唯一
NodeAddress=192.168.80.20:10051            #设置为相对应的节点IPsystemctl restart zabbix-server

7.1.2 主节点给数据库授权远程登录权限

mysql -uroot -pabc123
GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
FLUSH PRIVILEGES;

7.1.3 备节点 Zabbix Server 配置

vim /etc/zabbix/zabbix_server.conf
......
DBHost=192.168.80.20
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
......
HANodeName=zbx-server02
NodeAddress=192.168.80.30:10051systemctl restart zabbix-server

7.2 客户端配置

vim /etc/zabbix/zabbix_agentd.conf 
......
Server=192.168.80.20,192.168.80.30
ServerActive=192.168.80.20;192.168.80.30            #注意,ServerActive 的连接符是‘;’ ,而不是‘,’

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/8274.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

深⼊理解指针(3)【数组与指针】

目录 1. 数组名的理解 2. 使⽤指针访问数组 3. ⼀维数组传参的本质 4. 冒泡排序 5. ⼆级指针 6. 指针数组 7. 指针数组模拟⼆维数组 一 数组名的理解 由上图可知我们使⽤ &arr[0] 的⽅式拿到了数组第⼀个元素的地址&#xff0c;但是其实数组名本来就是地址…

ubuntu【桌面】 配置NAT模式固定IP

DHCP分配导致虚拟机IP老变&#xff0c;SSH老要重新配置&#xff0c;设成静态方便些 一、设NAT模式 1、设为NAT模式 2、看模式对应的虚拟网卡 - VMnet8 3、共享主机网卡网络到虚拟网卡 - VMnet8 二、为虚拟网卡设置静态IP 记住这个IP IP不要与网关重复 这里网关注意要与虚拟…

最强攻略密码 | 腾讯云双十一活动爆款直击底价

前言 每年双十一&#xff0c;腾讯云都会推出一系列的优惠活动&#xff0c;吸引着大量的消费者和开发者参与。作为国内领先的云计算服务商之一&#xff0c;腾讯云不仅提供强大的云计算基础设施服务&#xff0c;还涉及云存储、大数据分析、人工智能等多个领域&#xff0c;而双十…

c# 动态lambda实现二级过滤(多种参数类型)

效果 调用方法 实体类&#xff08;可以根据需求更换&#xff09; public class ToolStr50 {public bool isSelected { get; set; }public string toolStr1 { get; set; }public string toolStr2 { get; set; }public string toolStr3 { get; set; }public string toolStr4 { …

5万加购上线即断货,双11洗衣机品类打破增长难关

距离2024年双11结束仅剩最后几天。据网经社报告&#xff0c;目前各电商平台累计销售额已超8000亿元。 其中&#xff0c;家电品类已超1000亿元的销额位居前列&#xff0c;市场占有率达15.7%。天猫平台数据显示&#xff0c;预售日开售后1小时&#xff0c;大家电整体成交同比增长7…

[全网最细数据结构完整版]第六篇:3分钟带你吃透栈并模拟实现

目录 1->栈的概念和结构 1.1栈的概念 1.2栈的结构 2->栈的实现 2.1定义关于栈的结构体和各种函数 2.2栈的初始化 STInit 函数 2.3栈的销毁 STDestroy 函数 2.4栈的插入操作 STPush 函数 2.5栈的判断是否为空操作 STEmpty 函数 2.6栈的删除操作 STPop 函数 2.7…

Xfce桌面设置右键菜单:用右键打开VSCode

前言 AlmaLinux安装VSCode之后始终没有找到如何用右键菜单打开VSCode&#xff0c;比Windows麻烦多了。每次都需要先找到文件夹&#xff0c;然后用系统自带的Open In Terminal打开终端&#xff0c;再输入code .&#xff0c;才能够在当前文件夹中快速打开VSCode。那么&#xff0…

使用docker形式部署jumpserver

文章目录 前言一、背景二、使用步骤1.基础环境准备2.拉取镜像3.进行部署4.备份记录启动命令 前言 记录一下使用docker形式部署jumpserver服务的 一、背景 搭建一个jumpserver的堡垒机&#xff0c;但是发现之前是二进制文件部署的&#xff0c;会在物理机上部署污染环境&#x…

我谈正态分布——正态偏态

目录 pdf和cdf参数 标准正态分布期望和方差分布形态 3 σ 3\sigma 3σ原则 正态和偏态正态偏态瑞利分布偏度 (Skewness)峰度 (Kurtosis) 比较 正态分布的英文是Normal Distribution&#xff0c;normal是“正常”或“标准”的意思&#xff0c;中文翻译是正态&#xff0c;多完美的…

【嵌入式】STM32中的SPI通信

SPI是由摩托罗拉公司开发的一种通用数据总线&#xff0c;其中由四根通信线&#xff0c;支持总线挂载多设备&#xff08;一主多从&#xff09;&#xff0c;是一种同步全双工的协议。主要是实现主控芯片和外挂芯片之间的交流。这样可以使得STM32可以访问并控制各种外部芯片。本文…

大A终究是逃不过高开低走的魔咒

大A终究是逃不过高开低走的魔咒&#xff0c;早盘高开太多&#xff0c;周末休市&#xff0c;今天会议结束&#xff0c;各种不确定因素增加等原因导致午盘普跌。其实还是那句话&#xff0c;股市嘛&#xff0c;涨多了会跌&#xff0c;跌多了会涨&#xff0c;别急也别慌。 周末&…

知识付费小程序搭建,线上网课平台开发

我是【码云数智】平台的黄导&#xff0c;今天分享&#xff1a;知识付费小程序搭建&#xff0c;线上网课平台开发 在线网校小程序开发&#xff0c;在线教育小程序还不断优化界面设计&#xff0c;确保操作简便直观&#xff0c;无论是老人还是小孩都能轻松上手。​​ 01、小程序…

Python | Leetcode Python题解之第543题二叉树的直径

题目&#xff1a; 题解&#xff1a; class Solution:def diameterOfBinaryTree(self, root: TreeNode) -> int:self.ans 1def depth(node):# 访问到空节点了&#xff0c;返回0if not node:return 0# 左儿子为根的子树的深度L depth(node.left)# 右儿子为根的子树的深度R …

无代码开发平台smardaten R5C50 新版本更新!都做了哪些改变?

数睿数据为此次新版本做了7项体验优化、8项功能增补、1项性能优化&#xff0c;总计16个功能点。快来看看&#xff0c;哪个功能戳中你的心~ 一、体验优化 围绕smardaten搭建第一个原型并完成发布主链路&#xff0c;进行了体验优化&#xff0c;解决新手门槛高、模板使用路径长、…

175页PPTBCG某企业健康智能制造与供应链战略规划建议书

智能制造与供应链战略规划方法论是一个系统性、科学性的框架&#xff0c;旨在指导企业实现智能制造转型和供应链优化。以下是对这一方法论的核心内容的归纳和阐述&#xff1a; 一、智能制造的目标与原则 明确智能制造目标&#xff1a; 提高生产效率&#xff1a;通过引入自动…

DICOM标准:深入详解DICOM医学影像中的传输语法

引言 DICOM&#xff08;数字成像和通信医学&#xff09;标准在医学影像数据交换中扮演着至关重要的角色。其中&#xff0c;*传输语法&#xff08;Transfer Syntax&#xff09;是DICOM标准中定义数据编码和传输方式的核心部分。理解传输语法对于确保不同设备和系统之间的互操作性…

爱普生SG-8201CG可编程晶振智能门锁的核心驱动

在智能家居蓬勃发展的时代浪潮中&#xff0c;智能门锁作为智能家居的第一道防线&#xff0c;其安全性与便捷性至关重要。爱普生 SG - 8201CG 可编程晶振犹如一颗隐藏在幕后却发挥着关键作用的智慧芯片&#xff0c;为智能家居系统的高效、稳定运行提供了不可或缺的精准时钟信号。…

LLM大模型微调(lora原理)

一、微调方法介绍 1.1 Lora原理 通过低秩矩阵来降低模型训练的参数量&#xff0c;有点‘给我一个支点&#xff0c;就可以撬动地球’的感觉&#xff0c;其中矩阵的秩&#xff08;rank&#xff09;就有点像这个‘支点’的意思&#xff0c;大致原理如下&#xff1a; LoRA 的核心…

协议(OSI-tcp-udp)

目录 OSI七层协议模型 TCP/IP协议 3次握手 4次挥手 TCP VS UDP TCP和UDP分别对应的常见应用层协议 Tcp 状态机 TCP/ UDP /socket /http /webSocket 区别 RPC 和 RMI RPC与RMI的区别 Web Service SOAP&#xff08;Simple Object Access Protocol&#xff1a;简单对…

源代码防泄密管理分享

随着信息技术的快速发展&#xff0c;软件已成为现代企业不可或缺的核心资产之一。然而&#xff0c;源代码作为软件的心脏&#xff0c;其安全性直接关系到企业的核心竞争力。为了有效防止源代码泄露&#xff0c;构建一套全面且高效的源代码安全管理体系显得尤为重要。以下是六个…