运维学习————Zabbix监控框架(1)

目录

一、监控

1、概念

2、作用

3、创建监控框架

老牌监控框架

新款王牌监控框架

二、zabbix简介

1、概述

2、核心功能

三、主要组件及运行原理

1、主要组件

[Zabbix Server](#Zabbix Server)

[Zabbix Agent](#Zabbix Agent)

[Zabbix Proxy](#Zabbix Proxy)

[Zabbix Web 界面](#Zabbix Web 界面)

数据库

其他

2、监控架构原理图

原理图

​编辑高可用

四、安装和配置

1、准备工作

2、安装zabbix下载源

3、安装Zabbix服务器、代理

4、安装Zabbix前端软件包

[​编辑 5、安装 Zabbix Web 界面和 Apache 配置的软件包](#编辑 5、安装 Zabbix Web 界面和 Apache 配置的软件包)

6、安装zabbix依赖数据库

[7、添加数据库用户,以及 zabbix 所需的数据库信息](#7、添加数据库用户,以及 zabbix 所需的数据库信息)

8、导入数据库文件,配置密码

9、配置时区,启动服务

五、测试及解决中文乱码

1、测试

[2、 解决Web页面中文乱码问题](#2、 解决Web页面中文乱码问题)

3、查看自身监控

一、监控

1、概念

运维监控是指对计算机系统运行状态的实时监视和控制,以确保其安全性、稳定性和高效性。

2、作用

1,对系统不间断实时监控

2,实时反馈系统当前状态

3,保证服务可靠性安全性

4,保证业务持续稳定运行

3、创建监控框架

老牌监控框架

Cacti

Cacti是一款基于PHP、MySQL开发的网络流量监测图形分析工具。主要监控网络设备,如路由器,交换机。

Nagios

Nagios是一款开源的IT基础设施监控软件,主要功能是监控系统、网络和基础设施的运行状态,提供实时的警报和通知

Smokeping

Smokeping是一款开源的网络监控工具,它主要用于实时监控网络的延迟和丢包率,并通过图形化界面展示监测结果。

Ganglia

Ganglia是一款开源的分布式监控系统,专为各种规模的集群、数据中心和云环境设计。其主要功能包括收集并聚合来自集群中各个节点的数据,在统一的界面中展示这些数据,以实时了解系统的性能和健康状况。大数据监控框架,监控hadoop之类的。

2012年及之前使用,现在几乎已经被淘汰!

新款王牌监控框架

Open-Falcon

监控Open-Falcon是一款由小米公司开发的开源监控系统,专为大规模分布式系统设计,提供高效、灵活且可扩展的监控解决方案。市场占有率不高。

Prometheus

Prometheus是一款开源的系统监控和警报工具套件,它通过收集指标数据并提供一个强大的查询语言(PromQL)来监控应用程序和系统。主要功能包括实时监控系统健康状态、收集并分析度量数据、支持多种数据存储后端、提供灵活的警报系统以及可视化展示监控数据等。Prometheus能够高效地处理大规模数据集,并广泛用于云计算、容器化环境(如Kubernetes)以及微服务架构中。

Zabbix

监控Zabbix是一款开源的分布式监控系统,主要用于实时监控和管理网络设备、服务器、应用程序等IT资源。

二、zabbix简介

官网:https://www.zabbix.com/

1、概述

zabbix是基于web界面的开源监控平台,帮助我们实时检查设备的状态,比如服务器、网络设备等。

当设备出现问题时,它会及时通知我们,让我们可以采取措施来解决。

它支持自定义配置和自定义告警,并且可以实现邮件、短信等方式的告警。

2、核心功能

数据采集‌:Zabbix Agent方式会定期收集设备的各种指标数据,如CPU使用率、内存占用、网络流量等。这些数据会被Zabbix Server主动获取。

触发检测告警‌:Zabbix会根据事先设定的阈值和触发条件对采集到的数据进行检测。如果某个指标超过了阈值或满足了触发条件,Zabbix会触发一个告警,并根据设置的通知方式通知相关人员。

数据存储‌:Zabbix将采集到的数据存储在数据库中。

数据展示‌:Zabbix提供了丰富的可视化功能,可以将采集到的数据转化成各种图表和报表,帮助用户直观地了解设备的运行状态和趋势。

三、主要组件及运行原理

1、主要组件

Zabbix Server

功能描述

Zabbix Server 是 Zabbix 监控系统的核心组件,负责接收来自客户端(Agent)或其他监控源的监控数据

特点

数据处理中心:负责数据的接收、处理和存储。

告警触发:根据预设规则触发告警,并通过多种方式通知相关人员。

配置管理:管理所有监控配置,包括主机、模板、监控项、触发器等,确保整个监控系统的正常运作

Zabbix Agent

功能描述

Zabbix Agent 是部署在被监控设备上的轻量级软件组件,负责采集被监控设备的各种指标数据(如CPU使用率、内存占用、磁盘空间等)并发送给 Zabbix Server。Zabbix Agent 支持主动模式和被动模式两种数据采集方式,以适应不同的监控需求和网络环境。

特点

数据采集:能够采集丰富的系统指标和应用程序数据。

多种采集模式:支持主动和被动两种数据采集模式。

安全通讯:支持TLS/SSL加密通信,确保数据传输的安全性。

版本说明:

Zabbix Agent 目前有两个版本:Zabbix Agent(C语言开发,支持多种主流平台)和 Zabbix Agent 2(Go语言开发,性能更优,支持更高的并发和易于扩展,目前主要支持Linux和Windows平台)。

Zabbix Proxy

功能描述

Zabbix Proxy 是可选组件,用于在分布式监控环境中代替 Zabbix Server 接收监控数据并进行预处理。Proxy 减少了数据传输的距离和 Server 的处理压力,提高了监控系统的效率和可扩展性。预处理后的数据会批量发送给 Zabbix Server 进行进一步处理。

特点

数据收集与预处理:从下属的 Agents 或其他监控源收集数据并进行预处理。

数据缓存与转发:在本地缓存数据,并周期性或按需将数据转发给 Zabbix Server。

负载均衡与配置同步:多个 Proxy 可以实现负载均衡,并自动从 Zabbix Server 接收配置更新。

Zabbix Web 界面

功能描述

Zabbix Web 界面是 Zabbix 监控系统的图形用户界面(GUI(Graphical User Interface))。

特点

图形化界面:提供直观易用的操作界面。

配置管理:用户可以通过 Web 界面修改监控配置。

监控数据展示:展示实时和历史监控数据,支持多种图表和报表形式。

数据库

功能描述

数据库用于存储被监控设备的配置信息和监控数据。Zabbix 支持多种数据库类型,如 MySQL、Oracle、PostgreSQL、SQLite 等,用户可以根据实际需求选择合适的数据库系统。

特点

数据存储:持久化存储监控数据和配置信息。

高可用性:支持多种数据库系统,确保数据的安全性和可靠性。

性能优化:通过优化数据库配置和查询语句,提高监控系统的整体性能。

其他

Zabbix Agent确实支持主动和被动两种数据采集模式。

这两种模式在数据收集的方式和效率上有所不同,适用于不同的监控场景和需求。

被动模式(Passive Mode)

Zabbix Server 消耗自身资源主动的要数据 agent被动的给,站在agent角度,叫被动模式。

工作原理

在被动模式下,Zabbix Agent会监听一个特定的端口(默认是10050),等待Zabbix Server的指令来收集数据。Zabbix Server会周期性地向Agent发送请求,Agent在收到请求后,会收集相应的监控数据并返回给Server。

特点

默认模式:Zabbix默认采用被动模式进行数据收集。

依赖Server:数据收集依赖于Server的指令,Server需要主动向Agent发起请求。

适用于小规模监控:在监控的主机数量不多时,被动模式可以很好地工作。

可能存在的问题:当被监控的主机数量达到一定规模时,Server需要处理大量的请求,可能会导致性能瓶颈。

主动模式(Active Mode)

Zabbix Server 不会消耗自身资源主动的要数据 agent主动的把采集的数据给server,站在agent角度,叫主动模式。

工作原理

在主动模式下,Zabbix Agent会主动收集监控数据,并通过TCP协议将数据发送到Zabbix Server的特定端口(默认是10051)。这种方式下,Agent不再等待Server的请求,而是主动将数据推送给Server。

特点

减轻Server压力:由于Agent主动发送数据,可以减轻Zabbix Server的负担,特别是在监控大量主机时。

实时性:数据可以更快地到达Server,提高了监控的实时性。

适用于大规模监控:在监控大量主机时,主动模式可以更有效地利用网络资源,减少延迟。

配置相对复杂:与被动模式相比,主动模式需要更多的配置工作,包括设置Agent的ServerActive参数等

2、监控架构原理图

原理图

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

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

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

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

高可用

四、安装和配置

1、准备工作

#关闭防火墙并设置开机不启动

#查看防火墙状态 
systemctl  status  firewalld
#关闭防火墙
systemctl  stop firewalld
#设置防火墙开机禁用
systemctl disable  firewalld

关闭SELinux

vim /etc/sysconfig/selinux

​​​​​​

vim /etc/selinux/config

一定要关闭,要不后面启动zabbix会报权限不足错误!

2、安装zabbix下载源

#安装yum源
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
#更换zabbix.repo为阿里源(和官网不同,提高效率)
cat /etc/yum.repos.d/zabbix.repo
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#'  /etc/yum.repos.d/zabbix.repo
cat /etc/yum.repos.d/zabbix.repo
#清空缓存
yum clean all && yum makecache

3、安装Zabbix服务器、代理

yum install zabbix-server-mysql zabbix-agent -y

zabbix-server-mysql:这是Zabbix服务器的MySQL版本的软件包,安装了Zabbix服务器组件,以便Zabbix监控系统能够运行并通过MySQL保存数据。

zabbix-agent: 这是Zabbix代理软件包,安装了Zabbix代理组件,用于在被监控设备上主动提供监控数据给Zabbix服务器

4、安装Zabbix前端软件包

安装SCL(前提)

yum install centos-release-scl -y

安装 SCL(Software Collections),便于后续安装高版本的 php,默认 yum 安装的 php 版本为 5.4,版本过低,zabbix 5.0 版本对 php 版本最低要 7.2.0 版本。SCL 可以使得在同一台机器上使用多个版本的软件,而又不会影响整个系统的依赖环境。软件包会安装在 /opt/rh 目录下。

编辑/etc/yum.repos.d/zabbix.repo文件并启用zabbix前端存储库:

vim /etc/yum.repos.d/zabbix.repo

5、安装 Zabbix Web 界面和 Apache 配置的软件包

yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y

zabbix-web-mysql-scl:这个软件包提供了 Zabbix 的 Web 界面部分,并且使用了 MySQL 数据库作为后端存储

zabbix-apache-conf-scl:这个软件包提供了与 Apache 服务器相关的 Zabbix 配置文件,用于与 Apache 服务器协同工作

安装报错解决

和前面的错误一样,还是因为 SCL源在2024年6月30日停止维护了。需要更换yum源

备份原来文件:

copy /etc/yum.repos.d/CentOS-SCLo-scl.repo /etc/yum.repos.d/CentOS-SCLo-scl.repo.bak

copy /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo.bak

vim /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo

[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo

再次安装成功,成功!!!

6、安装zabbix依赖数据库

安装 MariaDB 数据库服务器及其相关组件:

yum install -y mariadb-server mariadb

MariaDB是一个开源的关系型数据库管理系统(RDBMS),它是MySQL的一个分支,由MySQL的原始开发者之一Michael Widenius领导的团队创建。MariaDB旨在保持向后兼容性,并提供一个替代MySQL的选择,尤其是在Oracle收购Sun Microsystems(MySQL的母公司)之后,为了应对可能的闭源化和商业策略变化,开源社区开始寻求独立的解决方案。

启用并立即启动MariaDB数据库服务器:

systemctl enable --now mariadb

初始化数据库,并设置密码:

mysql_secure_installation

原始密码是空,直接回车 (我这是设置密码为:123456)

7、添加数据库用户,以及 zabbix 所需的数据库信息

mysql -uroot -p123456 回车

#新建数据库zabbix 新建用户zabbix密码zabbix 把zabbix数据库中的表的所有权限都给zabbix用户

create database zabbix character set utf8 collate utf8_bin;

show databases;

select user,host from mysql.user;

create user zabbix@localhost identified by 'zabbix';

select user,host from mysql.user;

grant all privileges on zabbix.* to zabbix@localhost;

flush privileges;

quit;

8、导入数据库文件,配置密码

查看sql文件位置:

rpm -ql zabbix-server-mysql

mysql -uroot -p123456

show databases;

use zabbix;

show tables;

没有任何表

导入:

将 Zabbix 监控系统所需的数据库结构导入到名为 zabbix 的数据库中

zcat /usr/share/doc/zabbix-server-mysql-5.0.43/create.sql.gz| mysql -uzabbix -pzabbix zabbix

然后重复上面的操作,登录数据库,查看即可

配置密码

vim /etc/zabbix/zabbix_server.conf

注意:配置的密码一定是创建的用户和密码对应

9、配置时区,启动服务

vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

启动服务:

systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm

设置开机自动启动:

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 服务

五、测试及解决中文乱码

1、测试

浏览器输入:http://192.168.37.191/zabbix 回车


确认信息:

登录(用户名是Admin(大写A),密码是zabbix ):

切换中文:

如果出现错误,请查看日志:

cat /var/log/zabbix/zabbix_server.log

tail -F /var/log/zabbix/zabbix_server.log

2、 解决Web页面中文乱码问题

yum install -y wqy-microhei-fonts

wqy-microhei-fonts 是一种中文字体包。这种字体在Linux系统中广泛使用,特别是对于那些需要显示中文内容的场景。

cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

-f =force 强制覆盖原来文件 选择是

重启zabbix-server。就可以了

service zabbix-server restart

3、查看自身监控

相关推荐
海阔天空_20131 分钟前
Python pyautogui库:自动化操作的强大工具
运维·开发语言·python·青少年编程·自动化
桥田智能4 分钟前
气爪在自动化装配线中是如何应用的?
运维·自动化
€☞扫地僧☜€2 小时前
docker 拉取MySQL8.0镜像以及安装
运维·数据库·docker·容器
其乐无涯2 小时前
服务器技术(一)--Linux基础入门
linux·运维·服务器
Diamond技术流2 小时前
从0开始学习Linux——网络配置
linux·运维·网络·学习·安全·centos
写bug的小屁孩2 小时前
前后端交互接口(三)
运维·服务器·数据库·windows·用户界面·qt6.3
斑布斑布2 小时前
【linux学习2】linux基本命令行操作总结
linux·运维·服务器·学习
紅色彼岸花2 小时前
第六章:DNS域名解析服务器
运维·服务器
✿ ༺ ོIT技术༻2 小时前
Linux:认识文件系统
linux·运维·服务器
会掉头发2 小时前
Linux进程通信之共享内存
linux·运维·共享内存·进程通信