Zabbix企业级监控系统

news2024/10/6 12:21:32

——监控可以帮助我们做什么?

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

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

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

——zabbix 是什么?

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

——Zabbix与Prometheus的区别

ZabbixPrometheus
后端用 C 开发,界面用 PHP 开发定制化难度高后端用 golang 开发,前端是 Grafana定制化难度较低
模上限为 10000 个节点    支持更大的集群规模,速度也更快
适合监控物理机环境适合云环境的监控
监控数据存储在关系型数据库内监控数据存储在基于时间序列的数据库内
安装简单安装相对复杂
图形化界面比较成熟界面相对较弱

——Zabbix组件

服务端组件:

  • zabbix server(端口10051):zabbix服务端进程,用于接收代理端发来的监控指标数据,配置和管理zabbix应用程序,也是监控系统的告警中心(通过监控项告警触发配置实现)
  • zabbix database:持久化存储配置信息和监控指标数据(支持mysql postgresql oracle db2 tsdb等)
  • zabbix web:用于zabbix服务端配置管理界面和监控数据的UI界面的展示(支持LAMP/LNMP)

客户端组件:

  • zabbix agent(端口10050):部署在被监控的主机上,采集监控指标数据,并发送给zabbix server(数据采集支持主动模式和被动模式)

主动模式:zabbix agent 主动向 zabbix server 请求监控项列表,并返回监控项所需要采集的监控指标数据给 zabbix server
被动模式:zabbix agent 被动接收 zabbix server 请求的监控指令,zabbix agent 再返回监控项所需要的监控指标数据给 zabbix server

  • zabbix java gateway:用于获取从通过在JAVA应用暴露的JXM远程端口采集的监控指标数据
  • zabbix proxy:zabbix代理端进程,部署在zabbix server与zabbix agent之间,代替zabbix server接收zabbix agent发来的监控指标数据并存储在本地数据库,汇总后再转发给zabbix server, 从而可以分担zabbix server的集中式负载压力
     

——Zabbix工作原理

zabbix agent 等代理端会定期的采集被监控主机的指标数据并发送给 zabbix server,zabbix server 接收数据后会存储带 zabbix database 中,管理员可基于 zabbix web 在浏览器页面查看监控数据的图像。

——Zabbix 6.0 的新特性

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

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

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

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

——Zabbix 6.0 功能组件

Zabbix Server

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

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

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

数据库

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

Web 界面

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

Zabbix Agent

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

Zabbix Proxy

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

Java Gateway

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

——Zabbix 6.0 部署

1.关闭 selinux 与防火墙

[root@localhost ~]# systemctl disable --now firewalld
[root@localhost ~]# setenforce 0
setenforce: SELinux is disabled
[root@localhost ~]# hostnamectl set-hostname zbx-server
[root@localhost ~]# bash
[root@zbx-server ~]# vim /etc/selinux/config

2.部署 Nginx + PHP 环境并测试

1)安装 nginx
[root@zbx-server ~]# mount /dev/sr0 /mnt
[root@zbx-server ~]# 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
[root@zbx-server ~]# yum install -y nginx
2)安装 php
[root@zbx-server ~]# ls
anaconda-ks.cfg  php.tar.gz  模板  图片  下载  桌面
original-ks.cfg  公共        视频  文档  音乐
[root@zbx-server ~]# mv php.tar.gz /opt/
[root@zbx-server ~]# cd /opt/
[root@zbx-server opt]# ls
apache-tomcat-8.5.16.tar.gz  jdk-8u391-linux-x64.tar.gz  rh
jdk-8u391-linux-x64.rpm      php.tar.gz
[root@zbx-server opt]# tar xf php.tar.gz 
[root@zbx-server opt]# createrepo /opt/
Spawning worker 0 with 9 pkgs
Spawning worker 1 with 8 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@zbx-server opt]# cd /etc/yum.repos.d/
[root@zbx-server yum.repos.d]# vim local.repo 
[root@zbx-server yum.repos.d]# yum clean all && yum makecache
3)修改 nginx 配置
[root@zbx-server ~]# cd /etc/nginx/conf.d/
[root@zbx-server conf.d]# ls
default.conf
[root@zbx-server conf.d]# vim default.conf 

