zabbix基本概念与组件

一、zabbix基础概念

zabbix官网地址为https://www.zabbix.com/

1.1、 概述

Zabbix 是一个功能强大的开源监控解决方案,广泛应用于IT基础设施的监控和管理中。它提供了全面的监控能力,能够实时跟踪并报告网络、服务器、虚拟机、应用程序、服务、数据库、网站以及云服务等各种IT组件的健康状况和性能指标。Zabbix 基于存储的数据提供报告和数据可视化功能。这使得 Zabbix 成为容量规划的理想选择。

Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。基于已存储的数据,Zabbix提供了出色的报告和数据可视化功能。

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

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

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

zabbix server :负责存储展示硬件信息,通过B/S模式传给web端展示配置,端口号10051

zabbix  agent :监控收集服务器信息,端口号为10050

1.2、 zabbix 简介

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

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

  • zabbix 由 2 部分构成,zabbix server 与可选组件 zabbix agent。通过 C/S 模式采集数据,通过 B/S 模式在 Web 端展示和配置。

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

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

注:SNMP(Simple Network Management Protocol,简单网络管理协议)是一种用于网络管理的协议,它允许网络管理系统(NMS,Network Management System)与网络上的设备进行通信,以收集设备信息、配置设备参数、监控设备状态以及进行故障排查等。SNMP是一种强大的网络管理协议,它使得网络管理员能够高效地管理和监控网络中的设备,确保网络的稳定运行。

1.3、 优势

。以下是Zabbix的一些关键特性和优势:

  1. 广泛的监控能力:Zabbix能够监控几乎所有类型的IT基础设施,包括但不限于CPU负载、内存使用情况、磁盘I/O、网络流量、数据库性能等。这使得IT管理员能够全面了解系统的运行状态。

  2. 灵活的警报系统:Zabbix通过其灵活的通知机制,允许用户为各种事件配置警报。这些警报可以基于电子邮件、短信、即时消息等多种方式发送,确保IT团队能够在第一时间得知系统异常或潜在问题。

  3. 强大的数据可视化:Zabbix提供了丰富的数据可视化工具,如实时图表、历史趋势图等,帮助用户直观理解系统性能的变化趋势。这些可视化工具不仅有助于问题诊断,还为容量规划和资源优化提供了有力支持。

  4. 高度可定制性:Zabbix支持自定义监控项、触发器、报警动作等,用户可以根据自己的需求灵活配置监控系统。这种高度可定制性使得Zabbix能够适应各种复杂的监控场景。

  5. 易于扩展:随着业务的发展,IT基础设施可能会不断扩大。Zabbix提供了良好的扩展性,支持分布式监控架构,可以轻松应对大规模监控需求。

  6. 社区支持:Zabbix拥有活跃的社区支持,用户可以在社区中分享经验、寻求帮助并获取最新的功能和更新信息。这种社区支持为用户提供了丰富的资源和便利的交流平台。

  7. 成本效益:作为开源软件,Zabbix的获取成本较低。用户可以根据自己的需求进行安装、配置和使用,无需支付高昂的许可费用。这对于预算有限的中小型企业和组织来说尤其具有吸引力。

1.4、 zabbix构成

组件描述
Server

Zabbix的核心组件,内部存储了所有的配置信息、统计信息和操作信息 。

接收来自Zabbix Agent的监控数据。

Web页面提供直观的监控信息界面,通常与Zabbix Server部署在同一物理设备上,但也可分开配置。web页面主要提供了直观的监控信息,以方便运维人员监控管理。
数据库存储Zabbix的配置信息、统计信息等相关内容,是Zabbix Server的数据支撑。
Proxy可选组件【根据具体生产环境进行采用或者放弃】,用于替代Zabbix Server采集数据信息,以分担Zabbix Server的负载。适用于大型架构、跨机房、跨网段、zabbix server无法与zabbix agent直接通信的场景 。
Agent部署在被监控目标上的组件,主动监控本地资源和应用程序,并将监控数据发送给Zabbix Server。

1.5、zabbix监控对象

zabbix支持监控各种系统平台,包括Linux和Windows等主流操作系统,也可以借助SNMP或者是SSH协议监控路由交换设备。 zabbix如果部署在服务器上,可以监控其CPU、内存、网络性能等硬件参数,也可以监控具体的服务或者应用程序、服务运行情况及性能。

