CentOS7系统下的Zabbix6.0.1监控系统部署搭建 详细步骤完整版

Zabbix简介

Zabbix 是一款开源的、企业级的分布式监控解决方案,广泛用于网络监控、服务器监控、云服务监控等。以下是 Zabbix 系统中几个关键组件的介绍:
Zabbix Server
Zabbix Server 是整个 Zabbix 监控系统的中央组件,负责接收来自 Zabbix Agent(或 Zabbix Proxy)的数据、触发报警、远程执行命令等功能。它处理所有的配置、统计和操作数据,并且是唯一可以永久保存监控数据的组件。Zabbix Server 支持多种数据库存储后端,如 MySQL、PostgreSQL 等,以便于数据的持久化存储。
Zabbix Proxy
Zabbix Proxy 可以看作是一个轻量级的 Zabbix Server,它可以代替 Zabbix Server 执行部分监控任务。Zabbix Proxy 主要用于分担 Zabbix Server 的负载,尤其是在大规模分布式监控环境中,通过在不同地理位置部署多个 Zabbix Proxy 实例,可以有效减少网络带宽的使用并提高数据收集的效率。Zabbix Proxy 与 Zabbix Server 之间的通信也是加密的,确保数据传输的安全性。
Zabbix Agent
Zabbix Agent 部署在需要被监控的目标机器上,它主动收集本地资源使用情况和应用数据,并将这些数据发送给 Zabbix Server 或响应 Zabbix Server 的请求来提供数据。Zabbix Agent 支持 Linux 和 Windows 操作系统,并允许用户根据自己的需求自定义监控项。
Zabbix Agent2
Zabbix Agent2 是对原始 Zabbix Agent 的升级版本,不仅包含了原 Agent 的所有功能,还新增了多项改进和增强功能。例如,支持更多的监控指标、提高了性能、增强了安全性和稳定性。Zabbix Agent2 支持插件式架构,使得添加新的监控功能变得更加容易。此外,它还提供了更强大的被动和主动检查能力。
更详细的介绍可以查看zabbix官网中文文档:https://www.zabbix.com/documentation/6.0/zh/manual

一、环境准备

1.IP分配:

192.168.10.128:Zabbix-server+Zabbix-agent
192.168.10.129:Zabbix-agent2

2.更新yum源

如果你用的系统还在维护期内,可以跳过这一步。
我使用的系统是CentOS7,现在官方已经停止维护了,所以默认带的yum源是用不了的,可以换成vault源,或者换成如阿里云维护的yum源,这里我换成阿里源(如果没有外网环境,也可以用一个同系统版本的ISO镜像放在内网,做一个内网yum源):

#备份原来的 repo 文件(如果有)
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
#下载阿里云 CentOS 7 源配置到/etc/yum.repos.d/CentOS-Base.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#清除缓存并生成新的缓存
yum clean all
yum makecache
#测试安装一个包验证是否正常
yum install -y epel-release

3.安装常用基本依赖和工具

最小化安装的系统缺少很多常用的依赖和命令,需要额外安装:

#安装基本依赖和工具
yum install -y bash-completion net-tools gcc gcc-c++ vim wget telnet tree lrzsz lsof libaio net-snmp-devel libevent-devel libxml2-devel

4.关闭防火墙

CentOS7有两个防火墙,一个是firewalld,一个是selinux。

4.1 firewalld

#firewalld
systemctl status firewalld #查看当前状态
systemctl stop firewalld #关闭firewalld
systemctl disable firewalld #禁止开机自启
systemctl status firewalld #查看当前状态

在这里插入图片描述

4.2 selinux

#临时关闭(重启后会恢复)
getenforce #查看当前状态
setenforce 0 #临时关闭
getenforce #查看当前状态

在这里插入图片描述

#永久关闭
vim /etc/selinux/config
修改SELINUX=disabled

在这里插入图片描述

二、部署zabbix

2.1 部署MySQL8.0

根据zabbix官网的文档,zabbix6.0的MySQL需要8.0.30-8.4.X版本。

2.1.1 下载MySQL源

wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm

在这里插入图片描述

2.1.2 配置MySQL源

yum -y install mysql80-community-release-el7-5.noarch.rpm

在这里插入图片描述

2.1.3 安装MySQL相关依赖

# --nogpgcheck跳过GPG验证
yum -y install gcc-c++ mysql-devel net-snmp-devel libevent-devel mariadb-devel --nogpgcheck

不想跳过的同学可以导入key后再安装

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql

2.1.4 安装MySQL并建立zabbix账号和库

(1)下载mysql包

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar

