构建高效可靠的Zabbix监控系统

前言

监控系统对于确保系统稳定性、性能优化以及故障排除至关重要。zabbix 作为一款功能强大且灵活的监控解决方案,可以通过一个友好的界面进行浏览整个网站所有服务器状态、在 web 前端方便查看数据以及可以回溯事故时的问题和告警。

目录

一、zabbix 监控介绍

1. 定义

2. 构成

3. 主要特点

4. 主要功能

5. 运行机制

6. 监控对象(应用场景)

7. 监控原理

8. 监控模式

9. zabbix 监控常见程序

9.1 zabbix_server

9.2 zabbix_agent

9.3 zabbix_proxy

9.4 zabbix_get

9.5 zabbix_sender

9.6 zabbix_java_geteway

10. 监控的架构

10.1 server-client

10.2 server-proxy-client

10.3 master-node-client

二、部署 zabbix

1. 部署 zabbix 服务端

1.1 获取并更换 zabbix 的下载源

1.2 安装 zabbix 监控系统的服务器和代理组件及 SCL

1.3 安装 zabbix 前端环境到 scl 环境下

1.4 安装 zabbix 所需的数据库 

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

1.6 修改 zabbix 的 php 配置文件 

1.7 启动 zabbix 相关服务,浏览器访问 

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

2. 部署 zabbix 客户端 

2.1 时间同步

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

2.3 修改 agent2 配置文件

2.4 启动 zabbix-agent2 

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


一、zabbix 监控介绍

1. 定义

zabbix 是一个基于 web 界面的提供分布式系统监控以及网络监视功能的企业级的开源解决方案;保证服务器系统的安全运营,并提供灵活的通知机制以让系统管理员快速定位、解决问题。

2. 构成

zabbix 由两部分构成,zabbix server 与可选组件 zabbix agent。通过 C/S 模式采集,通过 B/S 模式(网页端和服务端)在 web 端展示和配置(提供可视化界面,反馈给运维人员)。

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

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

3. 主要特点

① 安装简单(yum),学习成本低

② 支持多种语言(包括中文)

③ 免费开源

④ 自动发现服务器与网络设备

⑤ 分布式监控以及 web 集群中的管理功能

⑥ 可以通过邮件、短信、语言、微信、钉钉等通知

4. 主要功能

① CPU负载

  • 监控 CPU 负载对于了解系统的处理能力至关重要,高 CPU 负载可能表明潜在的性能问题或资源限制

② 内存使用

  • 跟踪内存使用有助于识别消耗大量内存的进程,并确保系统具有足够的可用内存以实现平稳运行

③ 磁盘使用率

  • 监控磁盘使用是预测存储容量需求、防止因磁盘已满而导致数据丢失以及识别与磁盘 I/O 相关的潜在性能瓶颈的关键

④ 网络状态

  • 监控网络状态涉及跟踪带宽使用、数据包丢失、延迟和整体网络健康状况,这对于确保顺畅通信并识别潜在的网络问题至关重要

⑤ 端口监视

  • 端口监视涉及跟踪网络端口的状态和活动,这对于安全性、网络故障排除和识别潜在漏洞至关重要

⑥ 日志监视

  • 日志监视涉及分析系统和应用程序日志以识别错误、安全威胁和操作问题,从而实现积极维护和问题解决

⑦ 插件开发自定义

  • 自定义插件开发允许扩展监控能力以跟踪特定指标或与特定系统集成,根据特定要求提供量身定制的见解

⑧ 业务监控

  • 业务监控涉及跟踪与业务流程、应用程序或服务相关的关键绩效指标(KPI),确保它们达到运营和性能目标

5. 运行机制

数据流向:zabbix-agent(数据采集)——> zabbix-server(数据分析/告警)——> 数据库(存储)——> zabbix-web(数据展示)

① zabbix agent 部署在监控目标主机上,负责收集系统和服务的各种指标数据,如 CPU 使用率、内存使用情况、网络流量等,并将这些数据发送到 zabbix server

② zabbix server 接收来自 zabbix agent 的数据,并进行数据分析、存储和处理;对接收到的数据进行分析,并在必要时触发告警通知相关用户或用户组

③ zabbix server 将处理后的数据存储在数据库中,以便长期存档和后续分析

④ zabbix web 是用户界面,通过该界面用户可以查看已存储的监控数据、配置监控项、创建报表以及管理告警等

6. 监控对象(应用场景)

① 硬件监控:如 CPU 使用率、内存利用率、磁盘空间、温度传感器等。