监控类型描述监控方式/接口
系统平台监控支持Linux、Windows等主流操作系统,以及路由交换设备SNMP、SSH协议
硬件监控监控CPU、内存、网络性能等硬件参数(物理特征,比如电压、温度、风扇状态、电源状态等)Zabbix IPMI Interface(通过IPMI接口)
系统监控监控具体的服务或应用程序、服务运行情况及性能Zabbix Agent Interface(通过专用代理程序)
Java监控监控JVM虚拟机,如Tomcat服务、Elasticsearch、ZooKeeper或其它 JAVA 程序Zabbix JMX Interface(通过JMX)需要使用Java Gateway作为代理
网络设备监控监控路由器、交换机等网络设备(常来说,我们无法在路由器、交换机这种硬件上安装agent,但是这些硬件都支持SNMP协议)Zabbix SNMP Interface(通过SNMP协议)
应用服务监控自定义监控项,如特定服务的运行状态Zabbix Agent UserParameter
MySQL数据库监控监控MySQL数据库的性能和状态Percona-monitoring-plugins
URL监控监控Web服务的URL响应时间和状态码Zabbix Web监控

1.6、 zabbix常用术语

序号术语描述
1主机(Host)要监控的设备,可由IP或主机名(需可解析)指定。
2主机组(Host Group)主机的逻辑容器,包含主机和模板,主机组通常在给用户或者是用户组指派监控权限时使用。
3监控项(Item)特定监控指标的数据,如内存大小、CPU使用率等,每个监控项由一个key标识。
4触发器(Trigger)一个表达式,用于评估监控项的值是否在合理的范围内。当接收的值超出触发器的规定时,就被认为是故障,如果超出后再次符合,就被认为是正常。
5事件(Event)触发器触发或系统定义的事件,如主机自动上线注册。
6动作(Action)对触发器触发事件进行处理的措施,如执行脚本、发送邮件。
7报警升级(Escalation)发送警报或执行远程命令的自定义方案,可设置多级报警。
8媒介(Media)发送通知(告警)的手段,如微信、邮件、钉钉等。
9通知(Notification)通过指定媒介向用户发送的事件信息。
10远程命令(Remote Command)运维人员预设的命令,可在触发事件后由被监控主机执行。
11模板(Template)快速定义被监控主机的预设条目集合,包括监控项、触发器、应用等。
12应用(Application)一组监控项的集合,便于管理和分类。
13Web场景(Web Scenario)用于检测Web站点可用性的HTTP请求序列。
14前端(Frontend)Zabbix的Web接口,用于配置、监控和管理。

1.7、 Zabbix 6.0 新特性

1.7.1、高可用

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

  • 原生选择加入HA群集配置

  • 定义一个或多个备用节点

  • 实时监控Zabbix server群集节点的状态

  • 不需要外部工具即可将Zabbix server配置为HA群集模

1.7.2、Kubernetes系统监控

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

  • Kubernetes节点和pods的自动发现和监控

  • 无代理方式采集Kubernetes pods和节点的信息

  • 获取Kubernetes节点主机高水平信息

但是用不到容器监控

1.8、 zabbix 工作原理

 1.8.1、zabbix监控工作图

工作流程

zabbix在进行监控时,zabbix客户端要安装在被监控设备上,负责定期收集数据,并将其发送给zabbix服务端;zabbix服务端要安装在监控设备上,其将zabbix客户端发送的数据存储的数据库中,zabbix web根据数据在前端进行展示和绘图。

 1.8.2、zabbix的数据收集两种模式

1、主动模式

zabbix客户端主动向zabbix server请求监控项列表,并主动将监控项内需要的数据提交给zabbix server。

2、被动模式

zabbix server向agent请求获取监控项的数据,zabbix agent返回数据。

可以看出,zabbix的主动和被动模式是以zabbix客户端为基准的。

理解:被监控类似于学生,server类似于老师,主动交作业和被动交作业

1.9、 zabbix进程详解

进程名称描述及功能
zabbix_agentd

客户端守护进程,

负责在监控目标(如服务器、网络设备)上收集监控项(如CPU使用率、内存使用量等)的数据,并将这些数据发送给zabbix_server或zabbix_proxy。

zabbix_server

服务端守护进程,

是Zabbix系统的核心组件。它负责接收来自zabbix_agentd或zabbix_proxy的数据,处理这些数据,并将其存储在数据库中。同时,它也负责触发报警、执行自动化操作等任务。

zabbix_proxy

代理进程,

其功能类似于server,作用上类似与一个中转站, 它可以从多个zabbix_agentd收集数据,然后统一发送给zabbix_server,减轻zabbix_server的负载,特别是在监控目标众多、网络分布广泛的场景中非常有用。