4)修改 php 配置
[root@zbx-server conf.d]# cd /etc/php-fpm.d/
[root@zbx-server php-fpm.d]# ls
www.conf
[root@zbx-server php-fpm.d]# vim www.conf 

[root@zbx-server php-fpm.d]# vim /etc/php.ini
修改内容如下:
max_execution_time = 300		# 368行
max_input_time = 600			# 378行
post_max_size = 80M				# 656行
date.timezone = Asia/Shanghai	# 877行
5)创建目录和测试文件
[root@zbx-server php-fpm.d]# mkdir -p /var/www/zbx
[root@zbx-server php-fpm.d]# vim /var/www/zbx/index.php

6)启动服务
[root@zbx-server php-fpm.d]# systemctl enable --now 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.
7)测试访问(hosts解析)

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

1)配置 Mariadb yum源
[root@zbx-server yum.repos.d]# cat > /etc/yum.repos.d/repo.bak/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

[root@zbx-server yum.repos.d]# ls
local.repo  repo.bak
[root@zbx-server yum.repos.d]# cd repo.bak/
[root@zbx-server repo.bak]# mv * /etc/yum.repos.d/
[root@zbx-server repo.bak]# cd ..
[root@zbx-server yum.repos.d]# ls
CentOS-Base.repo       CentOS-Media.repo          epel.repo          nginx.repo
CentOS-CR.repo         CentOS-Sources.repo        epel-testing.repo  repo.bak
CentOS-Debuginfo.repo  CentOS-Vault.repo          local.repo
CentOS-fasttrack.repo  CentOS-x86_64-kernel.repo  mariadb.repo
[root@zbx-server yum.repos.d]# yum install -y mariadb-server mariadb

[root@zbx-server yum.repos.d]# systemctl enable --now mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
2)初始化数据库
[root@zbx-server yum.repos.d]# mysql_secure_installation    #分别输入 回车 -> n -> Y (设置root密码,如abc123) -> 后面一路 Y

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] n
 ... skipping.

You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] Y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!
[root@zbx-server yum.repos.d]# 
[root@zbx-server yum.repos.d]# mysql -u root -pabc123
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 10.5.25-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 
3)创建数据库并指定字符集
MariaDB [(none)]> CREATE DATABASE zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.000 sec)

MariaDB [(none)]> GRANT all ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
Query OK, 0 rows affected (0.000 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> 
4)向数据库导入 zabbix 数据

上传源码包 zabbix-6.0.31.tar.gz 到 /opt 目录

[root@zbx-server opt]# tar xf zabbix-6.0.31.tar.gz 
[root@zbx-server opt]# ls /opt/zabbix-6.0.31/database/mysql
data.sql    history_pk_prepare.sql  Makefile.am  schema.sql
double.sql  images.sql              Makefile.in

5)按照顺利导入数据库

[root@zbx-server opt]# cd /opt/zabbix-6.0.31/database/mysql/
[root@zbx-server mysql]# mysql -uroot -pabc123 zabbix < schema.sql
[root@zbx-server mysql]# mysql -uroot -pabc123 zabbix < images.sql
[root@zbx-server mysql]# mysql -uroot -pabc123 zabbix < data.sql
[root@zbx-server mysql]# mysql -uroot -pabc123 zabbix < double.sql
[root@zbx-server mysql]# mysql -uroot -pabc123 zabbix < history_pk_prepare.sql
[root@zbx-server mysql]# 

4.编译安装 zabbix Server 服务端

1)安装依赖包
[root@zbx-server mysql]# 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
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.ustc.edu.cn
 * epel: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
软件包 pcre-devel-8.32-17.el7.x86_64 已安装并且是最新版本
软件包 gcc-4.8.5-44.el7.x86_64 已安装并且是最新版本
软件包 gcc-c++-4.8.5-44.el7.x86_64 已安装并且是最新版本
软件包 1:make-3.82-24.el7.x86_64 已安装并且是最新版本
正在解决依赖关系
--> 正在检查事务
.......

 2)创建 zabbix 用户