② 系统监控:可以监控操作系统的各项参数,包括进程状态、负载情况、文件系统状态等。

③ 网络监控:监控网络设备的状态、流量、带宽利用率等,并对网络连通性进行检测。

④ java 监控:对于基于 Java 的应用程序,Zabbix 可以监控 JVM 的运行状态、内存使用情况、垃圾回收等。

⑤ 应用服务器监控:监控各种应用服务器,如 Tomcat、Nginx、Apache等。

⑥ 数据库监控:监控数据库服务器的各种指标,如查询响应时间、连接数、缓冲池利用率等。

⑦ url 监控:监控 Web 页面的可用性和响应时间。

⑧ vmware 监控:监控 VMware 虚拟化环境中的虚拟机和宿主机的各种性能指标,包括 CPU 利用率、内存使用情况、虚拟磁盘性能等。

7. 监控原理

① zabbix agent 安装在被监控的主机上,zabbix agent 负责定期收集客户端本地各项数据,并发送至 zabbix server 端

② abbix server 收到数据后,将数据存储到数据库中,用户基于 Zabbix WEB 可以看到数据在前端展现图像;zabbix server 可以使用代理程序主动轮询监控目标(被动监控,即 server 向 agent 发起连接),也可以直接从被监控设备上获取数据(主动监控 agent 向 server发起连接)

③ 当 zabbix 监控某个具体的项目, 该项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(shell 命令、reboot、restart、install 等)

8. 监控模式

① 被动监控:server 端向 agent 端发起连接,根据情况可选,不适用被监控主机过多的情况

② 主动监控:agent 端向 server 端发起连接,可以减轻服务器压力,适用被监控主机过多的情况

9. zabbix 监控常见程序

zabbix 监控部署在系统中,包含常见的五个程序: zabbix_server、zabbix_agent、zabbix_proxy、zabbix_get、zabbix_sender;在 2.0 版本后新增了 zabbix_java_geteway。

9.1 zabbix_server

zabbix 服务端的守护进程,这是Zabbix的核心组件,负责处理数据收集、存储、触发器处理、报警等功能。

9.2 zabbix_agent

zabbix 客户端的守护进程,安装在被监控设备上的一个小型程序,用于主动采集该设备的性能数据,并将其发送给zabbix_server。

9.3 zabbix_proxy

分布式代理守护进程,通常 agent 大于500台使用(不过生产环境中300台左右就会出现卡顿现象);可选的中间层,用于分担 zabbix_server 的压力。

9.4 zabbix_get

数据接收命令行工具,通常在 server 和 proxy 执行,用于从被监控设备上主动获取指定的监控项数值。

9.5 zabbix_sender

也是一个命令行工具,用于向 zabbix_server 发送自定义的监控数据,由用户发给 server 或 proxy。

9.6 zabbix_java_geteway

zabbix 2.0 版本后新增的组件,用于监控 Java 应用程序的性能数据。

10. 监控的架构

10.1 server-client

最简单的架构,监控机器和被监控机器之间不经过任何处理,直接由 server-client 之间数据交换;适用于比较简单的网络,尽量在局域网内、设备较少的监控环境。

10.2 server-proxy-client

proxy 是沟通的桥梁(代理);本身有前端,并不存放数据,将 agent 发来的数据暂时存放,提交给 server。适用于跨机房、跨网络的中型架构,一般大于500台以上才使用。

10.3 master-node-client

master-node-client 该架构是 zabbix 最复杂的监控架构,适用于跨网络跨机房设备多的大型环境。每个 node 同时接一个 sever 端,node下面可以接 proxy 端,也可以直接连接 client,node 有自己的配置文件和数据库,其要做的是将配置信息和监控数据向 master 进行数据同步,master 故障损坏对 node 其下架构的完整性无任何影响。

二、部署 zabbix

环境准备:

节点IP安装软件操作系统
zabbix 服务端192.168.190.105

zabbix-server-mysql

zabbix-agent

zabbix-web-mysql-scl

zabbix-apache-conf-scl

mariadb-server

mariadb

wqy-microhei-fonts

centos 7.4
zabbix 客户端192.168.190.106

zabbix-agent2

zabbix-get

centos 7.4
systemctl stop firewalld.service 
setenforce 0
hostnamectl set-hostname zbx-server  # 分别修改节点主机名
hostnamectl set-hostname zbx-client

1. 部署 zabbix 服务端

1.1 获取并更换 zabbix 的下载源

