• Zabbix监控系统 第一部分:zabbix服务部署+自定义监控项+自动发现与自动注册(附详细部署实例)


    一、Zabbix概述

    在这里插入图片描述

    1.1 简介

    zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

    zabbix 能监视各种网络参数,保证服务器系统的安全运营,提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

    zabbix 由 2 部分构成,zabbix server 与可选组件 zabbix agent。

    通过 C/S 模式采集数据,通过 B/S 模式在 Web 端展示和配置。

    zabbix server 可以通过 SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能, 它可以运行在 Linux 等平台上。

    zabbix agent 需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU 等信息的收集。

    1.2 zabbix组件

    在这里插入图片描述

    zabbix_serverzabbix_agent、zabbix_proxy、zabbix_get、zabbix_sender 等。

    1.2.1 zabbix server

    zabbix服务端进程,配置和管理zabbix应用程序,也是监控系统的告警中心(配置监控项告警触发器阈值和发送告警)。

    端口10050

    1.2.2 zabbix agent

    部署在被监控主机上,采集监控指标数据,发送给zabbix server

    1.2.3 zabbix proxy

    zabbix代理端进程,部署在zabbix server与zabbix agent之间,代替zabbix server收集zabbix agent发送的监控指标数据,汇总后再转发给 zabbix server,分担zabbix server的集中式负载压力。

    端口10051

    1.2.4 zabbix database(mysql oracle postgreSQL tsdb等)

    持久化存储配置信息和监控指标数据。

    1.2.5 zabbix web(apache/nginx + php)

    进行zabbix服务端配置和监控数据的UI界面展示。

    1.2.6 zabbix java gateway

    作为获取从java应用采集的监控指标数据的代理端。

    端口10052

    1.3 工作原理

    在这里插入图片描述

    zabbix agent定期采集被监控主机的指标数据并发送给zabbix server

    zabbix server收到数据后会将数据存储到zabbix database

    管理员可基于zabbix web前端查看监控数据的图像。

    1.4 端口号

    组件端口号
    zabbix server10051
    zabbix agent10050

    1.5 zabbix中预设的键值

    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表示可以连接
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    如果没有想要的功能,需要自定义键值。

    1.6 自定义监控项

    1)先明确获取监控指标数据的命令或脚本;

    2)在被监控主机配置文件子目录(/etc/zabbix/zabbix_agent2.d/)中创建以.conf后缀的监控项配置文件,自定义获取监控指标数据的键值;

    #监控项配置文件内容格式
    UserParameter=键值名,获取值的命令/脚本路径
    
    #用逗号隔开
    
    • 1
    • 2
    • 3
    • 4

    3)在服务端Web管理页面中依次添加

    模板 - 监控项 - 触发器 - 图形

    4)关联监控主机和监控模板。

    1.7 邮件报警的思路

    1)在服务端web管理页面 [管理]-[报警媒介类型]中设置 媒介类型报警消息内容

    2)在[User Settings] - [Profile] - [报警媒介] 中设置 类型收件人启用时间严重级别

    3)在[配置] - [动作] - [触发动作] 中添加报警触发条件操作内容

    4)测试。

    1.8 Zabbix自动发现和自动注册

    自动发现和自动注册功能使得在大规模环境中的网络设备和主机的监控变得更加简单和自动化,并且减少了手动配置和管理的工作量

    1.8.1 zabbix自动发现

    zabbix server服务端主动发现zabbix agent客户端。

    理论部分

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

    zabbix server 主动的去发现所有的客户端,然后将客户端的信息登记在服务端上。

    缺点是如果定义的网段中的主机数量多,zabbix server 登记耗时较久,且压力会较大

    实现思路

    1)在【配置】-【自动发现】创建发现规则,设置 IP范围 自动发现检查的键值system.uname;

    2)在【配置】-【动作】-【发现动作】创建动作,设置 动作条件 和 操作内容。

    1.8.2 zabbix自动注册

    zabbix agent客户端主动找zabbix server服务端注册

    理论部分

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

    zabbix agent2 会主动上报自己的信息,发给 zabbix server。

    缺点是可能因为配置文件配置错误或者网络不通等原因导致 zabbix agent2 可能找不到 zabbix server。

    实现思路

    1)在【配置】-【动作】-【自动注册动作】创建动作,设置 动作条件 和 操作内容;

    2)启动动作。
    如果定义的网段中的主机数量多,zabbix server 登记耗时较久,且压力会较大

    二、部署Zabbix 6.0版本

    ServerIP
    Zabbix-server192.168.2.100
    Zabbix-agent01192.168.2.102
    #关闭 selinux 与防火墙
    systemctl disable --now firewalld
    setenforce 0
    
    • 1
    • 2
    • 3

    2.1 部署zabbix服务端

    zabbix-server

    Step1 部署 Nginx + PHP 环境并测试

    1.安装nginx,修改配置文件

    #安装 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
    EOF
    
    yum install -y nginx
    
    
    
    #修改 nginx 配置
    vim /etc/nginx/conf.d/zbx.conf
    server {
      listen 80;
      server_name zbx.byyb.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;
      }
    }
    如果请求的路径是以`.php`结尾的,则会通过FastCGI进程执行对应的PHP文件。
    根目录为`/var/www/zbx`,默认的索引文件为`index.php`
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    在这里插入图片描述

    2.安装php,修改配置文件

    #更换为阿里源
    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    
    #安装依赖环境
    yum install -y epel-release
    
    
    rpm -Uvh 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    #修改 php 配置
    vim /etc/php-fpm.d/www.conf
    user = nginx
    group = nginx
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    vim /etc/php.ini
    
    max_execution_time = 300		# 368行
    max_input_time = 600			# 378行
    post_max_size = 80M				# 656行
    date.timezone = Asia/Shanghai	# 877行
    
    1. 最大执行时间(max_execution_time):您可以在第 368 行找到这个选项。默认情况下,它被设置为 300 秒(5 分钟)。您可以根据您的需求将其修改为更长的时间。
    
    2. 最大输入时间(max_input_time):这个选项位于第 378 行。它控制从服务器接收到客户端请求开始计时的时间。默认值为 600 秒(10 分钟)。如果您需要更长的时间来处理请求,请相应地修改这个值。
    
    3. 最大 POST 数据大小(post_max_size):在第 656 行,您可以找到这个选项。默认情况下,它被设置为 80M。您可以根据您的需要将其调整为更大或更小的值。
    
    4. 日期时区(date.timezone):在第 877 行,您可以找到这个选项。默认情况下,它被设置为 "Asia/Shanghai",表示使用上海的时区。如果您希望使用其他时区,请将其更改为相应的时区。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    3.测试

    #创建目录和测试文件
    mkdir -p /var/www/zbx
    
    vim /var/www/zbx/index.php
    <?php
    phpinfo();
    ?>
    
    #启动服务
    systemctl enable --now nginx php-fpm
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    #测试访问(hosts解析)
    修改 C:\Windows\System32\drivers\etc\hosts
    192.168.2.100 zbx.byyb.com
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    浏览器访问:http://zbx.byyb.com/index.php
    
    • 1

    在这里插入图片描述

    Step2 部署数据库

    要求 MySQL 5.7 或 Mariadb 10.5 及以上版本

    1.安装Mariadb

    #配置 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
    EOF
    
    yum install -y mariadb-server mariadb
    
    systemctl enable --now mariadb
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述
    在这里插入图片描述

    2.初始化数据库并以root用户登录

    mysql_secure_installation
    分别输入 回车 -> n -> Y (设置root密码,如abc123) -> 后面一路 Y
    
    #"mysql_secure_installation" 是一个用于设置和加固 MySQL 安装的脚本工具
    #提示您输入数据库的 root 用户密码。如果尚未设置密码,则按回车键留空。
    #询问您是否需要更改 root 密码。根据需求选择 Y 或 N。
    #提示您删除匿名用户。如果不希望数据库中存在匿名用户,选择 Y。
    # 提示您禁用 root 远程登录。如果不希望 root 用户能够通过远程连接访问数据库,选择 Y。
    #提示您删除测试数据库。如果不需要默认的测试数据库,选择 Y。
    #提示您重新加载权限表以使更改生效。选择 Y 来重新加载权限表。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述
    在这里插入图片描述

    mysql -u root -pabc123
    
    • 1

    在这里插入图片描述

    3.创建数据库并指定字符集

    create database zabbix character set utf8 collate utf8_bin;
    
    • 1

    4.创建 zabbix 数据库用户并授权

    grant all on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix';
    grant all on zabbix.* to 'zabbix'@'%' identified by 'zabbix';
    flush privileges;
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    5.准备zabbix源码包并解压

    #上传源码包 zabbix-6.0.13.tar.gz 到 /opt 目录
    cd /opt
    tar xf zabbix-6.0.13.tar.gz
    
    ls /opt/zabbix-6.0.13/database/mysql
    
    #data.sql:这个文件包含了 Zabbix 数据库的实际数据,包括监控项、触发器、历史数据等。
    
    # double.sql:这个文件包含了用于移除重复数据的 SQL 查询语句。
    
    #history_pk_prepare.sql:这个文件包含了用于优化历史数据表的 SQL 查询语句。
    
    #images.sql:这个文件包含了用于存储和管理图像数据的 SQL 查询语句。
    
    #Makefile.am 和 Makefile.in:这两个文件是用于构建 Zabbix 数据库的 Makefile 配置文件。
    
    #schema.sql:这个文件包含了 Zabbix 数据库的表结构、索引、键等定义。这是创建和初始化整个数据库的主要文件。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    在这里插入图片描述

    6.按照顺序向数据库导入 zabbix 数据

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    Step3 编译安装zabbix Server 服务端

    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++ make
    
    #用户
    useradd -s /sbin/nologin -M zabbix
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.编译安装

    #编译安装
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    在这里插入图片描述

    make install
    
    • 1
    #检查版本
    zabbix_server --version
    
    • 1
    • 2

    在这里插入图片描述

    3.修改配置文件

    #修改 zabbix server 配置文件,修改数据库的密码
    vim /etc/zabbix/zabbix_server.conf 
    ......
    LogFile=/var/log/zabbix_server.log
    # 38行,指定 zabbix 日志路径
    DBPassword=zabbix					# 123行,指定 zabbix 数据库的密码
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述
    在这里插入图片描述

    4.添加到系统服务中

    #准备 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
    EOF
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    #修改日志文件的属主属组为zabbix
    chown zabbix:zabbix /var/log/zabbix_server.log	
    
    systemctl daemon-reload
    systemctl start zabbix-server
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    ss -lntp | grep 10051			#zabbix_server 默认监听 10051 端口
    
    • 1

    在这里插入图片描述

    Step4 效果测试(部署 Web 前端,进行访问)

    cp -r /opt/zabbix-6.0.13/ui/* /var/www/zbx
    
    chown -R nginx.nginx /var/www/zbx
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    浏览器访问:http://zbx.byyb.com/ 
    
    • 1

    在这里插入图片描述

    [Default language]
    选择 Chinese(zh_CN),点击下一步
    
    [必要条件检测]
    确认无误后,点击下一步
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    在这里插入图片描述

    [配置DB连接]
    密码部分输入 zabbix,点击下一步
    
    • 1
    • 2

    在这里插入图片描述

    [Settings]
    主机名称设为 Zabbix-监控
    默认时区选择 Asia/Shanghai
    点击下一步
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    安装完成后,
    
    • 1

    在这里插入图片描述
    在这里插入图片描述

    默认的登录账号和密码为:Admin/zabbix
    
    • 1

    在这里插入图片描述
    在这里插入图片描述

    2.2 添加 zabbix 客户端主机

    安装zabbix-agent2

    Step1 服务端和客户端设置时间同步

    yum install -y ntpdate
    ntpdate -u ntp.aliyun.com
    
    • 1
    • 2

    在这里插入图片描述

    Step2 服务端和客户端设置域名映射

    cat > /etc/hosts << EOF
    192.168.2.100 zbx-server
    192.168.2.102 zbx-agent01
    EOF
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    Step3 客户端安装zabbix-agent2

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

    #设置 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.repo
    
    yum install -y zabbix-agent2
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    Step4 修改agent2的配置文件,启动服务

    vim /etc/zabbix/zabbix_agent2.conf
    ......
    Server=192.168.2.100		
    #80行,指定 zabbix 服务端的 IP 地址
    ServerActive=192.168.2.100		
    #133行,指定 zabbix 服务端的 IP 地址
    Hostname=zbx-agent01			
    #144行,指定当前 zabbix 客户端的主机名
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述
    在这里插入图片描述

    #启动 zabbix-agent2
    systemctl start zabbix-agent2
    systemctl enable zabbix-agent2
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    ss -natp | grep zabbix
    
    • 1

    在这里插入图片描述

    Step5 在服务端验证 zabbix-agent2 的连通性

    yum install -y zabbix-get
    #`zabbix_get` 是 Zabbix 命令行工具,用于从 Zabbix Agent 获取监控数据。
    
    
    #常用的键值
    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表示可以连接
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    zabbix_get -s '192.168.2.102' -p 10050 -k 'agent.ping'
    
    
    `agent.ping` 是 Zabbix Agent 提供的内置键之一,用于检查 Agent 的可用性。
    当 Zabbix Server 发送 `agent.ping` 请求时
    如果 Agent 正常工作,它将返回 "1" 表示活动
    如果 Agent 不可用,则返回 "0" 表示不活动。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    zabbix_get -s '192.168.2.102' -p 10050 -k 'system.hostname'
    
    • 1

    在这里插入图片描述

    Step6 在 Web 页面中添加 agent 主机

    点击左边菜单栏【配置】中的【主机】,点击【创建主机】
    
    • 1

    在这里插入图片描述

    【主机名称】输入 zbx-agent01
    【可见的名称】输入 zbx-agent01-192.168.2.102
    【模板】搜索 Linux ,选择 Linux by Zabbix agent
    【群组】选择 Linux servers
    【Interfaces】点击添加 客户端
    【IP地址】输入 192.168.2.102
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    在这里插入图片描述

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

    故障现象

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    解决方法

    #zabbix-server安装
    yum install -y wqy-microhei-fonts
    
    \cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /var/www/zbx/assets/fonts/DejaVuSans.ttf
    
    刷新浏览器页面
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    三、自定义监控内容部署实例

    案列:自定义监控客户端服务器登录的人数
    需求:限制登录人数不超过 3 个,超过 3 个就发出报警信息

    Step1 在客户端创建自定义 key

    1.明确需要执行的 linux 命令

    who | wc -l  #查询当前登录用户数量
    
    • 1

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

    vim /etc/zabbix/zabbix_agent2.conf
    #可以将自定义的监控项配置文件创建在 zabbix_agent2.d 目录中
    281 Include=/etc/zabbix/zabbix_agent2.d/*.conf
    #自定义监控项的格式如下
    321 #	Format: UserParameter=,
    
    • 1
    • 2
    • 3
    • 4
    • 5
    cd /etc/zabbix/zabbix_agent2.d/
    
    #将需要的命令写入子配置文件,相当于使用脚本
    vim UserParameter_login.conf
    UserParameter=login.user,who|wc -l
    
    #重启服务
    systemctl restart zabbix-agent2
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

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

    zabbix_get -s '192.168.2.102' -p 10050 -k 'login.user'
    
    -p 指定端口
    -k 指定键
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

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

    1.创建模板

    点击左边菜单栏【配置】中的【模板】,点击【创建模板】
    
    [模板名称]设置成 Template Login User
    [可见的名称]设置成 Template Login User
    [群组]选择 Template
    [描述]可自定义
    配置完成后,点击添加
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    可以在【名称】中搜索到 Template Login User 
    
    • 1

    在这里插入图片描述

    2.创建监控项

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

    在这里插入图片描述

    点击 【添加】
    
    • 1

    在这里插入图片描述

    3.创建触发器

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

    点击上方菜单栏【触发器】,点击【创建触发器】
    【名称】设置成 Number of login users is greater than 3
    【严重性】设置成 一般严重		
    #根据严重程度可自定义设置
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    【表达式】点击添加
    【监控项】点击选择 Number of login users
    【功能】选择 last()
    【结果】选择 > 3
    点击 【插入】
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    点击 【添加】
    
    • 1

    在这里插入图片描述

    4.创建图形

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

    在这里插入图片描述
    在这里插入图片描述

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

    点击左边菜单栏【配置】中的【主机】
    点击你要关联的主机
    【模板】搜索 login,选择 Template Login User
    点击【更新】
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    点击【监测】中的【主机】
    点击你关联主机的【图形】,即可查看到相关的监控项指标
    
    • 1
    • 2

    在这里插入图片描述

    6.设置邮件报警

    点击左边菜单栏【管理】中的【报警媒介类型】,点击【创建媒体类型】
    【名称】设置成 qq_Email
    【SMTP服务器】设置成 smtp.qq.com
    【SMTP服务器端口】设置成 25
    【SMTP HELO】设置成 qq.com
    【SMTP电邮】设置成 自己的邮箱地址
    【认证】选择 用户名和密码
    【用户名称】设置成 自己的邮箱地址
    【密码】可登录QQ邮箱页面,点击【设置】-->【账户】中的【生成授权码】,通过短信获取授权码
    zhukmpcerperdjcg
    【描述】可自定义
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述
    在这里插入图片描述

    点击上方菜单栏【Message templates】
    点击【添加】
    【Message type】选择 问题
    点击【更新】
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    在这里插入图片描述

    点击 【添加】,并测试功能
    
    • 1

    在这里插入图片描述

    点击左边菜单栏【User settings】-->【Profile】-->【报警媒介】,点击【添加】
    【类型】选择 qq_Email
    【收件人】设置成 自己的qq邮箱地址
    【当启用时】设置成 1-7,00:00-24:00
    【如果存在严重性则使用】勾选需要的严重性
    点击 【添加】
    再点击 【更新】
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述
    在这里插入图片描述

    点击左边菜单栏【配置】->【动作】->【Trigger actions】
    选择相对应的动作名称点击进入,点击 【添加】
    【类型】选择 触发器,【操作者】选择 等于,【触发器】点击选择 Nunber of login users is greater than 3
    点击【添加】
    勾选 【已启动】
    点击 【更新】
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    Step3 测试邮件报警

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

    1.增加连接数

    ssh 192.168.2.100 #远程连接,以root用户
    
    • 1

    在这里插入图片描述

    2.查看【监测】–>【仪表板】

    在这里插入图片描述

    3.查看邮箱

    在这里插入图片描述

    四、zabbix 自动发现与自动注册部署实例

    4.1 部署zabbix自动发现

    ServerIP address
    zbx-server192.168.2.100
    zbx-agent01192.168.2.102
    zbx-agent02192.168.2.103
    systemctl disable --now firewalld
    setenforce 0
    hostnamectl set-hostname zbx-agent02
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    在这里插入图片描述

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

    systemctl is-active zabbix-agent2.service 
    
    • 1

    在这里插入图片描述

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

    点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除
    在这里插入图片描述
    在这里插入图片描述

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

    vim /etc/hosts
    192.168.2.100 zbx-server
    192.168.2.102 zbx-agent01
    192.168.2.103 zbx-agent02
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    4.在 Web 页面配置自动发现

    点击左边菜单栏【配置】中的【自动发现】,点击【创建发现规则】
    【名称】设置成 mynetwork
    【IP范围】设置成 192.168.80.1-254
    【更新间隔】设置成 30s
    【检查】点击添加,【检查类型】选择 Zabbix 客户端,【端口范围】设置成 10050,【键值】设置成 system.uname
    【设备唯一性准则】选择 IP地址
    【主机名称】选择 DNS名称
    【可见的名称】选择 主机名称
    勾选 【已启用】
    点击 【添加】
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    点击左边菜单栏【配置】中的【动作】
    上方菜单选择 【发现动作】
    勾选 【Auto discovery. Linux servers.】
    点击 【启用】
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    在这里插入图片描述

    点击左边菜单栏【配置】中的【主机】刷新
    等待一段时间后即可刷新出自动发现的客户端主机
    
    • 1
    • 2

    在这里插入图片描述

    5.在服务端查看 zabbix 日志

    tail -f /var/log/zabbix_server.log
    
    • 1

    在这里插入图片描述

    4.2 部署zabbix自动注册

    ServerIP address
    zbx-server192.168.2.100
    zbx-agent01192.168.2.102
    zbx-agent02192.168.2.103

    1.前置准备

    点击左边菜单栏【配置】中的【发现动作】,勾选发现规则,点击 禁用
    点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除
    
    • 1
    • 2

    在这里插入图片描述
    在这里插入图片描述

    vim /etc/hosts
    192.168.2.100 zbx-server
    192.168.2.102 zbx-agent01
    192.168.2.103 zbx-agent02
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    2.修改 zabbix-agent2 配置文件

    vim /etc/zabbix/zabbix_agent2.conf
    ......
    HostnameItem=system.hostname		#152行,取消注释
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    #显示出配置文件中非注释和非空行的内容
    egrep -v "^#|^$" /etc/zabbix/zabbix_agent2.conf 
    
    #重启服务
    systemctl restart zabbix-agent2
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    在这里插入图片描述

    3.在 Web 页面配置自动注册

    点击左边菜单栏【配置】中的【动作】,上方菜单选择 【自动注册动作】,点击【创建动作】
    
    • 1

    在这里插入图片描述

    【名称】设置成 Auto registration
    
    【条件】点击添加
    【类型】选择 主机名称
    【操作者】选择 包含
    【值】设置成 zbx-agent
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述
    在这里插入图片描述

    点击上方菜单栏【操作】
    
    点击【添加】
    【操作类型】选择 添加主机,点击 【Add】
    再点击【添加】
    【操作类型】选择 添加到主机群组,【主机群组】选择 Linux servers,点击 【Add】
    再点击【添加
    【操作类型】选择 与模板关联,【模板】搜索 Linux,选择 Linux by Zabbix agent,点击 【Add】
    
    点击下方的【添加】
    
    #操作部分添加的内容相当于条件
    #只有满足这些条件的主机,才会自动添加
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述
    在这里插入图片描述

    等待一段时间后,点击左边菜单栏【配置】中的【主机】刷新,即可刷新出自动发现的客户端主机
    
    • 1

    在这里插入图片描述

    4.在服务端查看 zabbix 日志

    tail -f /var/log/zabbix_server.log
    
    • 1

    在这里插入图片描述

  • 相关阅读:
    网上买手机卡,过来人给你总结了几条经验,得注意了!
    (附源码)基于Springboot智慧园区管理系统-计算机毕设 88160
    酷开科技丨酷开系统智慧中心,解锁AI智能家居生活的无限可能
    【云原生 一】 CRI、OCI、containerd和CRI-O、runc
    Excel中将文本格式的数值转换为数字
    C++:函数:匿名函数Lambda
    SUSE zypper 添加源和离线下载rpm包
    一文看懂推荐系统:召回06:双塔模型——模型结构、训练方法,召回模型是后期融合特征,排序模型是前期融合特征
    【DLoopDetector(C++)】DBow2词袋模型&&loop close学习
    【计算机网络:自顶向下方法】(一)计算机网络和英特网
  • 原文地址:https://blog.csdn.net/q2524607033/article/details/133636464