[root@zbx-server mysql]# useradd -s /sbin/nologin -M zabbix
[root@zbx-server mysql]# 
3)编译安装
[root@zbx-server mysql]# cd /opt/zabbix-6.0.31/
[root@zbx-server zabbix-6.0.31]# ./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@zbx-server zabbix-6.0.31]#make install
4)检查版本
[root@zbx-server zabbix-6.0.31]# zabbix_server --version
zabbix_server (Zabbix) 6.0.31
Revision b6d93755a1b 17 June 2024, compilation time: Jul  3 2024 14:35:34

Copyright (C) 2024 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

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

[root@zbx-server zabbix-6.0.31]# vim /etc/zabbix/zabbix_server.conf
......
LogFile=/var/log/zabbix_server.log		# 38行,指定 zabbix 日志路径
DBPassword=zabbix					# 123行,指定 zabbix 数据库的密码

6)准备 systemctl 服务管理文件

[root@zbx-server zabbix-6.0.31]# 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
[root@zbx-server zabbix-6.0.31]# systemctl daemon-reload
[root@zbx-server zabbix-6.0.31]# touch /var/log/zabbix_server.log
[root@zbx-server zabbix-6.0.31]# chown zabbix.zabbix /var/log/zabbix_server.log
[root@zbx-server zabbix-6.0.31]# systemctl enable --now zabbix-server
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.
[root@zbx-server zabbix-6.0.31]# netstat -lntp | grep 10051
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      4924/zabbix_server  

5.部署 Web 前端,进行访问

[root@zbx-server zabbix-6.0.31]# cp -r /opt/zabbix-6.0.31/ui/* /var/www/zbx
cp:是否覆盖"/var/www/zbx/index.php"? y
[root@zbx-server zabbix-6.0.31]# chown -R nginx.nginx /var/www/zbx

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

[root@zbx-server zabbix-6.0.31]# rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
获取https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
警告:/var/tmp/rpm-tmp.zleP5p: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:zabbix-release-6.0-4.el7         ################################# [100%]
[root@zbx-server zabbix-6.0.31]# sed -i 's#https://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
[root@zbx-server zabbix-6.0.31]# yum install -y zabbix-agent2
[root@zbx-server zabbix-6.0.31]# systemctl enable --now zabbix-agent2
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent2.service to /usr/lib/systemd/system/zabbix-agent2.service.
[root@zbx-server zabbix-6.0.31]# netstat -lntp | grep 10050
tcp6       0      0 :::10050                :::*                    LISTEN      5642/zabbix_agent2  

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

[root@zbx-server zabbix-6.0.31]# yum install -y wqy-microhei-fonts
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.nju.edu.cn
 * epel: epel.01link.hk
 * extras: mirrors.bfsu.edu.cn
 * updates: mirrors.bfsu.edu.cn
软件包 wqy-microhei-fonts-0.2.0-0.12.beta.el7.noarch 已安装并且是最新版本
无须任何处理
[root@zbx-server zabbix-6.0.31]# \cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /var/www/zbx/assets/fonts/DejaVuSans.ttf

刷新浏览器页面

——添加 zabbix 客户端主机

1.初始化关闭防火墙

[root@localhost ~]# systemctl disable --now firewalld
[root@localhost ~]# setenforce 0
setenforce: SELinux is disabled
[root@localhost ~]# hostnamectl set-hostname zbx-agent01
[root@localhost ~]# bash
[root@zbx-agent01 ~]# vim /etc/selinux/config 

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

[root@zbx-agent01 ~]# cat > /etc/hosts << EOF
> 192.168.80.80 zbx-server
> 192.168.80.70 zbx-agent01
> EOF

3.设置 zabbix 的下载源,安装 zabbix-agent2

[root@zbx-agent01 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
--2024-07-03 15:56:32--  http://mirrors.aliyun.com/repo/Centos-7.repo
正在解析主机 mirrors.aliyun.com (mirrors.aliyun.com)... 117.23.49.219, 117.23.49.220, 117.23.49.221, ...
正在连接 mirrors.aliyun.com (mirrors.aliyun.com)|117.23.49.219|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:2523 (2.5K) [application/octet-stream]
正在保存至: “/etc/yum.repos.d/CentOS-Base.repo”

100%[==============================================>] 2,523       --.-K/s 用时 0s      

2024-07-03 15:56:32 (565 MB/s) - 已保存 “/etc/yum.repos.d/CentOS-Base.repo” [2523/2523])