[root@zbx-server ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm 
[root@zbx-server ~]# cd /etc/yum.repos.d
[root@zbx-server yum.repos.d]# sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repo
[root@zbx-server yum.repos.d]# yum clean all && yum makecache

1.2 安装 zabbix 监控系统的服务器和代理组件及 SCL

[root@zbx-server ~]# yum install -y zabbix-server-mysql zabbix-agen
# zabbix-server-mysql: 这是Zabbix服务器的MySQL版本的软件包,安装了Zabbix服务器组件,以便Zabbix监控系统能够运行并通过MySQL保存数据。
# zabbix-agent: 这是Zabbix代理软件包,安装了Zabbix代理组件,用于在被监控设备上主动提供监控数据给Zabbix服务器。安装SCL(Software Collections),便于后续安装高版本的 php,默认 yum 安装的 php 版本为 5.4,版本过低,zabbix 5.0 版本对 php 版本最低要 7.2.0 版本。SCL 可以使得在同一台机器上使用多个版本的软件,而又不会影响整个系统的依赖环境。软件包会安装在 /opt/rh 目录下。
[root@zbx-server ~]# yum install -y centos-release-scl

1.3 安装 zabbix 前端环境到 scl 环境下

[root@zbx-server ~]# vim /etc/yum.repos.d/zabbix.repo
……
[zabbix-frontend]
……
enabled=1
……
# 修改 zabbix-front 前端源[root@zbx-server ~]# yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl
# 在CentOS上安装 Zabbix Web 界面和 Apache 配置的软件包
# zabbix-web-mysql-scl:这个软件包提供了 Zabbix 的 Web 界面部分,并且使用了 MySQL 数据库作为后端存储
# zabbix-apache-conf-scl:这个软件包提供了与 Apache 服务器相关的 Zabbix 配置文件,用于与 Apache 服务器协同工作

1.4 安装 zabbix 所需的数据库 

[root@zbx-server ~]# yum install -y mariadb-server mariadb
# 安装 MariaDB 数据库服务器及其相关组件
[root@zbx-server ~]# systemctl enable --now mariadb
# 启用并立即启动MariaDB数据库服务器
[root@zbx-server ~]# mysql_secure_installation
# 回车、y,输入密码、确认密码,一直y
[root@zbx-server ~]# mysql -u root -p'123123'  # 登录数据库
MariaDB [(none)]> CREATE DATABASE zabbix character set utf8 collate utf8_bin;
# 在 MySQL 中创建了一个名为 zabbix 的数据库,并且使用了 UTF-8 的字符集以及校对规则
MariaDB [(none)]> GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
# 为 zabbix 数据库创建了一个用户名为 zabbix 的用户,并且授予了该用户对 zabbix 数据库的全部权限,密码为 zabbix
MariaDB [(none)]> flush privileges;
# 刷新权限,使修改后的权限立即生效
[root@zbx-server ~]# rpm -ql zabbix-server-mysql  # 查询 sql 文件的位置
/usr/share/doc/zabbix-server-mysql-5.0.42
[root@zbx-server ~]# zcat /usr/share/doc/zabbix-server-mysql-5.0.42/create.sql.gz | mysql -uroot -p123123 zabbix
# 将 Zabbix 监控系统所需的数据库结构导入到名为 zabbix 的数据库中

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

[root@zbx-server ~]# vim /etc/zabbix/zabbix_server.conf
124 DBPassword=zabbix   # 指定 zabbix 数据库的密码

1.6 修改 zabbix 的 php 配置文件 

[root@zbx-server ~]# vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf25 php_value[date.timezone] = Asia/Shanghai  # ;取消注释,修改时区东八区

1.7 启动 zabbix 相关服务,浏览器访问 

[root@zbx-server ~]# systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
[root@zbx-server ~]# systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
# rh-php72-php-fpm:这是PHP-FPM(FastCGI Process Manager)的服务名称。在这个特定的情景中,rh-php72-php-fpm表示Red Hat 软件集合(Software Collections Library)中包含的 PHP 版本 7.2 的 PHP-FPM 服务。http://192.168.190.105/zabbix
# 点击下一步,设置数据库的密码 zabbix
# 安装完成后,默认的登录账号和密码为:Admin/zabbix
# 设置文件界面:点击左边菜单栏的【User settings】,【Language】选择 Chinese(zh_CN),再点击 Update 更新。

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

[root@zbx-server ~]# yum install -y wqy-microhei-fonts
[root@zbx-server ~]# \cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.tt
# 将一种字体文件复制或替换为另一种字体文件

2. 部署 zabbix 客户端 

zabbix 5.0 版本采用 golang 语言开发的新版本客户端 agent2;zabbix 服务端 zabbix_server 默认使用 10051 端口,客户端 zabbix_agent2 默认使用 10050 端口。

2.1 时间同步

yum install -y ntpdate
ntpdate -u ntp.aliyun.com
# 服务端和客户端都配置 ntp 时间同步[root@zbx-client ~]# mv /etc/localtime{,.bak}
[root@zbx-client ~]# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 改变系统的时区为上海时间

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

[root@zbx-client ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm 
[root@zbx-client ~]# cd /etc/yum.repos.d
[root@zbx-client yum.repos.d]# sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
[root@zbx-client yum.repos.d]# yum install -y zabbix-agent2

2.3 修改 agent2 配置文件

[root@zbx-client ~]# vim /etc/zabbix/zabbix_agent2.conf80 Server=192.168.190.105        # 指定 zabbix 服务端的 IP 地址125 ServerActive=192.168.190.105  # 指定 zabbix 服务端的 IP 地址136 Hostname=zbx-agent01          # 指定当前 zabbix 客户端的主机名

2.4 启动 zabbix-agent2 

[root@zbx-client ~]# systemctl start enable --now zabbix-agent2
[root@zbx-client ~]# netstat -natp | grep zabbix
tcp6       0      0 :::10050                :::*                    LISTEN      36744/zabbix_agent2 

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

[root@zbx-server ~]# yum install -y zabbix-get
# 安装 zabbix 主动获取数据的命令
[root@zbx-server ~]# zabbix_get -s '192.168.190.106' -p 10050 -k 'agent.ping'
1
[root@zbx-server ~]# zabbix_get -s '192.168.190.106' -p 10050 -k 'system.hostname'
zbx-client

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

electron打包编译国产统信uos系统 arm架构 x86架构 linux mac等环境

electron v21版本以上统信UOS会提示gbm_bo_map错误,可使用v8~v21版本的electron 打包linux包需要再linux系统下运行编译,arch可以指定架构 如果要在统信uos上运行,需要打包成deb格式,在target中修改成deb 或者用第三方软件把app…

建立时间/保持时间为负是什么情况

目录 建立时间为负保持时间为负参考 在说明建立时间和保持时间为何为负的情况下,首先可以看看建立时间Tsu和保持时间Th的由来,可参考如下两篇文章: 建立时间和保持时间理解_为什么要满足建立时间和保持时间-CSDN博客 ic基础|时序篇&#xff…

基于Springboot的旅游管理系统

基于SpringbootVue的旅游管理系统的设计与实现 开发语言:Java数据库:MySQL技术:SpringbootMybatis工具:IDEA、Maven、Navicat 系统展示 用户登录 首页展示 旅游方案展示 旅游资讯 后台管理员登录 后台管理页面首页 用户管理 …

全流程HEC-RAS 1D/2D水动力与水环境模拟技术应用

水动力与水环境模型的数值模拟是实现水资源规划、环境影响分析、防洪规划以及未来气候变化下预测和分析的主要手段。然而,一方面水动力和水环境模型的使用非常复杂,理论繁复;另一方面,免费的水动力和水环境软件往往缺少重要功能&a…

MyBatis 中的动态 SQL 的相关使用方法

为什么会有动态SQL,把SQL写死不是比较方便吗?其实有很多的举例,这里我那一个常见的来说,像我们用户注册,会有必填字段和非必填字段,有些传来的参数不一样,那对应的SQL也不一样,因此&…

c++ 多文件编程

1.结构目录 声明类:用于声明方法,方便方法管理和调用; 实现类:用于实现声明的方法; 应用层:调用方法使用 写过java代码的兄弟们可以这么理解: 声明类 为service层 实现类 为serviceimpl层 应用层 为conlloter层 2.Dome 把函数声明放在头文件xxx.h中&…

前端三剑客 —— JavaScript (第七节)

目录 内容回顾 DOM编程 事件对象* 事件驱动机制 标签绑定 DOM0事件模型 DOM2事件 捕获/冒泡 事件解除 窗口事件属性(Window Event Attributes) 表单事件(Form Events) 键盘事件(Keyboard Events&#xff09…

springboot整合vosk实现简单的语音识别功能

vosk开源语音识别 Vosk是开源的语音识别工具包。Vosk支持的事情包括: 支持十九种语言 - 中文,英语,印度英语,德语,法语,西班牙语,葡萄牙语,俄语,土耳其语,越…

TCP/IP协议—TCP

TCP/IP协议—TCP TCP协议TCP通信特点TCP技术概念TCP定时器 TCP头部报文TCP连接三次握手(建立连接)四次挥手(释放连接)连接状态 TCP协议 传输控制协议(TCP,Transmission Control Protocol)是一种…

ubuntu16.04安装Eclipse C/C++

1.安装 JDK 官网源码安装 首先打开JDK官网,JDK1.8的下载网址为:https://www.oracle.com/cn/java/technologies/downloads/#java8-windows,进入到网址如下图所示: 向下滑动到 JDK1.8的下载界面,如下图所示&#xff1a…

(十)C++自制植物大战僵尸游戏设置功能实现

植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/m0EtD 游戏设置 游戏设置功能是一个允许玩家根据个人喜好和设备性能来调整游戏各项参数的重要工具。游戏设置功能是为了让玩家能够根据自己的需求和设备性能来调整游戏,以获得最佳的游戏体验。不同的游戏和平…

前端框架模板

前端框架模板 1、vue-element-admin vue-element-admin是基于element-ui 的一套后台管理系统集成方案。 **功能:**https://panjiachen.github.io/vue-element-admin-site/zh/guide/#功能 **GitHub地址:**GitHub - PanJiaChen/vue-element-admin: :t…

Linux学习之路 -- 进程篇 -- PCB介绍 -- 进程的孤儿和僵尸状态

前面介绍了进程的各种状态,下面介绍比较特殊的两种状态 -- 孤儿和僵尸(僵死)。 一、僵尸状态 我们创建进程的目的其实就是想要进程帮我们执行一些任务,当任务被执行完后,进程的使命其实就已经完成了。此时我们就需要…

【机器学习300问】69、为什么深层神经网络比浅层要好用?

要回答这个问题,首先得知道神经网络都在计算些什么东西?之前我在迁移学习的文章中稍有提到,跳转链接在下面: 为什么其他任务预训练的模型参数,可以在我这个任务上起作用?http://t.csdnimg.cn/FVAV8 …

MySQL8.0.20 下载与安装

一、下载 MySQL服务器下载安装: 官网社区版地址: https://downloads.mysql.com/archives/installer/ 二、安装 安装注意事项---成功秘诀 安装密码不要设置复杂了,千万要记住密码,比如root和mysql就很好;不要随意卸…

科技云报道:AI大模型疯长,存储扛住了吗?

科技云报道原创。 AI大模型正在倒逼数字基础设施产业加速升级。 过去一年半,AI大模型标志性的应用相继出现,从ChatGPT到Sora一次次刷新人们的认知。震撼的背后,是大模型参数指数级的增长。 这种数据暴涨的压力,快速传导到了大模…

node.js服务器静态资源处理

前言:node.js服务器动态资源处理见 http://t.csdnimg.cn/9D8WN 一、什么是node.js服务器静态资源? 静态资源服务器指的是不会被服务器的动态运行所改变或者生成的文件. 它最初在服务器运行之前是什么样子, 到服务器结束运行时, 它还是那个样子. 比如平…

【数据结构】树与二叉树、树与森林部分习题与算法设计例题

目录 【数据结构】树与二叉树部分习题与算法设计例题一、单选题二、算法设计题判断二叉树是否为完全二叉树求二叉树的最小深度 以及 二叉树树高 树与二叉树知识点文章: 【数据结构】树与二叉树(递归法先序、中序、后序、层次遍历二叉树、二叉树的建立以及求树高的方…

百货商场用户画像描绘and价值分析(下)

目录 内容概述数据说明技术点主要内容4 会员用户画像和特征字段创造4.1 构建会员用户基本特征标签4.2 会员用户词云分析 5 会员用户细分和营销方案制定5.1 会员用户的聚类分析及可视化5.2 对会员用户进行精细划分并分析不同群体带来的价值差异 内容概述 本项目内容主要是基于P…

华为欧拉系统(openEuler-22.03)安装深信服EasyConnect软件(图文详解)

欧拉镜像下载安装 iso镜像官网下载地址 选择最小化安装,标准模式 换华为镜像源 更换华为镜像站,加速下载: sed -i "s#http://repo.openeuler.org#https://mirrors.huaweicloud.com/openeuler#g" /etc/yum.repos.d/openEuler.r…