系统版本以及软件版本
使用的系统版本: Red Hat Enterprise Linux release 9.2
软件版本:
- zabbix-release-7.0-3.el9.noarch
- zabbix-web-7.0.0-release1.el9.noarch
- zabbix-web-mysql-7.0.0-release1.el9.noarch
- zabbix-web-deps-7.0.0-release1.el9.noarch
- zabbix-apache-conf-7.0.0-release1.el9.noarch
- zabbix-server-mysql-7.0.0-release1.el9.x86_64
- zabbix-sql-scripts-7.0.0-release1.el9.noarch
- zabbix-selinux-policy-7.0.0-release1.el9.x86_64
- zabbix-agent-7.0.0-release1.el9.x86_64
一、知识补充
1、zabbix的构成
Zabbix是一个基于Web界面的、提供分布式系统监视以及网络监视功能的企业级开源解决方案。
- Zabbix server:Zabbix的控制中心,负责收集数据、写入数据库,并通过Web界面展示监控结果。它可以运行在多种操作系统平台上,如Linux、Solaris、HP-UX等。
- Zabbix agent:部署在被监控端的一个程序,用于收集本机信息(如CPU负载、内存、硬盘使用情况等)并发送给Zabbix server。Zabbix agent也支持多种操作系统平台。
2、zabbix的主要功能
- 实时监控:Zabbix可以实时监控网络设备、服务器、应用程序和服务的状态,收集和存储性能数据,并通过图形和报表进行可视化展示。
- 警报和通知:当监控到的指标超过预设的阈值时,Zabbix可以发送警报和通知,以便管理员能够及时采取措施。支持通过微信、QQ、Email等多种方式发送消息,甚至打电话。
- 自动发现:Zabbix可以自动发现新的网络设备和服务,并开始监控它们,减少了手动配置的工作量。
- 网络流量分析:帮助管理员识别网络瓶颈和性能问题。
- 日志监控:监控和分析日志文件,以便发现潜在的问题和异常。
- 安全审计:记录和审计用户对系统的操作,以确保安全性和合规性。
- 可扩展性:Zabbix可以通过插件和扩展来增加功能和适应特定需求。
3、Zabbix的特点
- 安装与配置简单:学习成本低,适合各种规模的企业使用。
- 免费开源:软件可以自由下载使用,运作团队靠提供收费的技术支持赢利。
- 分布式监视:支持分布式监视体系,对大型监控扩展有很好的支持。
- 灵活的通知机制:提供灵活的通知机制,以便系统管理员快速定位和解决存在的问题。
4、Zabbix的监控方式
Agent监控方式
定义:Agent监控方式下,Zabbix-agent会主动收集本机的监控信息,并通过TCP协议与Zabbix-server传递信息。这种方式分为主动和被动两种模式。
主动模式:Zabbix-agent主动收集监控信息,并通过10050端口将数据传给Zabbix-server所在服务器的10051端口。
被动模式:Zabbix-agent监听10050端口,等待Zabbix-server的监控信息收集信息请求,并返回采集到的数据。
优点
- 是Zabbix最常用的监控方式,监测指标深入细致有针对性。
- 内置监控功能强大,内置监控项目丰富。
- TCP方式实现通讯,可靠性有保证。
缺点
- 需要在被监控机器上安装Zabbix-agent客户端,部署相对麻烦,最初需要逐个机器安装代理软件。
- Zabbix-agent客户端运行在被监控机上,会收集本机信息。
Trapper监控方式
定义:使用Zabbix-sender程序主动向Zabbix-server发送数据。Key的名称和发送的数据内容都可以灵活定义,发送的信息采用JSON格式,遵循Zabbix-sender协议。
优点
- 不需要在被监控机器上安装Zabbix-agent。
- 不收集被监控机器的信息。
- 可以自定义发送的信息内容。
- 可以使用自定义脚本发送信息。
缺点
- 需要自定义发送的信息内容。
- 无内置监控项目。
SNMP监控方式
定义:SNMP(Simple Network Management Protocol)即网络管理协议,包括进程管理和被管理设备两部分。作为一种国际通用的网络管理协议,它被广泛应用于各种交换机、路由器等网络设备的管理上,也越来越多地被用于对服务器的监控上。
优点
- 服务器一旦部署SNMP Agent,任何能实现SNMP协议的软件都可以对其进行监测。
- 通过这种手段进行监测不需要知道被监测服务器的用户名和密码,比较安全。
缺点
- 很多服务器并非默认安装SNMP Agent,如果通过这种方式监测则需要对所有服务器安装部署。
- 能监测的参数指标比较固定,不够深入,无法满足用户的特殊需求。
- SNMP协议是通过UDP方式实现的,可能存在一定的可靠性问题。
JMX监控方式
定义:JMX(Java Management Extensions)数据的获取由Zabbix-java-gateway代理程序来负责数据的采集。
- 优点:可以详细的监控各类Java程序的运行状态。
- 缺点:被监控机上需要安装Zabbix-java-gateway。
IPMI监控方式
定义:IPMI(Intelligent Platform Management Interface)即智能平台管理接口,原本是Intel架构中企业系统的周边设备所采用的一种工业标准,后成为业界通用的标准。用户可以利用IPMI监控服务器的物理特性,如温度、电压、电扇工作状态、电源供应以及机箱等指标。
二、实验步骤
环境准备
新添加两台台机器,网络参数如下
标识 | Zabbix-Server |
---|---|
主机名 | ZabbixServer |
网络信息 | 192.168.37.6/24,连接外网 |
网络属性 | 静态地址 |
主要操作用户 | root |
修改主机名
[root@localhost ~]# hostnamectl hostname ZabbixServer
[root@localhost ~]# bash
修改网络信息
[root@ZabbixServer ~]# nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.37.6/24 ipv4.gateway 192.168.37.254
[root@ZabbixServer ~]# nmcli connection up ens160
1、配置软件仓库
这里我们拥有一个本地的YUM源服务器,通过FTP共享,所以仓库地址指向YUM源服务器
首先删除原有的仓库文件
[root@ZabbixServer ~]# rm -rf /etc/yum.repos.d/*
新建仓库文件
[root@ZabbixServer ~]# vim /etc/yum.repos.d/dvd.repo# 写入以下内容
[BaseOS]
name=BaseOS
baseurl=ftp://192.168.37.1/yum/BaseOS
enabled=1
gpgcheck=0[AppStream]
name=AppStream
baseurl=ftp://192.168.37.1/yum/AppStream
enabled=1
gpgcheck=0
添加Zabbix源
[root@ZabbixServer ~]# rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/9/x86_64/zabbix-release-7.0-3.el9.noarch.rpm
清除DNF缓存
[root@ZabbixServer ~]# dnf clean all;dnf makecache
2、配置zabbix服务端
Step1
安装Zabbix服务、Agent、Nginx、Mysql等配套软件
[root@ZabbixServer ~]# dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
Step2
安装Mariadb数据库
[root@ZabbixServer ~]# dnf install -y mariadb-server
Step3
开启数据库
[root@ZabbixServer ~]# systemctl enable --now mariadb.service
Step4
关闭防火墙,关闭SELinux
[root@ZabbixServer ~]# systemctl disable --now firewalld.service
[root@ZabbixServer ~]# setenforce 0
[root@ZabbixServer ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
Step5
初始化数据库
[root@ZabbixServer ~]# mysql -e "create database zabbix character set utf8mb4 collate utf8mb4_bin;"
[root@ZabbixServer ~]# mysql -e "create user zabbix@localhost identified by 'password';"
[root@ZabbixServer ~]# mysql -e "grant all privileges on zabbix.* to zabbix@localhost;"
[root@ZabbixServer ~]# mysql -e "set global log_bin_trust_function_creators = 1;"
Step6
初始化架构和数据,根据提示输入和新创建的密码
[root@ZabbixServer ~]# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
Step7
导入数据库架构后禁用log_bin_trust_function_creators选项
[root@ZabbixServer ~]# mysql -e "set global log_bin_trust_function_creators = 0;"
Step8
Mariadb数据库设置root密码
[root@ZabbixServer ~]# mysql -e "alter user 'root'@'localhost' identified by 'redhat@123';"
Step9
为Zabbix Server配置数据库
[root@ZabbixServer ~]# vim /etc/zabbix/zabbix_server.conf# 添加数据库密码
DBPassword=redhat@123
Step10
启动Zabbix Server和Agent进程,并加入开机自启
[root@ZabbixServer ~]# systemctl enable --now zabbix-server.service zabbix-agent.service httpd.service php-fpm.service
Step11
安装zh_CN语言包
[root@ZabbixServer ~]# dnf install langpacks-zh_CN.noarch
3、配置Zabbix Web界面
使用主机访问http://192.168.37.6/zabbix
4、调整界面语言
5、使用Zabbix监控Linux主机
因为在默认YUM源不存在zabbix-agent包,所以通过下载rpm包然后安装
所使用的RPM包可以在博客顶部下载
Step1
上传RPM包
Step2
安装RPM包
[root@YumServer ~]# rpm -ivh zabbix-agent-7.0.0-release1.el9.x86_64.rpm
Step3
修改zabbix agent客户端配置文件参数
[root@YumServer ~]# vim /etc/zabbix/zabbix_agentd.conf# 修改以下参数
Server=192.168.37.6
ServerActive=192.168.37.6
Hostname=YumServer
Step4
启动Zabbix Agent客户端,并加入开机自启
[root@YumServer ~]# systemctl enable --now zabbix-agent.service
Step5
添加监控主机
Step5
关联监控模板
Step6
等待数据采集,因为数据的采集时间要等到