[root@zbx-agent01 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
获取https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
警告:/var/tmp/rpm-tmp.6hPDNl: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:zabbix-release-6.0-4.el7         ################################# [100%]
[root@zbx-agent01 ~]# yum install zabbix-agent2 zabbix-agent2-plugin-*

4.修改 agent2 配置文件

[root@zbx-agent01 ~]# vim /etc/zabbix/zabbix_agent2.conf
......
Server=192.168.80.80			#80行,指定 zabbix 服务端的 IP 地址
ServerActive=192.168.80.80		#133行,指定 zabbix 服务端的 IP 地址
Hostname=zbx-agent01			#144行,指定当前 zabbix 客户端的主机名

5.启动 zabbix-agent2

[root@zbx-agent01 ~]# systemctl start zabbix-agent2
[root@zbx-agent01 ~]# 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@zbx-agent01 ~]# netstat -natp | grep zabbix
tcp6       0      0 :::10050                :::*                    LISTEN      2661/zabbix_agent2  

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

[root@zbx-server zabbix-6.0.31]# yum install -y wqy-microhei-fonts
[root@zbx-server zabbix-6.0.31]# zabbix_get -s '192.168.80.70' -p 10050 -k 'agent.ping'
1
[root@zbx-server zabbix-6.0.31]# zabbix_get -s '192.168.80.70' -p 10050 -k 'system.hostname'
zbx-agent01
常用的键值
agent.ping服务端与客户端是否连通,返回1表示可达,返回非表示不可达
system.hostname系统主机名
agent.hostname客户端主机名
net.if.in[if,<mode>]网络接口进入的流量统计,if表示网卡名称,带<>的参数表示可以省略
net.if.out[if,<mode>]网络接口流出的流量统计
proc.num[<name>,<user>,<state>,<cmdline>,<zone>]进程数
net.tcp.port[<ip>,port]检查是否能建立tcp连接到指定端口,返回0表示不能连接,返回1表示可以连接

7.在 Web 页面中添加 agent 主机

——自定义监控内容

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

1.客户端创建自定义 key

1)明确需要执行的 linux 命令
[root@zbx-agent01 ~]# who | wc -l
1
2)创建 zabbix 的监控项配置文件,用于自定义 key
[root@zbx-agent01 ~]# vim /etc/zabbix/zabbix_agent2.conf
[root@zbx-agent01 ~]# cd /etc/zabbix/zabbix_agent2.d/
[root@zbx-agent01 zabbix_agent2.d]# vim UserParameter_login.conf

UserParameter=login.user,who|wc -l

[root@zbx-agent01 zabbix_agent2.d]# systemctl restart zabbix-agent2
3)在服务端验证新建的监控项
[root@zbx-server ~]# zabbix_get -s '192.168.80.70' -p 10050 -k 'login.user'
1

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

1)创建模板

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

2)创建监控项

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

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

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

4)创建图形

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

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

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


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

6)设置邮件报警

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

点击左边菜单栏【用户设置】-->【配置】-->【报警媒介】,点击【添加】
【类型】选择 qq_Email
【收件人】设置成 xxxxxxxx@wo.cn
【当启用时】设置成 1-7,00:00-24:00
【如果存在严重性则使用】勾选需要的严重性
点击 【添加】
再点击 【更新】

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

 ——总结

1.自定义监控模板操作步骤

  1. 先明确获取监控指标数据的命令或脚本
  2. 在被监控主机的配置文件目录中(/etc/zabbix/zabbix_agent2.d/)创建以 .conf 为结尾的监控项配置文件,在配置文件文件里自定义监控项的键值,再重载zabbix-agent2服务
  3. 在zabbix服务端Web管理页面中依次添加 模板 - 监控项 - 触发器 - 图形
  4. 将监控模板和被监控主机相关联

