目录
[Zabbix Server](#Zabbix Server)
[Zabbix Agent](#Zabbix Agent)
[Zabbix Proxy](#Zabbix Proxy)
[Zabbix Web 界面](#Zabbix Web 界面)
[编辑 5、安装 Zabbix Web 界面和 Apache 配置的软件包](#编辑 5、安装 Zabbix Web 界面和 Apache 配置的软件包)
[7、添加数据库用户,以及 zabbix 所需的数据库信息](#7、添加数据库用户,以及 zabbix 所需的数据库信息)
[2、 解决Web页面中文乱码问题](#2、 解决Web页面中文乱码问题)
一、监控
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简介
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