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

这里是目录

  • 一、Zabbix概述
    • 1.1 简介
    • 1.2 zabbix组件
      • 1.2.1 zabbix server
      • 1.2.2 zabbix agent
      • 1.2.3 zabbix proxy
      • 1.2.4 zabbix get
      • 1.2.5 zabbix sender
    • 1.3 工作原理
    • 1.4 端口号
    • 1.5 zabbix中预设的键值
    • 1.6 自定义监控项
    • 1.7 邮件报警的思路
    • 1.8 Zabbix自动发现和自动注册
      • 1.8.1 zabbix自动发现
      • 1.8.2 zabbix自动注册
  • 二、部署Zabbix 6.0版本
    • 2.1 部署zabbix服务端
      • Step1 部署 Nginx + PHP 环境并测试
      • Step2 部署数据库
      • Step3 编译安装zabbix Server 服务端
      • Step4 效果测试(部署 Web 前端,进行访问)
    • 2.2 添加 zabbix 客户端主机
      • Step1 服务端和客户端设置时间同步
      • Step2 服务端和客户端设置域名映射
      • Step3 客户端安装zabbix-agent2
      • Step4 修改agent2的配置文件,启动服务
      • Step5 在服务端验证 zabbix-agent2 的连通性
      • Step6 在 Web 页面中添加 agent 主机
    • 2.3 解决 zabbix-server Web页面中文乱码问题
  • 三、自定义监控内容部署实例
    • Step1 在客户端创建自定义 key
    • Step2 在 Web 页面创建自定义监控项模板
    • Step3 测试邮件报警
  • 四、zabbix 自动发现与自动注册部署实例
    • 4.1 部署zabbix自动发现
    • 4.2 部署zabbix自动注册

一、Zabbix概述

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

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监控系统 第一部分:zabbix服务部署+自定义监控项+自动发现与自动注册(附详细部署实例)_第2张图片

zabbix_serverzabbix_agent、zabbix_proxy、zabbix_get、zabbix_sender 等。

1.2.1 zabbix server

zabbix 服务端守护进程,其中 zabbix_agent、zabbix_get、zabbix_sender、zabbix_proxy 的数据最终都提交给 zabbix server。

1.2.2 zabbix agent

客户端守护进程,负责收集客户端数据,例如:收集 CPU 负载、内存、硬盘使用情况等。

1.2.3 zabbix proxy

zabbix 分布式代理守护进程,通常大于 500 台主机,需要进行分布式监控架构部署。

1.2.4 zabbix get

zabbix 数据接收工具,单独使用的命令,通常在 server 或者 proxy 端执行获取远程客户端信息的命令。

1.2.5 zabbix sender

zabbix 数据发送工具,用户发送数据给 server 或 proxy 端,通常用户耗时比较长的检查。

1.3 工作原理

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

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

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

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

1.4 端口号

组件 端口号
zabbix server 10051
zabbix agent 10050

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.6 自定义监控项

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

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

#监控项配置文件内容格式
UserParameter=键值名,获取值的命令/脚本路径

#用逗号隔开

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版本

