部署 Zabbix 企业级分布式监控

一、监控系统的功能概述

监控、从中文的字义来看,有两个内容,一是检测,二是控制。重点在第一个字眼,即检测、预防的意思。
监控,对应的英文单词是 Monitoring。在计算机领域,可以将其分为 5 种监控类型。
应用性能监控
业务交易监控
网络性能监控
操作系统监控
上面 5 种类型将监控这个概念划分成了多个领域。我们通常所说的监控,都会模糊的包含以上 5 个细分的领域。在任何一个 IT 业务环境中,都会存在各种各样的硬件设备、软件应用等。
按照逻辑层次划分,我们可以将我们可以将监控行为划分为 5 个层次:基础设施监控、系统层监控、应用层监控、业务监控、端用户体验监控。

在这里插入图片描述

二、监控系统的实现原理

1、模块组成

一个监控系统的组成大体可以分为两部分:数据采集部分和数据存储、分析告警、展示部分,这两部分构成了监控系统的基本模型。
请添加图片描述

2、采集协议

按照支持的协议方式,监控 IT 数据采集可以分为两种:专用客户端采集和公用协议采集。
请添加图片描述

3、监控模式

监控系统数据采集的工作模式可以分为被动模式和主动模式。被动模式指的是服务器端到客户端采集数据;主动模式是客户端主动上报数据到服务器。
请添加图片描述
一般来说被动模式对监控端服务器的开销较大,适合小规模的监控环境;被动模式对监控端服务器的
开销较小,适合大规模的监控环境。

4、代理架构

对于大规模的监控环境,被监控节点比较多,并且监控类型也很多,监控产生的数据和网络连接开销非常大,数据采集方式除了使用主动模式之外,还需要使用代理的架构,通过代理架构分摊服务器端的性能开销。另外,代理架构还支持跨地域、跨网络的分布式监控。常见的代理架构为 C/S/P 架构,即 Client/Proxy/Server。
请添加图片描述

三、监控系统的开源产品

1、zabbix
Zabbix 是一款出色的企业级运维监控平台,可用于监控从服务器、网络设备到 web 应用程序和数据库的性能和可用性的一切;它可以安装在 Linux、AIX、Windows、Solaris、MacOS X、FreeBSD、OpenBSD 等系统上使用,具有非常良好的适配能力

2、Prometheus+Grafana
Prometheus 是一个开源系统监控和警报工具包,主要用于对基础设施的监控,包括服务器(CPU、MEM 等)、数据库(MYSQL、PostgreSQL 等)、web 服务等,几乎所有东西都可以通过 Prometheus 进行监控。

3、Cacti
Cacti 是一款网络流量监测图形分析工具,它连接到 RRDTool,生成与网络数据相关的图表,具有非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host 以及任何一张图,还可以与 LDAP 结合进行用户验证,同时也能自己增加模板。

4、Nagios
Nagios 是一个监控系统运行状态和网络信息的监控系统,它可以监控所指定的本地或远程主机以及服务,同时提供异常通知功能等;能够监控几乎所有类型的组件,如网络协议、操作系统、系统指标、应用程序、服务、Web 服务器、网站、中间件等。

5、Checkmk
Checkmk 是一个高度可扩展的监控工具,可监控服务器、网络、云资产、数据库、容器、物联网等。它有两种模式可用,基础版完全开源并提供免费和无限制的监控,企业版附带附加功能。
Checkmk 具有部署快、高度自动化、配置灵活的特点。

6、OpenNMS
OpenNMS 是一个企业级基于 Java/XML 的分布式网络和系统监控管理平台。它能够显示网络中各中终端和服务器的状态和配置,为管理网络提供有效的信息。它专为 Linux 设计,但也支持 Windows、Solaris 和 OSX。
OpenNMS 可以使用 JMX、WMI、SNMP、NRPE、XML HTTP、JDBC、XML、JSON 等收集系统指标。

7、Netdata
Netdata 是一款 Linux 性能实时监测工具,它可以为 Linux 系统、应用程序、SNMP 服务等提供实时的性能监测,目前在物理系统、虚拟机、容器和物联网 / 边缘设备上运行。Netdata 具有监控指标多而广,数据收集速度快等特点,可以同时并发监控数万个指标,交互式可视化和富有洞察力的健康警报,可以即时诊断基础架构中的异常情况。

8、LibreNMS
LibreNMS 是一个开源、功能丰富且强大的网络监控系统,易于安装和配置,可以在多种平台上使用;它提供了广泛的功能,包括对各种协议的支持、性能监控、警报等;支持广泛的供应商、设备和协议,包括 Cisco、Linux、Windows、HP、Juniper、Dell、FreeBSD、Brocade、Citrix、F5 Networks 等;还可以根据接口进行接口分组,使用 SNMP、CDP、ARP、FDP、OSPF、LLDP、BGP 自动发现整个网络。

四、Zabbix 系统概述

1、初识 Zabbix