(2)创建目录

mkdir -p /data/zabbix/mysql

(3)解压到/data/zabbix/mysql

tar xf mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar  -C /data/zabbix/mysql/

在这里插入图片描述
(4)安装rpm包

cd /data/zabbix/mysql
rpm -ivh mysql-community-* --force --nodeps

在这里插入图片描述
(5)启动和开机自启

systemctl start mysqld
systemctl enable mysqld
systemctl status mysqld

在这里插入图片描述
在这里插入图片描述
(6)创建MySQL的zabbix账号和库

#查看默认密码
cat /var/log/mysqld.log |grep password
#连接数据库
mysql -uroot -p
#修改默认root密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_password'; #修改为你自己想用的密码,生产环境需注意强度
#创建zabbix库
create database zabbix character set utf8 collate utf8_bin;
#新建不限ip登录的用户
CREATE USER 'zabbix'@'%' IDENTIFIED BY 'your_password'; #修改为你自己想用的密码,生产环境需注意强度
#赋权
GRANT ALL PRIVILEGES ON *.* TO 'zabbix'@'%';
#生效
FLUSH PRIVILEGES;
#退出数据库
exit

在这里插入图片描述

2.2 编译安装Zabbix

2.2.1 下载源码包并解压

#下载zabbix6.0
wget http://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.1.tar.gz
#解压到/data/zabbix
tar -zxvf zabbix-6.0.1.tar.gz -C /data/zabbix/

在这里插入图片描述

2.2.2 创建账号

#创建zabbix组
groupadd zabbix
#创建zabbix用户
useradd  -g zabbix -M -s /sbin/nologin zabbix

在这里插入图片描述

2.2.3 编译安装

(1)编译

# 编译(通过“--prefix=/data/zabbix/”指定安装在/data/zabbix/目录下)
# “--enable-agent”可以改成“--enable-agent2”,则编译的是agent2
cd /data/zabbix/zabbix-6.0.1
./configure --prefix=/data/zabbix/ --enable-server --enable-agent --with-net-snmp --with-mysql --with-libxml2 

编译完成后会输出编译配置摘要,具体含义可以对着我的注释看,不感兴趣可以跳过。
在这里插入图片描述

# ==================================
# Zabbix 编译配置摘要
# ==================================
# 操作系统信息
Detected OS:           linux-gnu         # 检测到的操作系统类型
Install path:          /data/zabbix      # 自定义安装路径
Compilation arch:      linux             # 编译架构为 Linux
# 编译器及编译参数
Compiler:              cc                # 使用的 C 编译器(通常是 GCC)
Compiler flags:        -g -O2            # 编译选项:
                                          #   -g: 包含调试信息
                                          #   -O2: 优化等级 2
# 库支持路径
Library-specific flags:
  database:            -I/usr/include/mysql -m64  
                                          # MySQL 数据库头文件路径和 64 位编译标志
  libXML2:             -I/usr/include/libxml2  
                                          # libxml2 头文件路径(用于 XML/XPath 预处理)
  Net-SNMP:            -I/usr/local/include -I/usr/lib64/perl5/CORE -I. -I/usr/include
                                          # Net-SNMP 头文件路径(用于网络设备监控)
# ==================================
# Zabbix Server 功能启用情况
# ==================================
Enable server:         yes               # 启用 Zabbix Server
Server details:
  With database:       MySQL             # 使用 MySQL 作为后端数据库
  WEB Monitoring:      no                # 不启用 Web 页面内容抓取功能
  SNMP:                yes               # 支持通过 SNMP 协议监控网络设备
  IPMI:                no                # 不支持 IPMI 硬件管理接口
  SSH:                 no                # 不支持远程执行 SSH 命令
  TLS:                 no                # 不启用加密通信(如 TLS/SSL)
  ODBC:                no                # 不支持通用 ODBC 数据库连接
  Linker flags:        -L/usr/lib64 -L/usr/lib64/mysql -rdynamic
                                          # 链接器搜索路径和动态链接标志
  Libraries:           -lmysqlclient -lpthread -ldl -lssl -lcrypto -lresolv -lm -lrt 
                       -lnetsnmp -lz -lpthread -levent -lm -ldl -lresolv -lxml2 -lpcre
                                          # 链接的库列表:
                                          #   MySQL, SNMP, XML, PCRE, SSL, 压缩等
  Configuration file:  /data/zabbix/etc/zabbix_server.conf
                                          # Server 配置文件路径
  External scripts:    /data/zabbix/share/zabbix/externalscripts
                                          # 外部脚本目录
  Alert scripts:       /data/zabbix/share/zabbix/alertscripts
                                          # 告警脚本目录
  Modules:             /data/zabbix/lib/modules
                                          # 插件模块存放路径