zabbix_get

一个命令行工具,

主要用于从zabbix_agentd获取即时的监控数据,而不需要等待正常的数据收集周期。这对于快速排查问题(排错)或验证监控配置非常有用。

zabbix_sender

另一个命令行工具,

主要用于从外部脚本或应用程序发送数据给zabbix_server或zabbix_proxy。通常运行在zabbix客户端,通常用于耗时比较长的检查,其作用是主动发送数据。

zabbix_java_gateway

自Zabbix 2.0之后引入,用于监控Java应用程序。

由于Java应用程序通常使用JVM(Java虚拟机)特有的机制进行性能监控,zabbix_java_gateway能够通过JMX(Java Management Extensions)等接口主动获取Java应用的监控数据,然后发送给zabbix_server。需要注意的是,zabbix_java_gateway只能主动获取数据,不能被动接收来自zabbix_agentd的数据。

1.10、 zabbix监控架构

在实际生产环境中,根据网络环境和监控规模的不同,zabbix一共有三种监控架构,

分别是server-client架构、master-node-client架构和server-proxy-client架构。

1、server-client架构

zabbix最简单的架构,监控设备和被监控设备之间直接相连,zabbix server和zabbix client之间直接进行数据交互。

2、server-proxy-client架构

proxy是连接server和client之间的桥梁,其本身并不存放数据,只是将zabbix agent端发送来的数据暂存,然后再提交给server。这种架构一般用于跨机房、跨网络的中型网络架构。在server-proxy-client架构架构中,server设备的宕机会导致整个系统无法正常工作

3、master-node-client架构

master-node-client架构是zabbix最复杂的架构,一般用于跨机房、跨网络、监控设备较多的大型网络架构。与server-proxy-client相比,master-node-client架构的主要区别在于node与proxy上。在master-node-client架构中,每个node可以理解为一个小的server端,有自己的配置文件和数据库,node下游可以直接连接client,也可以再次经过proxy代理后连接client。在master-node-client架构中,master设备宕机不会影响node结点的正常工作。

每个模块工作职责:

  1. Zabbix Server:Zabbix Server为核心组件,用来获取agent存活状况及监控数据。所有的配置、统计、操作数据均通过Server进行存取到database;
  2. Zabbix Database:用户存储所有zabbix的配置信息、监控数据的数据库;
  3. Zabbix Web:Zabbix的web界面,管理员通过web界面管理zabbix配置以及查看zabbix相关监控信息,通常与zabbix Server运行在同一台主机上,也可以单独部署在独立的服务器上;
  4. Zabbix Proxy:常用于分布监控环境中,代理zabbix Server收集部分被监控的监控数据并统一发往Server端;(通常大于500台主机需要使用)
  5. Zabbix Agent:部署在被监控主机上,负责收集被监控主机的数据,并发往Server端或Proxy端;

另外,zabbix server、proxy、agent都有自己的配置文件以及log文件,重要的参数需要在这里配置,后面会详细说明。

二、部署 zabbix 6.0

  • 系统:CentOS 7 不支持 yum 方式安装 Zabbix 6.0 服务端

  • 安装方式:Zabbix 服务端采用编译安装的方式,zabbix 客户端采用 yum 安装的方式

2.1、 关闭防火墙和Selinux

systemctl disable --now firewalld
setenforce 0
hostnamectl set-hostname zbx-server  #设置主机名

2.2 部署 Nginx + PHP 环境并测试

2.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
EOF

yum install -y nginx

2.2.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

2.2.3 、修改nginx 配置

vim /etc/nginx/conf.d/jk.conf

server {
  listen 80;
  #server_name zbx.abc.com;
  server_name 192.168.88.76;
  root /var/www/zbx;
  
  location / {
    index index.php;
  }
  
  location ~ \.php$ {
    root /var/www/zbx;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /var/www/zbx$fastcgi_script_name;
    include fastcgi_params;
  }
}
--------------------------------------------------------------------
server {
  listen 80;
  server_name 192.168.88.76;
  root /var/www/zbx;
  location / {
    index index.php;
  }
    location ~ \.php$ {
    root /var/www/zbx;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /var/www/zbx$fastcgi_script_name;
    include fastcgi_params;
  }
}

nginx -t 可以检查

2.2.4 、修改 php 配置

vim /etc/php-fpm.d/www.conf

user = nginx
group = nginx

vim /etc/php.ini

max_execution_time = 300        # 368行
max_input_time = 600            # 378行
post_max_size = 80M                # 656行
date.timezone = Asia/Shanghai    # 877行