2.邮件报警通知如何配置

  1. 在zabbix服务端Web管理页面【管理】-【媒介】中创建 报警媒介类型 和 消息模板
  2. 在【用户设置】-【配置】-【报警媒介】中设置 邮件接收人 启用时间 严重级别
  3. 在【配置】-【动作】-【触发器动作】创建 动作,设置 动作条件 操作细节
  4. 测试验证

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

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

相关文章

Kubernetes云原生存储解决方案openebs部署实践-4.0.1版本(helm部署)

Kubernetes云原生存储解决方案openebs部署实践-4.0.1版本&#xff08;helm部署&#xff09; 简介 OpenEBS 是一种开源云原生存储解决方案。OpenEBS 可以将 Kubernetes 工作节点可用的任何存储转化为本地或复制的 Kubernetes 持久卷。OpenEBS 帮助应用和平台团队轻松地部署需要…

FlinkCDC-3.1.1 DataStream Source

问题&#xff1a; Caused by: java.lang.ClassNotFoundException: org.apache.flink.table.catalog.ObjectPath 解决&#xff1a; 在poml文件中&#xff0c;导入的flink-table依赖把“ <scope>”去掉 <properties><maven.compiler.source>8</maven.compi…

ffmpeg将多个yuv文件编码为MP4视频文件

一、编码方案 在视频录制时&#xff0c;每一帧保存为一个yuv文件&#xff0c;便于纠错和修改。在编码为MP4文件时&#xff0c;我的方案是将所有yuv文件先转码为单个MP4文件&#xff0c;然后使用ffmpeg的concat功能拼接为完整的视频。 二、shell脚本 #!/bin/bash# 检查参数数量…

自己训练 PaddleOCR

打标工具 https://github.com/Evezerest/PPOCRLabel 感谢这位热心网友提供的标注工具&#xff0c;操作非常的方便 只是这个工具有个小坑get_rotate_crop_image&#xff08;&#xff09; 我的标注数据导出时&#xff0c;很多数据变成倒的 hmmmm, 你管我~ if dst_img_height …

Lesson 47 A cup of coffee

Lesson 47 A cup of coffee 词汇 like v. 喜欢&#xff0c;想要 用法&#xff1a;like 物品 / 人 喜欢……    like 动词ing 喜欢做……&#xff08;习惯性&#xff09;    like to 动词原形 喜欢做……&#xff08;一次性&#xff09; 例句&#xff1a;我喜欢小狗…

【UE5.1】Chaos物理系统基础——03 炸开几何体集

目录 步骤 一、通过径向向量将几何体集炸开 二、优化炸开效果——让破裂的碎块自然下落 三、优化炸开效果——让碎块旋转起来 四、优化炸开效果——让碎块旋转的越来越慢 步骤 一、通过径向向量将几何体集炸开 1. 打开上一篇中&#xff08;【UE5.1】Chaos物理系统基础—…

第3章.中央服务器的物联网模式--规则引擎

规则引擎 规则引擎本质上是物联网事件和需要与这些事件相关联的动作之间的映射。在物联网环境中&#xff0c;事件通常使用传感器生成&#xff0c;所需的动作由执行器采取。本书中用于该图案的符号如下图所示&#xff1a; 图3.6–“规则引擎”模式的符号 一个有趣的类比是将规则…

Vue2前端实现数据可视化大屏全局自适应 Vue实现所有页面自适应 Vue实现自适应所有屏幕

Vue自适应所有屏幕大小,目前页面自适应,尤其是数据可视化大屏的自适应更是案例很多 今天就记录一下使用Vue全局自适应各种屏幕大小的功能 在Vue.js中创建一个数据大屏,并使其能够自适应不同屏幕大小,通常涉及到布局的响应式设计、CSS媒体查询、以及利用Vue的事件系统来处理…

stm8玩耍日记1

写在前面&#xff0c;如题所示&#xff0c;这是一个stm8L051F3的玩耍记录。 环境使用的是IAR for stm8&#xff0c;使用stlink v2作为调试下载器&#xff0c;跟着st中文论坛的一个大佬的教程学习的。 整体配置下来&#xff0c;点亮了led&#xff0c;感觉和stm32的开发差不多&…