# ==================================
# Zabbix Agent 功能启用情况
# ==================================
Enable agent:          yes               # 启用 Zabbix Agent(客户端)
Agent details:
  TLS:                 no                # 不启用 TLS 加密通信
  Modbus:              no                # 不支持 Modbus 工业协议监控
  Linker flags:        -rdynamic         # 动态链接标志
  Libraries:           -lz -lpthread -lm -ldl -lresolv -lxml2 -lpcre
                                          # 所需库:压缩、线程、正则、XML 解析等
  Configuration file:  /data/zabbix/etc/zabbix_agentd.conf
                                          # Agent 配置文件路径
  Modules:             /data/zabbix/lib/modules
                                          # Agent 模块插件路径
# ==================================
# 其他未启用组件
# ==================================
Enable proxy:          no                # 不启用分布式代理(Proxy)
Enable agent 2:        no                # 不启用 Go 语言版本的 Agent(Agent 2)
Enable web service:    no                # 不启用 Web 服务模块(HTTP API)
Enable Java gateway:   no                # 不启用 Java Gateway(JMX 监控)
LDAP support:          no                # 不启用 LDAP 用户认证
IPv6 support:          no                # 不启用 IPv6 网络支持

(2)安装

#编译安装
make install

大量日志打印后make install结束
在这里插入图片描述

2.2.4 初始化数据库

zabbix自带了三个sql文件,用于初始化数据库时建表等工作。
(1)授权

#给MySQL授权/data/zabbix/zabbix-6.0.1/database/mysql/目录下文件权限(一般已经有权限,可检查跳过)
#确保 MySQL 有足够的权限读取指定路径下的images.sql文件
chown -R mysql:mysql /data/zabbix/zabbix-6.0.1/database/mysql/images.sql
chmod 644 /data/zabbix/zabbix-6.0.1/database/mysql/images.sql
chown -R mysql:mysql /data/zabbix/zabbix-6.0.1/database/mysql/schema.sql
chmod 644 /data/zabbix/zabbix-6.0.1/database/mysql/schema.sql
chown -R mysql:mysql /data/zabbix/zabbix-6.0.1/database/mysql/data.sql
chmod 644 /data/zabbix/zabbix-6.0.1/database/mysql/data.sql

(2)导入sql文件

#进入MySQL
mysql -uroot -p
#进入zabbix
USE zabbix
#导入数据库架构及数据
SOURCE /data/zabbix/zabbix-6.0.1/database/mysql/schema.sql 
SOURCE /data/zabbix/zabbix-6.0.1/database/mysql/images.sql
SOURCE /data/zabbix/zabbix-6.0.1/database/mysql/data.sql 
#查看表
SHOW TABLES;

如果能看到一系列表名,说明文件已成功导入。
在这里插入图片描述

2.3 部署PHP

2.3.1 安装PHP7.4

由于CentOS7自带PHP版本为5.6,所以需要安装额外的库,也是remi的库

#逐条执行
yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm  
yum -y install yum-utils
yum-config-manager --disable 'remi-php*' #禁用自带的旧版本源
yum-config-manager --enable  'remi-php74' #启用新安装的新版本源
yum -y install php php-fpm php-mysqlnd php-gd php-xml php-mbstring php-bcmath php-json php-mbstring  php-ldap install curl-devl libxml2 libxml2-devel
php -v #查看版本

在这里插入图片描述

2.3.2 修改PHP配置文件

#注意带注释的要去掉注释符号
vim /etc/php.ini 
修改:
post_max_size = 16M
max_execution_time = 300
max_input_time = 300

vim /etc/php-fpm.d/www.conf
修改:
listen = /run/php-fpm/www.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660

#过滤修改的两个文件,检查是否修改成功
cat /etc/php.ini | grep -E 'post_max_size|max_execution_time|max_input_time'
cat /etc/php-fpm.d/www.conf | grep -E 'listen =|listen.owner|listen.group|listen.mode'

在这里插入图片描述

2.4 部署Nginx

2.4.1 安装

yum -y install epel-release
yum -y install nginx

2.4.2 添加zabbix.conf配置文件

vim /etc/nginx/conf.d/zabbix.conf

参考配置文件(如果你的所有路径等都和我一样,那么可以直接复制过去用):

server {
    listen       80;
    server_name  localhost;

    root   /usr/share/nginx/html/zabbix;
    index  index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_pass   unix:/run/php-fpm/www.sock;
        fastcgi_index  index.php;
        include        fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    }

    location ~ /\.ht {
        deny  all;
    }
}

