Loading

监控系列:Zabbix

监控服务-Zabbix

1. 极速上手

1.1 主机规划

角色 主机名 IP
Zabbix服务端 devops 10.0.0.20、172.16.1.20
Zabbix数据库 db01 10.0.0.17、172.16.1.17
Zabbix客户端 web05 10.0.0.13、172.16.1.13
Zabbix客户端 web06 10.0.0.14、172.16.1.14

1.2 部署nginx、php环境

新增以下几个yum源

[root@devops ~]# cat /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[root@devops ~]# cat /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/epel/7/$basearch
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
baseurl=https://mirrors.tuna.tsinghua.edu.cn/epel/7/$basearch/debug
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1

[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
baseurl=https://mirrors.tuna.tsinghua.edu.cn/epel/7/SRPMS
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1
[root@devops ~]# cat /etc/yum.repos.d/yum-php.repo
[webtatic-php]
name = php Repository
baseurl = http://us-east.repo.webtatic.com/yum/el7/x86_64/
enabled = 1
gpgcheck = 0

安装nginx和php

 yum install nginx php72w-cli php72w-fpm php72w-gd php72w-mbstring php72w-bcmath php72w-xml php72w-ldap php72w-mysqlnd -y

image-20230423215226096


在nginx的配置目录下的conf.d目录编写zabbix网站的配置

[root@devops ~]# cat /etc/nginx/conf.d/zbx.yinjay.com.conf
server {
    listen 80;
    server_name zbx.yinjay.com;
    root /app/code/zbx;

    location / {
        index index.php;
    }

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

}

修改php配置,将运行用户更改为nginx

[root@devops ~]# sed -ri '/^(user|group)/s#apache#nginx#g' /etc/php-fpm.d/www.conf
[root@devops ~]# cat /etc/php-fpm.d/www.conf | egrep '^(user|group)'
user = nginx
group = nginx

创建zbx目录并创建测试文件

[root@devops ~]# mkdir -p /app/code/zbx
[root@devops ~]# cat /app/code/zbx/info.php
<?php
phpinfo();
?>

启动服务并设置开机自启,同时测试nginx与php是否正常

[root@devops ~]# systemctl enable nginx php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
[root@devops ~]# systemctl start nginx php-fpm

物理机添加一条10.0.0.20 zbx.yinjay.com的host记录,浏览器访问测试,出现以下内容则无问题,接着部署数据库。

image-20230423220342903


1.3 部署MariaDB数据库

可以通过此链接来了解Zabbix6.0的安装要求,MySQL得是8.0.X版本,MariaDB得是10.5.00-10.8.X版本,同时这两个都需要InnoDB引擎。从官方的部署建议来看,更加推荐使用MariaDB。


下面将在db01主机上进行安装MariaDB,先进行配置MariaDB的yum源(默认yum源MariaDB的版本是5.5)

[root@db01 ~]# cat /etc/yum.repos.d/mariaDB.repo
[mariadb]
name = MariaDB
baseurl = https://mirrors.tuna.tsinghua.edu.cn/mariadb/yum/10.5/centos7-amd64/
gpgkey = https://mirrors.tuna.tsinghua.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1
enabled = 1

安装MariaDB并启动,设置开机自启

[root@db01 ~]# yum install -y mariadb-server
[root@db01 ~]# systemctl start mariadb
[root@db01 ~]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

进行数据库初始化

[root@db01 ~]# mysql_secure_installation

进入MariaDB创建库、用户

MariaDB [(none)]> create database zabbix charset utf8 collate utf8_bin;
Query OK, 1 row affected (0.001 sec)

MariaDB [(none)]> grant all on zabbix.* to 'zabbix'@'172.16.1.%' identified by 'Huawei@123';
Query OK, 0 rows affected (0.002 sec)

下载Zabbix6.0软件包并解压

[root@db01 ~]# wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.16.tar.gz -P /tmp/
[root@db01 ~]# tar xf /tmp/zabbix-6.0.16.tar.gz

向数据库中导入数据

[root@db01 ~]# mysql -u root -pHuawei@123 zabbix < /tmp/zabbix-6.0.16/database/mysql/schema.sql
[root@db01 ~]# mysql -u root -pHuawei@123 zabbix < /tmp/zabbix-6.0.16/database/mysql/images.sql
[root@db01 ~]# mysql -u root -pHuawei@123 zabbix < /tmp/zabbix-6.0.16/database/mysql/data.sql
[root@db01 ~]# mysql -u root -pHuawei@123 zabbix < /tmp/zabbix-6.0.16/database/mysql/double.sql
[root@db01 ~]# mysql -u root -pHuawei@123 zabbix < /tmp/zabbix-6.0.16/database/mysql/history_pk_prepare.sql

此时数据库准备完成,数据导入可以在终端命令行和MariaDB shell进行。两者首先是命令执行环境不同,返回结果也不同,数据库里面source 会连续返回每一行导入结果,如果量大可能会影响速度,mysql < 全部完成后返回结果。source 遇到报错不会终止执行,mysql < 遇到报错会终止执行。下面是MariaDB shell进行导入的示例:

image-20230424142150759


1.4 编译安装zabbix服务端

下载Zabbix源码包到/server/soft目录下,并解压

[root@devops ~]# mkdir -p /server/soft
[root@devops ~]# wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.16.tar.gz -P /server/soft/
[root@devops ~]# cd /server/soft/
[root@devops soft]# tar xf zabbix-6.0.16.tar.gz

安装依赖

[root@devops soft]# 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

开始编译安装

[root@devops soft]# cd zabbix-6.0.16/
[root@devops zabbix-6.0.16]# export CFLAGS="-std=gnu99"
./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

[root@devops zabbix-6.0.16]# make install

#最终能输出版本信息即可
[root@devops zabbix-6.0.16]# zabbix_server --version
zabbix_server (Zabbix) 6.0.16
Revision a90e18c0b6e 11 April 2023, compilation time: Apr 24 2023 08:48:05

Copyright (C) 2023 Zabbix SIA
License GPLv2+: GNU GPL version 2 or later <https://www.gnu.org/licenses/>.
This is free software: you are free to change and redistribute it according to
the license. There is NO WARRANTY, to the extent permitted by law.

This product includes software developed by the OpenSSL Project
for use in the OpenSSL Toolkit (http://www.openssl.org/).

Compiled with OpenSSL 1.0.2k-fips  26 Jan 2017
Running with OpenSSL 1.0.2k-fips  26 Jan 2017

修改zabbix配置文件,更改配置文件各行的信息,根据实际情况填写。

[root@devops ~]# grep -n '^[a-Z]' /etc/zabbix/zabbix_server.conf
12:ListenPort=10051
38:LogFile=/tmp/zabbix_server.log
87:DBHost=172.16.1.17
99:DBName=zabbix
115:DBUser=zabbix
123:DBPassword=Huawei@123
507:Timeout=4
593:LogSlowQueries=3000
708:StatsAllowedIP=127.0.0.1

添加运行用户并启动zabbix

[root@devops ~]# useradd -s /sbin/nologin -M zabbix
[root@devops ~]# zabbix_server

#检查端口或者进程信息
[root@devops ~]# ss -lntup | grep 10051
[root@devops ~]# ps -ef | grep 

#为什么终端命令行就能运行呢?软件默认编译安装在/usr/local/sbin/下,而默认PATH环境变量就有这个路径,所以可以直接识别。
[root@devops ~]# which zabbix_server
/usr/local/sbin/zabbix_server
[root@devops ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

1.5 通过systemd进行管理

编写一个systemd的管理文件

[root@devops ~]# cat /usr/lib/systemd/system/zabbix-server.service
[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

加载配置文件

[root@devops ~]# systemctl daemon-reload

手动关闭已经启动的zabbix server,然后再通过systemctl进行启动

[root@devops ~]# pkill zabbix_server
[root@devops ~]# systemctl enable zabbix-server
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.
[root@devops ~]# systemctl start zabbix-server
[root@devops ~]# systemctl status zabbix-server
● zabbix-server.service - Zabbix Server with MySQL DB
   Loaded: loaded (/usr/lib/systemd/system/zabbix-server.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2023-04-24 09:43:35 EDT; 9s ago
 Main PID: 92840 (zabbix_server)
    Tasks: 48
   CGroup: /system.slice/zabbix-server.service
           ├─92840 /usr/local/sbin/zabbix_server -f
           ├─92842 /usr/local/sbin/zabbix_server: ha manager
           ├─92843 /usr/local/sbin/zabbix_server: service manager #1 [processed 0 events, updated 0 event tags, delete...
           ├─92844 /usr/local/sbin/zabbix_server: configuration syncer [synced configuration in 0.222547 sec, idle 60 ...
           ├─92845 /usr/local/sbin/zabbix_server: alert manager #1 [sent 0, failed 0 alerts, idle 5.086921 sec during ...
           ├─92846 /usr/local/sbin/zabbix_server: alerter #1 started
           ├─92847 /usr/local/sbin/zabbix_server: alerter #2 started
###########省略输出信息###########

1.6 部署zabbix前端

将前端代码复制到zabbix网站目录下

[root@devops ~]# cp -r /server/soft/zabbix-6.0.16/ui/* /app/code/zbx/
[root@devops ~]# chown -R nginx.nginx /app/code/zbx/

这时候在物理机上浏览器访问zbx.yinjay.com即访问到zabbix

image-20230424215417206


必要条件检测应该会有以下三个地方出现问题

image-20230424215511074


进行修改成下列行内容即可,php-fpm并重新加载配置

[root@devops ~]# egrep -n '^(max_.*_time|post_max)' /etc/php.ini
368:max_execution_time = 300
378:max_input_time = 600
656:post_max_size = 80M
[root@devops ~]# systemctl reload php-fpm.service

进行配置DB连接(记得取消TLS加密)

image-20230424220447451


后续就是修改一下时区和网站显示名称,到最后一步安装成功后就登陆,默认账号Admin,密码zabbix。

image-20230425102549977


1.7 安装Agent实现自我监控

安装zabbix的repo文件

[root@devops ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm

更改zabbix源为清华源

[root@devops ~]# sed -i 's#https://repo.zabbix.com/zabbix#https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix#g' /etc/yum.repos.d/zabbix.repo

安装客户端

[root@devops ~]# yum install -y zabbix-agent2

配置客户端,本机监控不需要修改Server,后续监控其他主机就需要修改这个参数配置。

[root@devops ~]# grep -n '^[a-Z]' /etc/zabbix/zabbix_agent2.conf
13:PidFile=/run/zabbix/zabbix_agent2.pid
32:LogFile=/var/log/zabbix/zabbix_agent2.log
43:LogFileSize=0
80:Server=127.0.0.1
133:ServerActive=127.0.0.1
144:Hostname=Zabbix server
281:Include=/etc/zabbix/zabbix_agent2.d/*.conf
302:PluginSocket=/run/zabbix/agent.plugin.sock
345:ControlSocket=/run/zabbix/agent.sock
490:Include=./zabbix_agent2.d/plugins.d/*.conf

启动Agent并设置开机自启

[root@devops ~]# systemctl start zabbix-agent2
[root@devops ~]# systemctl enable zabbix-agent2
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent2.service to /usr/lib/systemd/system/zabbix-agent2.service.

#查看进程信息
[root@devops ~]# ps -ef | grep agent2
zabbix    95532      1  0 23:12 ?        00:00:00 /usr/sbin/zabbix_agent2 -c /etc/zabbix/zabbix_agent2.conf
root      95570  94122  0 23:12 pts/0    00:00:00 grep --color=auto agent2


1.8 查看监控数据

在监测 -> 主机 -> 图形或者仪表盘,都能看到各项监控数据。

image-20230425134856282


1.9 解决zabbix中文显示乱码

原因是zabbix显示中文的字体有问题,把zabbix字体替换即可。Window下的C:\Windows\Fonts这个目录找到想要的字体传到Linux上。

[root@devops ~]# cp /app/code/zbx/assets/fonts/DejaVuSans.ttf{,.bak}
[root@devops ~]# mv SIMHEI.TTF /app/code/zbx/assets/fonts/DejaVuSans.ttf

image-20230425135711885


2. zabbix配置详解

2.1 服务端配置

文件或目录
/etc/zabbix/zabbix_server.conf 服务端配置文件
/tmp/zabbix/zabbix_server.log 当前放在/tmp目录下,建议改成/var/log目录下
/usr/lib/systemd/system/zabbix-server.service 手写的systemctl管理文件(yum或rpm方式安装,则是系统自带)
/usr/local/share/zabbix/alertscripts/ 用于实现告警的脚本
/usr/local/share/zabbix/externalscripts 外部脚本

/etc/zabbix/zabbix_server.conf配置文件详解

[root@devops ~]# grep '^[a-Z]' /etc/zabbix/zabbix_server.conf
ListenPort=10051                  #服务端端口
LogFile=/tmp/zabbix_server.log    #日志文件
DBHost=172.16.1.17                #数据库地址
DBName=zabbix                     #数据库名字
DBUser=zabbix                     #数据库用户
DBPassword=Huawei@123             #数据库用户密码
Timeout=4                         #超时时间

2.2 客户端配置

文件或目录
/etc/zabbix/zabbix_agent2.conf 客户端配置文件
/etc/zabbix/zabbix_agent2.d/ 子配置文件目录,用于自定义监控。
/var/log/zabbix/zabbix_agent2.log 日志

/etc/zabbix/zabbix_agent2.conf配置文件内容

#目前比较重要的就一条配置
Server=127.0.0.1      #指定服务端地址

3. 监控主机

大致步骤如下:

  1. 安装客户端Agent
  2. 修改配置文件,指定服务端地址
  3. 启动Agent并设置开机自启
  4. Web界面添加主机,添加到群组,关联模板等。

3.1 客户端安装Agent

可以在清华源直接找适合的Agent软件包地址,直接Linux进行安装rpm。点这!

#安装Agent2
rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/7/x86_64/zabbix-agent2-6.0.7-1.el7.x86_64.rpm

#指定服务端地址
sed -i 's#Server=127.0.0.1#Server=172.16.1.20#g' /etc/zabbix/zabbix_agent2.conf

#启动并设置开机自启
systemctl enable zabbix-agent2
systemctl start zabbix-agent2

#查看Agent2进程
[root@db01 ~]# ps -ef | grep zabbix
zabbix    78540      1  0 03:58 ?        00:00:00 /usr/sbin/zabbix_agent2 -c /etc/zabbix/zabbix_agent2.conf
root      78613  72266  0 04:03 pts/0    00:00:00 grep --color=auto zabbix

3.2 Web页面添加主机

image-20230425161243801

image-20230425194927650


3.3 监控window(未实验)


3.4 监控网络设备(未实验)


4. 自定义监控

4.1 步骤

客户端步骤:

  1. 通过命令、脚本取出对应的值
  2. 根据zabbix要求,按照格式书写配置文件,创建键值(键值Key用于获取客户端数据)
  3. 客户端测试键值是否可用(zabbix_agent2 -t)

服务端步骤:

  1. 服务端测试键值是否可用
  2. 键值与监控项关联
  3. 测试
  4. 图形或触发器(可选,是否将数据绘制图形或者触发器发出告警)

4.2 客户端操作

下面以监控Nginx服务开启的80端口为例,先写出监控80端口是否存在的命令,比如就通过下面的命令来监控端口是否存在。

[root@web05 ~]# ss -lntup | grep -w *:80
tcp    LISTEN     0      128       *:80                    *:*                   users:(("nginx",pid=76288,fd=6),("nginx",pid=76287,fd=6))
[root@web05 ~]# ss -lntup | grep -w *:80 | wc -l
1

创建键值,在/etc/zabbix/zabbix_agent2.d/plugins.d目录下,创建一个listen-nginx.conf,内容如下:

[root@web05 ~]# cat /etc/zabbix/zabbix_agent2.d/plugins.d/listen-nginx.conf
UserParameter=check.nginx,ss -lntup | grep -w *:80 | wc -l

重启本地Agent,使其生效。

[root@web05 ~]# systemctl restart zabbix-agent2

本地客户端测试,但不确保服务端能正常使用,所以在服务端要进行测试。

[root@web05 ~]# zabbix_agent2 -t check.nginx
check.nginx                                   [s|1]
[root@web05 ~]# systemctl stop nginx
[root@web05 ~]# zabbix_agent2 -t check.nginx
check.nginx                                   [s|0]

4.2 服务端操作

安装测试工具

[root@devops ~]# yum install -y zabbix-get

测试监控数据是否能够成功获取键值

[root@devops ~]# zabbix_get -s 172.16.1.13 -p 10050 -k check.nginx
0
[root@devops ~]# zabbix_get -s 172.16.1.13 -p 10050 -k check.nginx
1
zabbix-get命令
-s 客户端ip地址
-p 客户端端口号(默认是10050)
-k 指定键值

web界面创建监控项

image-20230425213921299

image-20230425213952381

image-20230425215042167

信息类型:这里键值结果都是数字,选择数字(无正负即可),如果有小数选择浮点类型,如果是字符,选择字符串。

更新间隔:这里调整为10s,生产环境非必须尽量增长间隔比如1m,10m,1h等等。

Tips:可以进行测试能够正常获取值时再进行添加!


可以进行筛选查找到添加的监控项,可以进行编辑更新或者查看最新数据

image-20230425215419878

image-20230425215503987


4.3 触发器

根据监控项获取的数值(内容),决定是否要告警、是否要提示异常。

image-20230426135636137

image-20230426135701864

image-20230426140823091

Tips:条件表达式点添加,可设置不同的规则进行告警!


现在nginx服务保持关闭状态,查看是否会触发告警,此时在仪表板中已经看到告警信息。

image-20230426141229238


现将nginx服务进行启动,在下一个检测周期进行检测后,仪表板会关闭出现的问题,可以在问题面板中看到以往事件的情况。

image-20230426141422696


4.4 图形

可以添加图形来进行监控数据可视化,当然也不是任何监控都适合上图形,按需选择。

image-20230426153011690


填写图形名称,选择监控项和配置其他选项就可以啦。

image-20230426153534376


查看图形数据在下面

image-20230426153708691

image-20230426153731913


4.5 使用模板

通过创建自定义模板实现,监控项,触发器,图形批量使用。如下:

  1. 创建模板
  2. 添加自定义监控项
  3. 添加触发器
  4. 添加图形
  5. 模板关联主机
  6. 客户端配置自定义键值

创建模板

image-20230426193655934


填写模板名称,可见的名称可以和模板名称一样,或者写成简单易懂的,然后选择一个群组。

image-20230426194135779

image-20230426194329842


添加自定义监控项, 可以在模板那直接添加新的监控项,或者在主机这选择某台机器的已有监控项进行复制到模板中。下列就是复制的案例image-20230426194532706


此处可批量多选添加自定义监控项到模板中。

image-20230426194735528


选择刚才的模板,点击复制。

image-20230426194831540

image-20230426195015008


触发器也一样,可以进行复制。图形也是,下面就暂不演示。

image-20230426195113460


检查模板,已经都复制ok。

image-20230426195302767


模板关联主机

image-20230426195408789

image-20230426195539058

image-20230426195604178


记得要复制自定义监控项的配置文件到新添加的主机上,并重新启动Agent。否则会出现无法监控。

image-20230426204600358


5. 告警方式

5.1 邮箱

5.1.1 个人邮箱配置

本次示例使用163邮箱,首先在163邮箱里面开启服务

image-20230506200650174


开启授权,记好密码

image-20230506200717040


5.1.2 zabbix报警媒介配置

先关闭所有的报警方式,按需开启。

image-20230506201242959


这里重新添加新的告警方式,右上角创建媒体类型。

image-20230506205454842


添加报警信息模板

#信息类型 问题
主题
故障名称: {EVENT.NAME}

消息
故障始于 时间: {EVENT.TIME} 日期: {EVENT.DATE}
故障名称: {EVENT.NAME}
故障主机: {HOST.NAME}
严重程度: {EVENT.SEVERITY}
额外信息: {EVENT.OPDATA}
故障ID: {EVENT.ID}
触发器地址: {TRIGGER.URL}


#信息类型 Problem recovery
主题
故障解决 in {EVENT.DURATION}: {EVENT.NAME}

消息
故障已经解决 时间: {EVENT.RECOVERY.TIME} 日期:{EVENT.RECOVERY.DATE}
故障名称: {EVENT.NAME}
故障持续时间: {EVENT.DURATION}
故障主机: {HOST.NAME}
故障级别: {EVENT.SEVERITY}
故障ID: {EVENT.ID}
{TRIGGER.URL}

image-20230506203944734


测试发信

image-20230506205140385

image-20230506205125818


查看邮箱

image-20230506205600343


5.1.3 配置收件人

image-20230506210348335

image-20230506210417531

最后记得点更新!


5.1.4 配置触发器动作

选择Trigger actions,然后点击右上角创建动作。

image-20230506210920278

image-20230506211434582

image-20230506211527034

image-20230506211542914

image-20230506211554785


5.1.5 测试功能

在web06主机上关闭nginx服务,之前配置的自定义监控会进行报警,看是否会自动发告警信息到邮箱。

image-20230506212902550

image-20230506212924518


5.2 企业微信

5.2.1 注册企业微信并配置

创建一个群,这里我用自动创建的那个群,然后添加机器人。

image-20230507204528735


image-20230507205251913

https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=8ec9bb86-8e78-49ae-aa08-311f049ccbe4

群机器人开发说明可以看这 群机器人配置说明 - 文档


5.2.2 zabbix主机配置告警脚本

在/usr/local/share/zabbix/alertscripts目录创建发送消息的python脚本

[root@devops ~]# cd /usr/local/share/zabbix/alertscripts/
[root@devops alertscripts]# cat webchartAlert.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import requests
import json
import sys
import os

headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=8ec9bb86-8e78-49ae-aa08-311f049ccbe4"
def msg(text):
    json_text= {
     "msgtype": "text",
        "text": {
            "content": text
        },
    }
    print requests.post(api_url,json.dumps(json_text),headers=headers).content

if __name__ == '__main__':
    text = sys.argv[1]
    msg(text)

赋予权限

[root@devops alertscripts]# chmod +x webchartAlert.py

手动测试

image-20230507212354593


5.2.3 创建报警媒介类型

管理 --> 报警媒介类型 --> 创建媒介类型,新建一个企业微信的报警,脚本名称就是我们脚本名:webchartAlert.py

image-20230508131347366


添加消息模板

image-20230508131430422

image-20230508131442040


模板内容如下:

#故障模板
故障{TRIGGER.STATUS},服务器:{HOSTNAME1},发生:{TRIGGER.NAME}故障!
告警主机:{HOSTNAME1}
告警地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息::{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

#恢复模板
恢复{TRIGGER.STATUS},服务器:{HOSTNAME1},发生:{TRIGGER.NAME}已恢复!
告警主机:{HOSTNAME1}
告警地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息::{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

5.2.4 创建告警媒介

image-20230508131731191


5.2.5 创建动作

配置 --> 动作 --> Trigger actions,然后右上角点击创建动作

image-20230508131828330


定义动作名称

image-20230508131924952


配置条件,当有未确认的事件出现时,则调用企业微信机器人告警。

image-20230508132011204

image-20230508132453457


5.2.6 测试功能

目前要确保报警媒介类型已启用,报警模板定义。

image-20230508132627839


确保用户的报警媒介已启用

image-20230508132725870


确保动作已启用

image-20230508132755501


随便在一台被监控的客户机上停止相关服务,看机器人是否会出现告警,然后在进行恢复服务。

image-20230508133021052


6. 监控Java应用

6.1 方案与选型

方案 监控方案 说明
方案01 开启java的jmxremote远程监控功能。 zabbix中关联对应的模板,安装与开启。
安装:zabbix-java-gateway
方案02 通过java命令,自定义监控获取想要指标。通过zabbix agent传递给zabbix server。 通过在java应用服务器安装zabbix agent,然后自定义监控。

什么是JMX?

JMX的全称是Java Management Extensions,即Java管理扩展(Java Management Extensions,即Java管理扩展,是一个为应用程序、设备、系统等植入管理功能的框架,JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用)。Java程序会开放一些端口,用来获取运行状况。


监控原理

Zabbix内置了监控JMX的功能,叫做“Zabbix Java Gateway”,在Zabbix Server和Zabbix Proxy上启动名为“Zabbix Java Gateway”的进程,当需要获取JMX数据时,Zabbix Server会“问”JMX Gateway,然后JMX Gateway根据JMX管理API去查询需要的数据。在使用时,Java程序不需要在代码中新增任何东西,只需要在启动的时候加上一些JVM参数,使得它可以支持使用端口监控JMX。


详细过程:当Zabbix-Server需要知道java应用程序的某项性能的时候,会启动自身的一个Zabbix-JavaPollers进程去连接Zabbix-JavaGateway请求数据,而Zabbix-Java-Gateway收到请求后使用"JMXmanagementAPI"去查询特定的应用程序,而前提是应用程序这端在开启时需要"-Dcom.sun.management.jmxremote"参数来开启JMX远程查询就行。Java程序会启动自身的一个简单的小程序端口12345向Zabbix-JavaGateway提供请求数据。

image-20230508205408893


6.2 方案01

6.2.1 开启远程监控功能

来通过各种监控工具(Zabbix/Grafana/Promethues/...),监控Tomcat/java,或者用于开发调试代码与查看Java状态。


开启流程:

  • 修改java配置(tomcat配置的catalina.sh)
  • 重启java(tomcat)
  • 监控(可从监控插件或者window下启动java工具查看)

修改tomcat/bin目录下的catalina.sh,添加下列内容。CATALINA_OPTS就是java变量修改tomcat启动的时候参数,本质就是给java命令增加些参数。

CATALINA_OPTS="$CATALINA_OPTS \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=12345 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Djava.rmi.server.hostname=10.0.0.7"

jmxremote选项说明
Dcom.sun.management.jmxremote 开启远程监控功能
Dcom.sun.management.jmxremote.port=12345 指定功能的端口号:12345
Dcom.sun.management.jmxremote.authenticate=false 是否开启认证功能,关闭
Dcom.sun.management.jmxremote.ssl=false 是否开启ssl证书,关闭
Djava.rmi.server.hostname=10.0.0.7 指定本机的内网或公网ip

重启tomcat服务,然后查看端口情况和是否加载了jmxremote

image-20230508202638970


6.2.2 zabbix服务端部署Java Gateway

安装zabbix-java-gateway,修改/etc/zabbix/zabbix_java_gateway.conf以下两处配置

[root@devops ~]# yum -y zabbix-java-gateway
[root@devops ~]# grep -n '^[a-Z]' /etc/zabbix/zabbix_java_gateway.conf
17:LISTEN_PORT=10052
26:PID_FILE="/var/run/zabbix/zabbix_java_gateway.pid"

启动并设置开机自启

[root@devops ~]# systemctl start zabbix-java-gateway
[root@devops ~]# systemctl enable zabbix-java-gateway
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-java-gateway.service to /usr/lib/systemd/system/zabbix-java-gateway.service.

查看端口信息

image-20230508204140434


配置zabbix服务端,修改下面三处配置,然后重启zabbix server。

[root@devops ~]# grep -n 'Java.*=' /etc/zabbix/zabbix_server.conf
317:JavaGateway=127.0.0.1
325:JavaGatewayPort=10052
333:StartJavaPollers=5

[root@devops ~]# systemctl restart zabbix-server

检查java poller进程

image-20230508205921845


6.2.3 添加主机关联模板

选择模板和填写主机开启JMX的IP

image-20230508212800600


已成功监控

image-20230508213615600


6.2.4 Jar包方式

直接命令行上加入开启jmxremote功能的指令运行即可。

java -Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=12345 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Djava.rmi.server.hostname=172.16.1.15 \
-jar xxx.jar

7. 自动发现、注册

7.1 方案对比

自动添加主机方案 含义 应用场景
自动发现(服务端主动) zabbix服务端主动去找是否有新的主机,有则添加进来,关联模板。 配置简单,不适合大量添加主机,zabbix服务端压力比较大。
自动注册(客户端主动) zabbix客户端主动去找服务端提交自己的信息,向服务端进行注册。 配置繁琐,但适合经常大量添加主机。

7.2 自动发现

7.2.1 安装配置Ansible

安装Ansible

在zabbix server主机或者有专门的ansible主机下安装

#在控制端安装Ansible
[root@ms01 ~]# yum install ansible -y

#Ansible 参数补全功能
#从 Ansible 2.9 版本开始,它支持命令的选项补全功能,它依赖于 python 的 argcomplete 插件。
[root@ms01 ~]# yum install python-argcomplete -y 

# 要求bash版本大于等于4.2
[root@ms01 ~]# activate-global-python-argcomplete

#最后,退出当前 Shell 重新进入,exec $SHELL
exec $SHELL

配置免密(密钥认证)

因为 Ansible 默认是基于 ssh 连接的,所以要控制其它节点首先需要建立好 ssh 连接,而建立 ssh 连接要么需要提供密码,要么需要配置好认证方式。所以需要提前测试好控制端与被控制端之间的互信。

为了避免配置主机互信过程中的交互式询问,这里使用 ssh-keyscan 工具添加主机认证信息以及 sshpass 工具(安装 Ansible 时会自动安装 sshpass)直接指定 ssh 连接密码。


#脚本内容
[root@devops ~]# cat /server/scripts/fenfa_pub.sh
#!/bin/bash
#desc:一键自动化创建和分发密钥

ip_list="172.16.1.7 172.16.1.8"  #要分发的主机IP
ssh_root_pass="123456"   #主机密码
echo '-----------------------------------'
echo '1.创建key'
echo '-----------------------------------'

ssh-keygen -f ~/.ssh/id_rsa -P ''  #创建私钥和公钥

echo '-----------------------------------'
echo '2.分发pub key'


for ip in $ip_list  #循环IP_list变量中的IP进行分发公钥  “-o StrictHostKeyChecking=no”为取消首次连接的host检查警告
do
   sshpass -p$ssh_root_pass ssh-copy-id -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no root@$ip 
done

echo '-----------------------------------'
echo '3.已完成分发!'

#脚本执行
[root@devops ~]# sh /server/scripts/fenfa_pub.sh

关闭检查SSH主机的密钥

#这是设置是否检查SSH主机的密钥。可以设置为True或False,关闭后第一次连接没有提示(就是第一次连接不在提示yes或者no)

#在/etc/ansible/ansible.cfg中71行去掉注释即可
[root@devops ~]# cat /etc/ansible/ansible.cfg | grep -n host_key_checking
71:host_key_checking = False

配置主机清单

[root@devops ~]# cat hosts
[yinjay]
172.16.1.7
172.16.1.8

测试

image-20230509142822945


7.2.2 客户端配置

通过ansible-playbook进行配置客户端,效率较高。编写剧本,内容如下:

[root@devops ~]# cat zabbix-agent2.yaml
- hosts: yinjay
  tasks:
    - name: 1.下载并安装Zabbix-Agent2
      shell: "rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/7/x86_64/zabbix-agent2-6.0.7-1.el7.x86_64.rpm"

    - name: 2.修改配置文件指定Zabbix服务端IP
      shell: "sed -i 's#Server=127.0.0.1#Server=172.16.1.20#g' /etc/zabbix/zabbix_agent2.conf"

    - name: 3.启动Zabbix-Agent2,并设置开机自启
      systemd:
        name: zabbix-agent2
        state: started
        enabled: yes

执行脚本批量安装Agent,修改配置文件,启动Agent并设置开机自启。

image-20230509144314561


7.2.3 配置自动发现

zabbix主页 --> 配置 --> 自动发现,右上角创建发现规则,配置完后点添加。

更新间隔:多久去探测一次

检查:通过agent执行system.uname键值看是否能正常获取信息,则代表agent是否安装配置成功。通过agent执行system.hostname键值看是否能正常获取信息,可以供下列主机名称和可见的名称使用。

设备唯一性准则:防止重复添加

主机名称:使用该system.hostname键值获取到的内容(也就是主机名)

可见名称:使用该system.hostname键值获取到的内容(也就是主机名)

image-20230509201814259

Tips:IP范围支持 IP,IP,IP形式。


此时在监测 --> 自动发现 就能看到新的主机。

image-20230509160208843

Tips:仅仅只是发现主机,但还不会添加到主机列表里,需要配置自动发现动作!


7.2.4 配置自动发现动作

配置 --> 动作 --> 发现动作,右上角创建动作。

image-20230509160441727


添加触发该动作的条件,条件为自动发现状态开启,接收到的值就是自动发现规则中的检查的数据要包含Linux,同时自动发现规则中的检查服务类型是Zabbix客户端。

image-20230509161012619


配置动作中的操作行为,主要是添加主机群组和链接监控模板,然后点添加。(添加和启用似乎默认就有),最后点添加。

image-20230509161446585


查看自动发现动作

image-20230509213951196


过一会在主机列表就能查看到新添加的主机。

image-20230509203431903


7.3 自动注册

7.3.1 安装配置Ansible

此处忽略安装Ansible、配置免密、关闭检查SSH主机的密钥、配置主机列表、测试过程。具体可参考自动发现章节。


7.3.2 配置自动注册动作

配置 --> 动作 --> 自动发现动作,右上角点创建动作。

image-20230509213311080


添加触发该动作的条件,条件是主机元数据中包含Linux(主机元数据对应的就是下列配置箭头指向的那条配置)

image-20230509213535298


配置动作中的操作行为,主要是添加主机群组和链接监控模板,然后点添加。(添加和启用似乎默认就有)

image-20230509213821789


查看自动注册动作

image-20230509213909242


7.3.3 客户端配置

客户端配置文件

客户端的配置 说明
Server=172.16.1.20 Zabbix服务端IP地址
ServerActive=172.16.1.20 主动模式下的服务端IP地址
Hostname=web01 当前主机名,这个可以注释掉或使用ansible配置。
HostnameItem=system.hostname 通过后面指定的键值获取主机名。Hostname和HostnameItem只能2选1。
HostMetadataItem=system.uname 主机的元数据键值,类似于自动发现中的system.uname判断存活和获取主机信息。

在Zabbix Agent主动注册模式下,当Zabbix Server与Zabbix Agent建立连接后,Zabbix Agent会向Zabbix Server发送一个主机信息请求,包括主机名和其他的系统信息。而在Zabbix Agent的配置文件中,使用Hostname参数来指定Zabbix Agent主机名。如果Hostname参数未设置,则Zabbix Agent会使用操作系统的主机名作为默认值。如果操作系统主机名与Zabbix Server中设定的主机名不一致,则可能会导致Zabbix Server无法正确地识别与管理该主机。因此,在Zabbix Agent主动注册模式下,Hostname参数是必需的,并且应该设置为与Zabbix Server中设定的主机名一致的值。

ServerActive是指定Agent收集的数据往哪里发送。


通用自动注册客户端配置内容如下:

[root@devops ~]# cat zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=172.16.1.20
ServerActive=172.16.1.20
HostnameItem=system.hostname
HostMetadataItem=system.uname
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
Include=./zabbix_agent2.d/plugins.d/*.conf

通过ansible-playbook进行配置客户端,效率较高。编写剧本,内容如下:

[root@devops ~]# cat zabbix-agent2-auto_register.yaml
- hosts: yinjay
  tasks:
    - name: 1.下载并安装Zabbix-Agent2
      shell: "rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/7/x86_64/zabbix-agent2-6.0.7-1.el7.x86_64.rpm"

    - name: 2.拷贝Agent配置文件到各主机
      copy: 
        src: zabbix_agent2.conf
        dest: /etc/zabbix/zabbix_agent2.conf
        backup: yes
        
    - name: 3.启动Zabbix-Agent2,并设置开机自启
      systemd:
        name: zabbix-agent2
        state: started
        enabled: yes

执行脚本批量安装Agent,拷贝Agent配置文件到各主机下,启动Agent并设置开机自启。

image-20230509214741619


自动注册会比较快,查看主机列表,已经监控上了。

image-20230509214849166


8. 分布式监控 zabbix-proxy

默认情况下,zabbix server会直接去每个agent上抓取数据,这对于agent来说,是被动模式,也是默认的一种获取数据的方式,但是,当zabbix server监控主机数量过多的时候,由server端去抓取agent上的数据,zabbix server会出现严重的性能问题,主要表现如下:

  • Web操作很卡,容易出现502
  • 图层断裂
  • 开启的进程(Pollar)太多,即使减少item数量,以后加入一定量的机器也会有问题

所以,下面主要往两个优化方向考虑:

  • 用Proxy或者Node模式做分布式监控(zabbix2.4后不再支持Node分布模式)
  • 调整Agent为主动模式

8.1 主机规划

主机 IP 角色
devops 172.16.1.20 zabbix服务端
proxy01 172.16.1.21 区域1 zabbix-proxy
proxy02 172.16.1.22 区域2 zabbix-proxy
web01 172.16.1.7 zabbix客户端,由区域1的zabbix-proxy管理
web02 172.16.1.8 zabbix客户端,由区域1的zabbix-proxy管理
web03 172.16.1.9 zabbix客户端,由区域2的zabbix-proxy管理
web04 172.16.1.10 zabbix客户端,由区域2的zabbix-proxy管理

8.2 安装配置MariaDB数据库

以下部分在proxy01和proxy02主机上都进行,配置一个MariaDB数据库的yum仓库文件,版本需要与Zabbix服务端所使用的版本一致。

#cat /etc/yum.repos.d/mariaDB.repo
[mariadb]
name = MariaDB
baseurl = https://mirrors.tuna.tsinghua.edu.cn/mariadb/yum/10.5/centos7-amd64/
gpgkey = https://mirrors.tuna.tsinghua.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1
enabled = 1

安装,启动并设置开机自启

yum install -y mariadb-server
systemctl start mariadb
systemctl enable mariadb

数据库初始化

mysql_secure_installation 执行后根据提示yes或no
 Switch to unix_socket authentication [Y/n] n
 Change the root password? [Y/n] Y  #修改数据库密码
 Remove anonymous users? [Y/n] Y    #删除匿名用户
 Disallow root login remotely? [Y/n] Y  #不允许远程root登录
 Remove test database and access to it? [Y/n] Y #删除测试数据库
 Reload privilege tables now? [Y/n] Y   #重新加载特权表

进入数据库,创建数据库和用户。(proxy与数据库在一台主机上,所以localhost访问就行)

#mysql -u root -p 进入数据库

#创建数据库和用户
create database zabbix_proxy character set utf8 collate utf8_bin;
grant all privileges on zabbix_proxy.* to zabbix_proxy@'localhost' identified by 'zabbix_proxy';

需要使用zabbix 6.x 源码包中database/mysql/schema.sql,下载Zabbix6.0软件包并解压。(跟Zabbix服务端版本一样的软件包)

wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.16.tar.gz -P /tmp/
tar xf /tmp/zabbix-6.0.16.tar.gz -C /tmp

向数据库中导入数据

mysql -u root -pHuawei@123 zabbix_proxy < /tmp/zabbix-6.0.16/database/mysql/schema.sql

8.3 安装配置zabbix服务端和proxy

此处忽略zabbix服务端的部署,请看前面服务端的部分。


以下部分在proxy01和proxy02主机上都进行,安装proxy

yum install -y https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/7/x86_64/zabbix-proxy-mysql-6.0.16-release1.el7.x86_64.rpm

修改zabbix-proxy配置文件

# grep '^[a-Z]' /etc/zabbix/zabbix_proxy.conf

#大致修改的内容就是Server、Hostname(这里写什么,到时候添加代理就写什么名称)、DBName、DBUser、DBPassword

Server=172.16.1.20
Hostname=region01_proxy
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/run/zabbix/zabbix_proxy.pid
SocketDir=/run/zabbix
DBName=zabbix_proxy
DBUser=zabbix_proxy
DBPassword=zabbix_proxy
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
ConfigFrequency=60

Tips:系统主机名为proxy01,配置文件定义的是region01_proxy,所以web端上添加代理程序时,需要指定这个配置文件里面的Hostname。


启动proxy并设置开机自启。

systemctl start zabbix-proxy
systemctl enable zabbix-proxy

此时不管在proxy01主机还是proxy02主机上查看日志都会像下图一样,出现错误信息。那时因为zabbix服务端并没有去认证这台主机作为proxy。

image-20230510195030468


此时在zabbix web界面上进行添加agent代理程序(代理程序名称要与proxy配置文件当中hostname的值一致)

image-20230510195311527

image-20230510195430333


添加完后稍等片刻再查看就ok了!

image-20230510195548723


8.4 添加客户端到proxy

在使用Zabbix Proxy时,客户端可以通过自动注册或手动添加方式进行监控项的注册。两种方式均可以将客户端数据推送到Zabbix Server。

  1. 自动注册方式:Zabbix自动注册功能允许Zabbix Proxy可以自动发现与其连接的客户端,并在Zabbix Server上创建对应的主机。当客户端连接到Zabbix Proxy时,Zabbix Proxy会向Zabbix Server提交一个注册请求,包括客户端的一个标识符(例如IP地址)和客户端所属的主机组信息。Zabbix Server会根据这些信息创建对应的主机。

  2. 手动添加方式:除了自动注册功能外,Zabbix Proxy还支持手动添加主机的方式。您可以在Zabbix Proxy的配置文件中手动配置要监控的主机信息,然后将这些信息推送到Zabbix Server。Zabbix Server会在接收到这些信息后,在管理界面中创建相应的主机并进行监控项配置。

需要注意的是,在使用Zabbix Proxy时,客户端可以通过自动注册或手动添加方式进行监控项的注册。但客户端的监控项数据实际上是由Zabbix Proxy负责收集和转发的,Zabbix Server只是负责对收集到的数据进行存储和分析。因此,对于Zabbix Proxy和Zabbix Server来说,客户端是透明的,无论采用哪种方式进行注册,它们都可以获取到客户端的监控数据。


8.4.1 自动注册

将web01、web02使用自动注册方法向proxy进行注册。下面两台主机进行安装zabbix-agent2,修改配置文件。

rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/7/x86_64/zabbix-agent2-6.0.7-1.el7.x86_64.rpm

web01、web02的配置文件内容如下:

# cat /etc/zabbix/zabbix_agent2.conf

PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=172.16.1.21
ServerActive=172.16.1.21
HostnameItem=system.hostname
HostMetadataItem=system.uname
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
Include=./zabbix_agent2.d/plugins.d/*.conf

启动并设置开机自启

systemctl start zabbix-agent2
systemctl enable zabbix-agent2

查看web端

image-20230514103248944

image-20230514103312001


8.4.2 手动添加

将web03、web04使用手动添加方法让proxy02进行管理。下面两台主机进行安装zabbix-agent2,修改配置文件。

rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/7/x86_64/zabbix-agent2-6.0.7-1.el7.x86_64.rpm

web01、web02的配置文件内容如下:

# cat /etc/zabbix/zabbix_agent2.conf

PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=172.16.1.22
HostnameItem=system.hostname
HostMetadataItem=system.uname
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
Include=./zabbix_agent2.d/plugins.d/*.conf

启动并设置开机自启

systemctl start zabbix-agent2
systemctl enable zabbix-agent2

在web端主页 --> 配置 --> 主机,右上角创建主机。

image-20230514111725225

image-20230514112322286


查看监控状态

image-20230514112544210


posted @ 2023-09-15 21:00  YinJayChen  阅读(46)  评论(0编辑  收藏  举报