2.2.5、创建目录和测试文件,启动服务

mkdir -p /var/www/zbx

vim /var/www/zbx/index.php

<?php
phpinfo();
?>

systemctl enable --now nginx php-fpm

2.2.6 测试访问

修改 C:\Windows\System32\drivers\etc\hosts
192.168.88.76zbx.abc.com
 
浏览器访问:http://zbx.abc.com/index.php


如果使用IP 
直接浏览器访问:http://192.168.88.76/index.php

不行重启一下nginx

systemctl restart nginx

2.3、部署数据库,要求 MySQL 5.7 或 MariadbariaMariadb 10.5 及以上版本

2.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
EOF

 yum install -y mariadb-server mariadb

 systemctl enable --now mariadb

或者下载mysql5.7【二者选一,或者可以找前面的文章sh脚本自动安装】

2.3.2 初始化数据库

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

  • mysql_secure_installation 是一个 MySQL 提供的脚本,用于帮助用户提高 MySQL 服务器的安全性。这个脚本通过执行一系列的安全相关操作来减少 MySQL 服务器的安全风险。当你首次安装 MySQL 服务器后,运行这个脚本是一个很好的做法,因为它可以帮助你快速配置一些基本的安全设置。

登录
mysql -u root -p123123

>CREATE DATABASE zabbix character set utf8 collate utf8_bin;

>GRANT all ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
>GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
>flush privileges;

2.3.4 向数据库导入 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  double.sql  history_pk_prepare.sql  images.sql  Makefile.am  Makefile.in  schema.sql

 
按照顺利导入数据库
cd /opt/zabbix-6.0.13/database/mysql
mysql -uroot -p123456 zabbix < schema.sql
mysql -uroot -p123456 zabbix < images.sql
mysql -uroot -p123456 zabbix < data.sql
mysql -uroot -p123456 zabbix < double.sql
mysql -uroot -p123456 zabbix < history_pk_prepare.sql

2.4 编译安装 zabbix Server 服务端

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.4.2 编译安装

cd /opt/zabbix-6.0.13/
export CFLAGS="-std=gnu99"  

" 用于在当前的终端环境中设置编译器的标志 CFLAGS,使得编译器在编译 C 代码时使用 GNU C99 标准。
  
./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
 

make install

2.4.3 检查版本

zabbix_server --version

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

vim /etc/zabbix/zabbix_server.conf 

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

创建日志文件,并修改属组和属主权限
touch /var/log/zabbix_server.log
chown zabbix.zabbix /var/log/zabbix_server.log 

2.4.5 准备 systemctl 服务管理文件

vim /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

systemctl daemon-reload 
systemctl enable --now zabbix-server
 
netstat -lntp | grep 10051     #zabbix_server 默认监听 10051 端口
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      32069/zabbix_server   

2.5、 部署 Web 前端,进行访问