2.4.3 建立静态页面软链接

ln -s /data/zabbix/zabbix-6.0.1/ui /usr/share/nginx/html/zabbix

在这里插入图片描述

2.4.4 授权nginx对/run/php-fpm/www.sock的权限

#新建php-fpm
mkdir -p /run/php-fpm
chown nginx:nginx /run/php-fpm

在这里插入图片描述

2.5 配置zabbix日志路径、数据库密码、server地址

#新建文件夹
mkdir /data/zabbix/log
chown -R zabbix:zabbix /data/zabbix/log

#编辑zabbix_server.conf
vim /data/zabbix/etc/zabbix_server.conf
#修改
LogFile=/data/zabbix/log/zabbix_server.log
DBPassword=xxx (替换成本文2.4.1第(6)步配置的数据库zabbix用户密码)

#编辑zabbix_agentd.conf
vim /data/zabbix/etc/zabbix_agentd.conf
#修改
LogFile=/data/zabbix/log/zabbix_agentd.log
Server=127.0.0.1,192.168.10.128 #使用zabbix-server的地址,英文逗号隔开
ServerActive=127.0.0.1,192.168.10.128 #使用zabbix-server的地址,英文逗号隔开

在这里插入图片描述

2.6 zabbix添加systemctl管理

/data/zabbix/sbin/zabbix_server
(1)Zabbix-server:
新建zabbix-server.service:

vim /etc/systemd/system/zabbix-server.service

输入内容:

[Unit]
Description=Zabbix Server
After=network.target mysql.service mariadb.service postgresql.service

[Service]
Type=forking
PIDFile=/tmp/zabbix_server.pid
ExecStart=/data/zabbix/sbin/zabbix_server -c /data/zabbix/etc/zabbix_server.conf
ExecStop=/bin/kill -SIGTERM $MAINPID
Restart=always
User=zabbix
Group=zabbix
Environment="LD_LIBRARY_PATH=/data/zabbix/lib"

[Install]
WantedBy=multi-user.target

(2)Zabbix-agent:
新建zabbix-agent.service:

vim /etc/systemd/system/zabbix-agent.service

输入内容:

[Unit]
Description=Zabbix Agent
After=network.target

[Service]
Type=forking
PIDFile=/tmp/zabbix_agentd.pid
ExecStart=/data/zabbix/sbin/zabbix_agentd -c /data/zabbix/etc/zabbix_agentd.conf
ExecStop=/bin/kill -SIGTERM $MAINPID
Restart=always
User=zabbix
Group=zabbix
Environment="LD_LIBRARY_PATH=/data/zabbix/lib"

[Install]
WantedBy=multi-user.target

在这里插入图片描述
(3)重载systemctl配置:

systemctl daemon-reload

2.7 启动服务

2.7.1 启动PHP-FPM

systemctl enable php-fpm
systemctl start php-fpm
#检查www.sock是否存在及权限
ls -l /run/php-fpm/www.sock

在这里插入图片描述

2.7.2 启动Zabbix

#开机自启
systemctl enable zabbix-server
systemctl enable zabbix-agent
#启动
systemctl start zabbix-server
systemctl start zabbix-agent

#查看状态
systemctl status zabbix-server
systemctl status zabbix-agent

在这里插入图片描述

在这里插入图片描述

2.7.3 启动Nginx

systemctl enable nginx
systemctl start nginx
systemctl status nginx

在这里插入图片描述

2.7.4 检查所有端口是否正常监听

netstat -tulnp
#-t 表示显示 TCP 端口
#-u 表示显示 UDP 端口
#-l 表示仅显示监听状态的端口
#-n 表示以数字形式显示地址和端口号,而不是尝试解析为域名
#-p 显示哪个进程(Process)正在使用该端口,包括进程的 PID 和名称

在这里插入图片描述
三、初始化Zabbix
3.1 在浏览器访问http://192.168.10.128(换成你自己的ip)
(1)选择语言
在这里插入图片描述
(2)查看检测是否全部通过
在这里插入图片描述
(3)配置数据库信息
在这里插入图片描述
(4)配置主机名称和时区信息
在这里插入图片描述
(5)检测无误后下一步
在这里插入图片描述
(6)配置zabbix.conf.php文件
我的服务器里还有一个账号是007,不小心影响了权限,导致我这里添加失败,所以我下载下来后手动添加这个文件
在这里插入图片描述
在这里插入图片描述
(7)完成
在这里插入图片描述

2.8 登录

默认账密:Admin/zabbix
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值