Zabbix 是什么,它是一种企业级的分布式开源监控系统的解决方案,Zabbix 是一个基于 Web 界面的提供分布式系统监控,以及网络监控功能的企业级开源解决方案。
Zabbix 由 Alexei Vladishev 创建,目前由 Zabbix SIA 主导开发和支持。
Zabbix 是一款监控网络的众多参数以及服务器、虚拟机、应用程序、服务、数据库、网站、云等的健康和完整性的软件。Zabbix 使用灵活的通知机制,允许用户为几乎任何事件配置基于电子邮件的告警,以实现对服务器问题做出快速反应。Zabbix 基于存储的数据提供出色的报告和数据可视化功能。这使得 Zabbix 成为容量规划的理想选择。
Zabbix 支持轮询和 trapping。所有 Zabbix 报告和统计数据以及配置参数都可以通过基于 Web 的前端访问。基于 Web 的前端确保可以从任何位置评估您的网络状态和服务器的健康状况。如果配置得当,不管对于拥有少量服务器的小型组织还是拥有大量服务器的大公司来讲,Zabbix 都可以在监控 IT 基础设施方面发挥重要作用。
Zabbix 是免费的。Zabbix 是在 GPL 通用公共许可证第 2 版下编写和分发的。这意味着它的源代码是免费分发的,可供公众使用。

2、Zabbix 的功能特性

(1) 数据收集
可用性及性能检测;
支持 SNMP (trapping 及 polling)、IPMI、JMX 监控;
自定义检测;
自定义间隔收集收据;
三种角色:Server、Proxy、Agent。

(2) 灵活的阈值定义
允许灵活地自定义问题阈值,在 Zabbix 中称为触发器 (trigger),存储在后端数据库中。

(3) 高级告警配置
可以自定义告警升级(escalation)、接收者及告警方式;
告警信息可以配置,并允许使用宏(macro)变量;
通过远程命令实行自动化动作(action)。

(4) 实时绘图
通过内置的绘图方法实现监控数据实时绘图。

(5)扩展的图形化显示
允许自定义创建多监控项视图;
生成网络拓扑(network maps);
自定义的面板(screen)和 slide shows,并允许在 dashboard 页面显示;
生成监控报告。

(6) 历史数据存储
数据存储在数据库中;
历史数据可配置;
内置数据清理机制。

(7) 配置简单
一次配置,终生监控,除非调整或删除;
允许使用模板添加监控设备。

(8) 模板使用
模板中可以添加组监控;
模板允许继承

(9) 网络自动发现
自动发现网络设备;
Agent 自动注册;
自动发现文件系统、网卡设备、SNMP OID 等。

(10) 快速的 Web 接口
Web 前端采用 PHP 编写;
访问无障碍。

(11) Zabbix API
Zabbix API 提供程序级别别的访问接口,第三方程序可以很快接入。

(12) 权限系统
安全的权限认证;
用户可以限制允许维护的列表。

(13) 全特性、Agent 易扩展
在监控目标上部署;
支持 Linux 及 Windows。

(14) 二进制守护进程
C 语言开发,高性能,低内存消耗;
易移植。

(15) 具备应对复杂环境情况
通过 Zabbix Proxy 可以非常容易的创建远程监控。

3、Zabbix 角色及架构

(1) Zabbix Server
zabbix_server 是 Zabbix 服务端守护进程。Zabbix Agentd、Zabbix Proxy 的数据最终都是提交到 Server。当然,并不是所有数据都主动提交给 Zabbix Server,也有的是 Server 主动获取数据。

(2) Zabbix Agent
zabbix_agentd 是客户端守护进程,此进程主要用于收集客户端数据,例如 CPU 负载、内存、硬盘使用情况等。

(3) Zabbix Proxy
zabbix_proxy 是 Zabbix 代理守护进程,功能类似 Server。不同的是,zabbix_proxy 只是一个中转站,它需要把收集到的数据提交 / 被提交到 Server。

(4) Zabbix_Web
zabbix 的 web 界面,管理员通过 web 界面管理 zabbix 配置以及查看 zabbix 相关监控信息,通常与 zabbix_server 运行在同一台主机上,也可以单独部署在独立的服务器上。

(5) Zabbix 整体架构

请添加图片描述

五、部署流程

1、资源清单

在这里插入图片描述

2、基础环境

(1) 关闭防火墙及内核保护

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i '/^SELINUX=/s/enforcing/disabled/' /etc/selinux/config

(2) 时间同步
请添加图片描述

mount linux.iso /mnt
cd /mnt
cp VMwareTools-10.3.26-22085142.tar.gz /root
cd
tar zxf VMwareTools-10.3.26-22085142.tar.gz
cd vmware-tools-distrib/
./vmware-install.pl

(3) 修改主机名
192.168.10.101

hostnamectl set-hostname server01
bash

192.168.10.102

hostnamectl set-hostname server02
bash

192.168.10.107

hostnamectl set-hostname proxy
bash

192.168.10.108

hostnamectl set-hostname zabbix
bash

3、部署服务zabbix server

(1) 添加zabbix源

rpm -Uvh zabbix-release-latest-6.4.el9.noarch.rpm
dnf clean all
dnf makecache