cp -r /opt/zabbix-6.0.13/ui/* /var/www/zbx    #设置的user和group为nginx
cp:是否覆盖"/var/www/zbx/index.php"? yes
chown -R nginx.nginx /var/www/zbx

浏览器访问:http://zbx.abc.com/     或  http://192.168.10.19
【Default language】选择 Chinese(zh_CN),点击下一步


【密码】输入 zabbix,点击下一步


【Zabbix主机名称】输入 Zabbix-监控;【默认时区】选择 Asia/Shanghai,点击下一步
 
安装完成后,默认的登录账号和密码为:Admin/zabbix

2.6、错误解决

首先看日志cat /var/log/zabbix_server.log

看看ps -aux |grep zabbix
 

mysql和  mariadb不能都并存  ,是否开启,看看数据库有没有导入,注意重启或者kill

systemctl status mysql

vim /etc/my.cnf

注意sock,可以直接删除配置

三、 安装 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-agent2

 
systemctl enable --now zabbix-agent2
 

客户端 zabbix_agent2 默认监听 10050 端口
netstat -lntp | grep 10050            

3.1、 解决 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.2、添加 zabbix 客户端主机

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

(1) 服务端和客户端都配置时间同步

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

(2)服务端和客户端都设置hosts解析

vim /etc/hosts

192.168.88.76 zbx-server
192.168.88.77 zbx-agent01

(3)安装 zabbix-agent2
#设置 zabbix 的下载源,安装zabbix-agent2
rpm -Uvh 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 zabbix-agent2 zabbix-agent2-plugin-* -y

(4)修改 agent2 配置文件
vim /etc/zabbix/zabbix_agent2.conf
......
Server=192.168.88.76		
#80行,指定 zabbix 服务端的 IP 地址
ServerActive=192.168.88.76	
#133行,指定 zabbix 服务端的 IP 地址
Hostname=zbx-agent01			
#144行,指定当前 zabbix 客户端的主机名

(5)启动 zabbix-agent2

systemctl start zabbix-agent2
systemctl enable zabbix-agent2

netstat -natp | grep zabbix 
 

(6)在服务端验证 zabbix-agent2 的连通性

1、在服务端安装测试工具

yum install -y zabbix-get

2、在zbx-server机器上发送ping和主机测试agent01机器的联通性

zabbix_get -s '192.168.88.77' -p 10050 -k 'agent.ping'

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

其他的一些测试命令

#常用的键值
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表示可以连接
(7)在 Web 页面中添加 agent 主机

点击左边菜单栏【配置】中的【主机】,点击【创建主机】
【主机名称】输入 zbx-agent01
【可见的名称】输入 zbx-agent01-192.168.210.107
【模板】搜索 Linux ,选择 Linux by Zabbix agent
【群组】选择 Linux servers
【Interfaces】点击添加 客户端
【IP地址】输入 192.168.88.77


一些模版的下载 

#监控模板下载地址
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
#自定义监控项的格式如下

------------------------------------------------
291 # Format: UserParameter=<key>,<shell command>
cd /etc/zabbix/zabbix_agent2.d/
vim UserParameter_login.conf
#按照格式
UserParameter=login.user,who|wc -l
systemctl restart zabbix-agent2
4.1.3 在服务端验证新建的监控项
zabbix_get -s '192.168.88.77' -p 10050 -k 'login.user'

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

4.2.1 、创建模版

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

【模板名称】设置成 Template Login User
【可见的名称】设置成 Template Login User
【群组】选择 Templates
【描述】可自定义
点击 【添加】,此时就可在【链接的模板】中搜索到 Template Login User

4.2.2、 创建监控项

点击上方菜单栏【监控项】,点击【创建监控项】
【名称】设置成 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、 将主机与模板关联起来(一个主机可以关联多个模板)

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

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

4.2.6 、设置邮件报警

点击左边菜单栏【管理】中的【报警媒介类型】,点击【创建媒体类型】

【名称】设置成 qq_Email
SMTP 服务器】设置成 smtp.qq.com
SMTP 服务器端口】设置成 25
SMTP HELO 】设置成 qq.com
SMTP 电邮】设置成 自己的邮箱地址,例如 123456@qq.com
【认证】选择 用户名和密码
【用户名称】设置成 自己的邮箱地址,例如 1123456@qq.com
【密码】可登录 QQ 邮箱页面,点击【设置】 --> 【账户】中的【生成授权码】,通过短信获取授权码
【描述】可自定义
点击上方菜单栏【 Message templates 】,点击【添加】,【 Message type 】选择 问题,点击【更新】
点击 【添加】,并测试功能
点击左边菜单栏【配置】 -> 【动作】 -> Trigger actions

发送测试

选择接收人

点击左边菜单栏【User settings】-->【报警媒介】,点击【添加】
【类型】选择 qq_Email
【收件人】设置成 xxxx@qq.com
【当启用时】设置成 1-7,00:00-24:00
点击 【添加】
再点击 【更新】

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

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

会有邮件


扩展:告警中文更改
主题:【{TRIGGER.STATUS}】- 服务器{HOST.NAME}的告警
<b>告警时间:{EVENT.DATE} {EVENT.TIME}</b><br>
<b>告警信息:{TRIGGER.NAME}</b><br>
<b>告警等级:{TRIGGER.SEVERITY}</b><br>
<b>告警项目:{ITEM.NAME}</b><br>
<b>告警值:{TRIGGER.VALUE}</b><br>
<b>当前状态:{ITEM.VALUE}</b><br>
<b>事件ID:{EVENT.ID}</b><br>
中文设置
   {EVENT.TIME}: 事件发生的时间。
    {EVENT.DATE}: 事件发生的日期。
    {EVENT.NAME}: 问题的名称或描述。
    {HOST.NAME}: 主机的名称。
    {EVENT.SEVERITY}: 事件的严重程度。
    {EVENT.OPDATA}: 事件的运行数据或其他相关信息。
    {EVENT.ID}: 原始问题的ID。
    {TRIGGER.URL}: 可能是指向更多信息或解决方案的链接。
   
    主题:Problem: {EVENT.NAME}事件 故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

内容:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值