1.zabbix组件:
zabbix-server
web
数据库
zabbix-agent
zabbix-proxy
工作流程:zabbix在进行监控时,zabbix客户端被安装在被监控主机上,负责定时收集数据,并将其发送给zabbix服务端,zabbix服务端要安装在监控设备上,将zabbix客户端发送的数据存储在数据库中,zabbix-web根据数据在前端进行展示和绘图
2.zabbix手机数据的2种模式:
1.主动模式:zabbix客户端主动向zabbix-server请求监控列表,并主动将监控采集数据提交给zabbix-server
2.被动模式:zabbix-server向agent请求获取监控项的数据,zabbix-agent返回监控数据
zabbix有6个工作进程:
zabbix_agentd:是zabbix客户端的守护进程,主要负责收集客户端监控项数据
zabbix_get:作为zabbix的工具,主要部署在proxy和server端
zabbix_proxy:代理程序,功能类似server,作用上类似于一个中转站,收集客户端监控数据后再返回给server端
zabbix_sender:zabbix的工具,通常运行在zabbix的客户端,主要作用是发送数据
zabbix_server:是zabbix服务端的守护进程,主要负责接受zabbix客户端数据
zabbix_gateway:zabbix_java_gateway,是zabbix的新功能,可以用于java方面的设备,只能用于主动获取数据
3.zabbix的监控框架:
1.server_client架构
监控设备与被监控设备直连,zabbix_server和zabbix_agent直接交互数据
2.zabbix_proxy_client架构
proxy是监控设备和被监控设备之间的桥梁,其本身不存放数据,只是将zabbix_agent的数据拿来缓存后再发送到zabbix_server端,这种架构一般适用于跨机房、跨网络的中型网络结构
3.master_node_client架构
是zabbix的最为复杂的架构,一般用于跨机房、跨网络、监控设备较多的大型网络设备。与zabbix_proxy_client架构相比,master_node_client架构主要区别在与node和proxy上。
在master_node_client架构中,每个node可以理解为一个小的server端,在自己的配置文件和数据库,node下游可以直接连接client,也可以通过proxy直接client。
在master_node_client架构中,master设备宕机不会影响到node节点的正常工作
4.zabbix模块:
zabbix_server:用于获取agengt存活情况和监控数据,所有的配置、统计和 操作数据均通过zabbix_server存放在database;
zabbix_database:用户存储所有的zabbix的配置信息、监控数据的数据库
zabbix_web: 管理员通过web界面管理zabbix配置以及查看zabbix相关监控信息,通常与zabbix_server运行在同一台主机上,也可以单独部署在独立的服务器上
5.zabbix安装(按照以下文档安装的用户名为zabbix,密码为123):
5.1 安装zabbix官方源
rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/8/x86_64/zabbix-release-6.4-1.el8.noarch.rpm
dnf clean all&&dnf makecache
5.2 关闭防火墙以及selinux
systemctl stop firewalld
systemctl disabled firewall
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
5.3 zabbix_server安装
dnf -y install httpd php-fpm mariadb-server zabbix-server-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-agent
5.4 配置mariadb数据库
systemctl start mariadb
systemctl enable mariadb
mysql -u root -p
create database zabbix character set utf8 collate utf8_bin;
create user 'zabbix'@'localhost' identified by '123';
grant all on zabbix.* to 'zabbix'@'localhost' identified by '123';
flush privileges;
quit
5.5 导入zabbix_mysql数据
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
5.6 修改zabbix_server配置
vim /etc/zabbix/zabbix_server.conf
增加以下几行
DBPassword=123
DBSocket=/var/lib/mysql/mysql.sock
DBPort=3306
wq保存退出
systemctl start zabbix_server.service
systemctl enable zabbix_server.service
5.7 mariadb数据库版本过低导致zabbix_server无法启动
报错信息:Unable to start Zabbix server due to unsupported MariaDB database version (10.03.28)
Must not be higher than (10.11.xx)
备份数据库:
mysqldump -u root -p --all-databases >/home/alldb.sql
mv /etc/my.cnf /etc/my.cnf.bak
卸载数据库:
dnf remove mariadb mariadb-server
安装新数据库:
Download MariaDB Server - MariaDB.org
找官网(Download MariaDB Server - MariaDB.org)添加新yum源后,直接下载
dnf clean all&&dnf makecache&&dnf install MariaDB-server MariaDB-client
升级已有的数据库:
mysql_upgrade -uroot -p --force
数据恢复:
mysql -u root -p </home/alldb.sql
5. 8.查看zabbix是否启动
netstat -atunlp |grep 10051
5.9 启动前端httpd服务即可
systemctl start httpd.service
systemctl enable httpd.service
5.10 注册zabbix账号
进入mysql,运行如下命令:
use zabbix;
select * from users;
6. zabbix-agent安装
6.1 安装zabbix-agent:
dnf install -y zabbix-agent
6.2 修改配置文件:
vim /etc/zabbix/zabbix_agent.conf
Server=192.168.200.141
wq保存退出
6.3 启动服务
systemctl start zabbix-agent.servic
systemctl enable zabbix-agent.service
netstat -atunlp |grep 10050