电脑鼠标一直转圈圈怎么处理?对症下药,分享6种方法

在使用电脑的过程中&#xff0c;鼠标一直转圈圈是一个常见且令人困扰的问题。这种情况通常意味着系统正在处理某些任务&#xff0c;但如果持续时间过长&#xff0c;可能表明系统存在性能问题或错误。本文将详细探讨鼠标一直转圈圈的常见原因及其解决方法。 摘要 电脑鼠标一直转…

解决Python爬虫开发中的数据输出问题:确保正确生成CSV文件

引言 在大数据时代&#xff0c;爬虫技术成为获取和分析网络数据的重要工具。然而&#xff0c;许多开发者在使用Python编写爬虫时&#xff0c;常常遇到数据输出问题&#xff0c;尤其是在生成CSV文件时出错。本文将详细介绍如何解决这些问题&#xff0c;并提供使用代理IP和多线程…

2024.7.4作业

1.梳理笔记(原创) 2. 终端输入一个日期&#xff0c;判断是这一年的第几天 scanf("%d-%d-%d",&y,&m,&d); 闰年2月29天&#xff0c;平年2月28天 #include <stdio.h> int main(int argc,const char *argv[]) { int y0,m0,d0,sum0,i0; …

打卡第2天----数组双指针,滑动窗口

今天是参与训练营第二天&#xff0c;这几道题我都看懂了&#xff0c;自己也能写出来了&#xff0c;实现思路很重要&#xff0c;万事开头难&#xff0c;希望我可以坚持下去。希望最后的结果是量变带来质变。 一、理解双指针思想 leetcode编号&#xff1a;977 不止是在卡尔这里…

FPGA学习笔记(7)——Vivado Simulator仿真软件的使用

1 仿真概述 Simulator仿真虽然不需要使用硬件资源&#xff0c;但是需要编写激励文件&#xff0c;也就是testbench代码。 仿真是设计输入后的第一个步骤&#xff0c;也是实现后的最后一个步骤&#xff0c;可以分为功能仿真&#xff08;RTL仿真&#xff09;和时序仿真。 功能仿…

【秋招突围】2024届秋招笔试-科大讯飞笔试题-04-三语言题解(Java/Cpp/Python)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系计划跟新各公司春秋招的笔试题 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; &#x1f4e7; 清隆这边…

数字化工厂EasyCVR视频监控智能解决方案:引领工业4.0时代新趋势

随着工业4.0的深入发展和数字化转型的浪潮&#xff0c;数字化工厂视频监控智能解决方案成为了现代工业生产中不可或缺的一部分。这一解决方案集成了先进的视频监控技术、人工智能&#xff08;AI&#xff09;和大数据分析&#xff0c;为工厂提供了更高效、更安全、更智能的监控和…

蓝牙模块的使用01,OOOLMF蓝牙模块HC05调试使用01AT设置从机,手机用软件对接

参考资料 https://blog.csdn.net/xia3976/article/details/122199162 1、实验目的 验证蓝牙模块是不是好的&#xff0c;能不能AT指令改变查询配置&#xff1b; 验证设置从机模式&#xff0c;成功之后&#xff0c;用手机现成的蓝牙软件&#xff08;实验室大群里面有&#xff09…

【Python新手入门指南】pip安装失败、下载慢、pip换源

文章目录 前言一、换源的基本命令是什么&#xff1f;二、如何从官方来换源总结 前言 对于Python新手而言&#xff0c;使用pip安装包就会成为一个问题&#xff0c;因为国内下载慢&#xff0c;甚至可能下载不成功&#xff0c;课程要安装库&#xff0c;但是连库都安装不成功&…

mysql定时备份数据库

文章目录 核心目标思路具体方法一、编写脚本二、修改文件属性三、找一个mysqldump文件四、把.sh放到定时器里 其它&#xff1a;windows的脚本 核心目标 解决数据库定时备份的工作。centos环境。 思路 用centos的crontab定时执行脚本。 具体方法 一、编写脚本 编写backup_…