请添加图片描述
(2) 安装软件包

dnf -y install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
dnf -y install mysql-server-8.0.41
dnf -y install mysql
 
dnf -y install net-snmp-libs-5.9.1-17.el9.x86_64.rpm

请添加图片描述
zabbix6.4.8 需要的各个平台软件的版本如下:
mysql 的版本要求 8.0.30 - 8.1.X
mariadb 的版本要求 10.5.00 - 11.1.X
nginx 的版本要求 1.20 or later
php 的版本要求 7.4.0 - 8.2.X

(3) 配置MySQL

systemctl start mysqld
systemctl enable mysqld
 
 
mysql -u root
alter user 'root'@'localhost' identified by '123456';
 
 
create database zabbix character set utf8mb4 collate utf8mb4_bin;
create user zabbix@'localhost' identified by 'zabbix';
create user zabbix@'%' identified by 'zabbix';
grant all privileges on *.* to 'zabbix'@'localhost';
grant all privileges on *.* to 'zabbix'@'%';
 
create database zabbix_proxy character set utf8mb4 collate utf8mb4_bin;
create user zabbix_proxy@'localhost' identified by 'zabbix';
create user zabbix_proxy@'%' identified by 'zabbix';
grant all privileges on zabbix_proxy.* to 'zabbix'@'localhost';
grant all privileges on zabbix_proxy.* to 'zabbix'@'%';
 
set global log_bin_trust_function_creators = 1;
flush privileges;
exit

(4) 导入数据

cd /usr/share/zabbix-sql-scripts/mysql/
zcat server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -pzabbix zabbix

mysql -uroot -p123456
set global log_bin_trust_function_creators = 0;
exit

(5) 编辑配置文件

vim /etc/zabbix/zabbix_server.conf
###编辑内容###
DBPassword=zabbix

(6) 配置zabbix页面

vim /etc/nginx/conf.d/zabbix.conf
###编辑内容###
listen          80;
server_name     _;

请添加图片描述
(7) 启动服务

systemctl restart zabbix-server zabbix-agent nginx php-fpm
systemctl enable zabbix-server zabbix-agent nginx php-fpm

4、zabbix页面配置

(1) 登录
请添加图片描述
(2) 检查环境
请添加图片描述
(3) 配置数据库连接
请添加图片描述
(4) 主机名设置(保持默认)
请添加图片描述
(5) 登录
请添加图片描述

5、部署agent

(1) 添加zabbix源

dnf -y install zabbix-release-latest-6.4.el9.noarch.rpm
dnf clean all
dnf makecache

请添加图片描述
请添加图片描述
(2) 安装软件包

dnf -y install zabbix-agent

请添加图片描述
(3) 配置agent
192.168.10.101

vim /etc/zabbix/zabbix_agent.conf
Server=192.168.10.108
ServerActive=192.168.10.108
Hostname=server01

请添加图片描述
请添加图片描述
请添加图片描述
192.168.10.102

vim /etc/zabbix/zabbix_agent.conf
Server=192.168.10.108
ServerActive=192.168.10.108
Hostname=server02

请添加图片描述
请添加图片描述
请添加图片描述
(4) 启动服务

systemctl start zabbix-agent
systemctl enable zabbix-agent

请添加图片描述
(5) 添加主机
请添加图片描述
请添加图片描述
请添加图片描述
(6) 解决字体乱码问题

cd /usr/share/zabbix/assets/fonts/
ln -snf msyhl.ttc graphfont.ttf

请添加图片描述
在这里插入图片描述

6、部署proxy

(1) 添加zabbix源

dnf -y install zabbix-release-latest-6.4.el9.noarch.rpm
dnf clean all
dnf makecache

(2) 安装软件包

dnf -y install zabbix-proxy-mysql zabbix-sql-scripts zabbix-selinux-policy mysql
dnf -y install net-snmp-libs-5.9.1-17.el9.x86_64.rpm

(3) 导入数据
192.168.10.108

mysql -uroot -p123456
set global log_bin_trust_function_creators = 1;
flush privileges;
exit

192.168.10.107

cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql --default-character-set=utf8mb4 -uzabbix -pzabbix zabbix_proxy -h 192.168.10.108

192.168.10.108

mysql -uroot -p123456
set global log_bin_trust_function_creators = 0;
flush privileges;
exit

(4) 修改配置文件

vim /etc/zabbix/zabbix_proxy.conf
 
###编辑内容###
Server=192.168.10.108
Hostname=Zabbix proxy
DBHost=192.168.10.108
DBPassword=zabbix

请添加图片描述
请添加图片描述
请添加图片描述
(5) 启动服务

systemctl start zabbix-proxy
systemctl enable zabbix-proxy

192.168.10.102

Server=192.168.10.107
ServerActive=192.168.10.107

请添加图片描述
请添加图片描述
(6) 重启服务

systemctl restart zabbix-agent

(7) 添加代理
请添加图片描述
请添加图片描述
请添加图片描述
刷新
在这里插入图片描述
(8) 添加监控项
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值