Server IP
Zabbix-server 192.168.2.100
Zabbix-agent01 192.168.2.102
#关闭 selinux 与防火墙
systemctl disable --now firewalld
setenforce 0

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`

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

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

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

#修改 php 配置
vim /etc/php-fpm.d/www.conf
user = nginx
group = nginx

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

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",表示使用上海的时区。如果您希望使用其他时区,请将其更改为相应的时区。

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

3.测试

#创建目录和测试文件
mkdir -p /var/www/zbx

vim /var/www/zbx/index.php
<?php
phpinfo();
?>

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

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

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

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

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

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

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

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

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

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

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

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

mysql -u root -pabc123

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

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

create database zabbix character set utf8 collate utf8_bin;

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

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

在这里插入图片描述

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 数据库的表结构、索引、键等定义。这是创建和初始化整个数据库的主要文件。

在这里插入图片描述

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

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

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

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

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

make install
#检查版本
zabbix_server --version

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

3.修改配置文件

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

在这里插入图片描述
Zabbix监控系统 第一部分:zabbix服务部署+自定义监控项+自动发现与自动注册(附详细部署实例)_第21张图片

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
#修改日志文件的属主属组为zabbix
chown zabbix:zabbix /var/log/zabbix_server.log	

systemctl daemon-reload
systemctl start zabbix-server

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

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

在这里插入图片描述

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

cp -r /opt/zabbix-6.0.13/ui/* /var/www/zbx

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

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

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

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

[Default language]
选择 Chinese(zh_CN),点击下一步

[必要条件检测]
确认无误后,点击下一步

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

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

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

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

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

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

安装完成后,

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

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

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

2.2 添加 zabbix 客户端主机

安装zabbix-agent2

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

yum install -y ntpdate
ntpdate -u ntp.aliyun.com

在这里插入图片描述

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

cat > /etc/hosts << EOF
192.168.2.100 zbx-server
192.168.2.102 zbx-agent01
EOF

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

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

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

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 客户端的主机名

Zabbix监控系统 第一部分:zabbix服务部署+自定义监控项+自动发现与自动注册(附详细部署实例)_第35张图片
在这里插入图片描述

#启动 zabbix-agent2
systemctl start zabbix-agent2
systemctl enable zabbix-agent2

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

ss -natp | grep zabbix

在这里插入图片描述

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表示可以连接
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" 表示不活动。

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

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

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

Step6 在 Web 页面中添加 agent 主机

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

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

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

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

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

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

故障现象

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

解决方法

#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

刷新浏览器页面

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

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

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

Step1 在客户端创建自定义 key

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

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

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

vim /etc/zabbix/zabbix_agent2.conf
#可以将自定义的监控项配置文件创建在 zabbix_agent2.d 目录中
281 Include=/etc/zabbix/zabbix_agent2.d/*.conf
#自定义监控项的格式如下
321 #	Format: UserParameter=,
cd /etc/zabbix/zabbix_agent2.d/

#将需要的命令写入子配置文件,相当于使用脚本
vim UserParameter_login.conf
UserParameter=login.user,who|wc -l

#重启服务
systemctl restart zabbix-agent2

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

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

-p 指定端口
-k 指定键

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

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

1.创建模板

点击左边菜单栏【配置】中的【模板】,点击【创建模板】

[模板名称]设置成 Template Login User
[可见的名称]设置成 Template Login User
[群组]选择 Template
[描述]可自定义
配置完成后,点击添加

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

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

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

2.创建监控项

点击 Template Login User 模板进入
点击上方菜单栏【监控项】,点击【创建监控项】

【名称】设置成 Number of login users
【键值】设置成 login.user			
#键值必须要与自定义的监控项配置文件中设置的保持一致
【更新间隔】设置成 10s
【历史数据保留时长】Storage period	30d		#保留时间可自定义设置

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

点击 【添加】

在这里插入图片描述

3.创建触发器

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

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

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

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

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

点击 【添加】

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

4.创建图形

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

Zabbix监控系统 第一部分:zabbix服务部署+自定义监控项+自动发现与自动注册(附详细部署实例)_第53张图片
在这里插入图片描述

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

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

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

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

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

6.设置邮件报警

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

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

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

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

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

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

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

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

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

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

Step3 测试邮件报警

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

1.增加连接数

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

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

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

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

3.查看邮箱

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

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

4.1 部署zabbix自动发现

Server IP address
zbx-server 192.168.2.100
zbx-agent01 192.168.2.102
zbx-agent02 192.168.2.103
systemctl disable --now firewalld
setenforce 0
hostnamectl set-hostname zbx-agent02

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

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

systemctl is-active zabbix-agent2.service 

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

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

点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除
Zabbix监控系统 第一部分:zabbix服务部署+自定义监控项+自动发现与自动注册(附详细部署实例)_第74张图片
Zabbix监控系统 第一部分:zabbix服务部署+自定义监控项+自动发现与自动注册(附详细部署实例)_第75张图片

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

vim /etc/hosts
192.168.2.100 zbx-server
192.168.2.102 zbx-agent01
192.168.2.103 zbx-agent02

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

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

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

Zabbix监控系统 第一部分:zabbix服务部署+自定义监控项+自动发现与自动注册(附详细部署实例)_第77张图片
Zabbix监控系统 第一部分:zabbix服务部署+自定义监控项+自动发现与自动注册(附详细部署实例)_第78张图片
Zabbix监控系统 第一部分:zabbix服务部署+自定义监控项+自动发现与自动注册(附详细部署实例)_第79张图片
Zabbix监控系统 第一部分:zabbix服务部署+自定义监控项+自动发现与自动注册(附详细部署实例)_第80张图片

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

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

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

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

5.在服务端查看 zabbix 日志

tail -f /var/log/zabbix_server.log

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

4.2 部署zabbix自动注册

Server IP address
zbx-server 192.168.2.100
zbx-agent01 192.168.2.102
zbx-agent02 192.168.2.103

1.前置准备

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

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

vim /etc/hosts
192.168.2.100 zbx-server
192.168.2.102 zbx-agent01
192.168.2.103 zbx-agent02

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

2.修改 zabbix-agent2 配置文件

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

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

#显示出配置文件中非注释和非空行的内容
egrep -v "^#|^$" /etc/zabbix/zabbix_agent2.conf 

#重启服务
systemctl restart zabbix-agent2

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

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

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

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

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

【名称】设置成 Auto registration

【条件】点击添加
【类型】选择 主机名称
【操作者】选择 包含
【值】设置成 zbx-agent

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

点击上方菜单栏【操作】

点击【添加】
【操作类型】选择 添加主机,点击 【Add】
再点击【添加】
【操作类型】选择 添加到主机群组,【主机群组】选择 Linux servers,点击 【Add】
再点击【添加
【操作类型】选择 与模板关联,【模板】搜索 Linux,选择 Linux by Zabbix agent,点击 【Add】

点击下方的【添加】

#操作部分添加的内容相当于条件
#只有满足这些条件的主机,才会自动添加

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

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

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

4.在服务端查看 zabbix 日志

tail -f /var/log/zabbix_server.log

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

你可能感兴趣的:(zabbix,php,开发语言,运维)