yuanxiaojiang
人的放纵是本能,自律才是修行

该阶段常用命令

项目 对应检查命令
网站/业务/api curl / wget
服务 systemctl / service / chkconfig
进程 ps / pstree / pgrep / pidstat / top / htop
CPU top / htop / vmstat / mpstat / lscpu / cpuinfo / w / uptime / sar
内存 top / free / ps / iotop(swap) / vmstat / mpstat / sar / hcache
磁盘 iotop / iostat / sar / dd / fio
网络 iftop / nethogs / nstat / ifstat / mtr / sar / ip / route
硬件 Megacli(监控raid)/ ipmitool(温度、cpu风扇转速)/ lm_sensors(温度)

Zabbix监控架构

生命周期

LTS(Long Time Support):长期维护版

zabbix生命周期:https://www.zabbix.com/cn/life_cycle_and_release_policy

image

zabbix版本选择:https://www.zabbix.com/cn/zabbix_cloud

Zabbix监控架构

zabbix是一个CS架构服务

zabbix是监控架构

zabbix-agent获取数据---->发送给---->zabbix-server服务端---->数据存放---->数据库<----zabbix-web页面展示数据

image

Zabbix7.0.17-Centos7环境搭建

主机规划

配置要求:https://www.zabbix.com/documentation/7.0/en/manual/installation/requirements

容量估算

参数 所需磁盘空间的计算公式(单位:字节)
Zabbix 配置文件
固定大小,通常为 10MB 或更少
History (历史数据)
days (items/refresh rate) 24 3600 bytes items:监控项数量
days:保留历史数据的天数
refreshrate:监控项的更新间隔
bytes:保留单个值所需要占用的字节数,依赖于数据库引擎,通常为 ~90 字节
Trends (趋势数据)
days (items/3600) 24 3600 bytes items:监控项数量
days:保留历史数据的天数
bytes:保留单个趋势数据所需要占用的字节数,依赖于数据库引擎,通常为 ~90 字节
Events (事件数据)
days events 24 3600 bytes events:每秒产生的事件数量。假设最糟糕的情况下,每秒产生 1 个事件
days:保留历史数据的天数
bytes:保留单个趋势数据所需的字节数,取决于数据库引擎,通常为 ~170 字节

主机规划

角色 主机名 eth0 / eth1 配置
Zabbix服务端 m03-zabbix-server 10.0.0.63 / 172.16.1.63 1C1G
Zabbix客户端 web01 10.0.0.7 / 172.16.1.7 1C1G
Zabbix客户端 db01 10.0.0.51 / 172.16.1.51 1C1G
Zabbix客户端 nfs01 10.0.0.31 / 172.16.1.31 1C1G

流程

  • 系统:CentOS 7.x(不支持yum方式安装zabbix服务端)
    • zabbix服务端编译安装
    • zabbix客户端yum安装
  • 部署zabbix服务端流程
    • 部署nginx+php(8.0-8.4)环境并测试
    • 部署数据库 mariadb(10.5-11.5)及以上 然后进行配置
    • 编译安装zabbix-server服务端及后续配置
    • 部署前端代码代码进行访问
    • web访问
    • 配置客户端

 

部署nginx-php环境并测试

[root@m03 ~]# yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
[root@m03 ~]# yum install -y yum-utils
[root@m03 ~]# yum-config-manager --enable remi-php83
[root@m03 ~]# yum install -y php php-fpm
[root@m03 ~]# yum install -y php-bcmath php-mbstring php-sockets php-gd php-xml php-xmlwriter \
php-xmlreader php-ctype php-session php-openssl php-gettext php-curl php-mysqlnd

# php配置

[root@m03 ~]# sed -ri '/^(user|group)/s#apache#nginx#g' /etc/php-fpm.d/www.conf
[root@m03 ~]# egrep '^(user|group)' /etc/php-fpm.d/www.conf
user = nginx
group = nginx

 

# 创建目录及测试文件

[root@m03 ~]# mkdir  -p /app/code/zabbix

[root@m03 ~]# cat /app/code/zabbix/info.php
<?php
phpinfo();
?>

 

# 启动服务

[root@m03 ~]# systemctl enable nginx.service php-fpm.service 

[root@m03 ~]# systemctl start nginx.service php-fpm.service

 

# hosts解析

10.0.0.63 zabbix.linux.cn

部署数据库

根据官网进行配置:https://mariadb.org/download/?t=repo-config

[root@m03 ~]# cat /etc/yum.repos.d/MariaDB.repo 
# MariaDB 10.6 RedHatEnterpriseLinux repository list - created 2025-07-29 03:44 UTC
# https://mariadb.org/download/
[mariadb]
name = MariaDB
# rpm.mariadb.org is a dynamic mirror if your preferred mirror goes offline. See https://mariadb.org/mirrorbits/ for details.
# baseurl = https://rpm.mariadb.org/10.6/rhel/$releasever/$basearch
baseurl = https://mirrors.neusoft.edu.cn/mariadb/yum/10.6/rhel/$releasever/$basearch
module_hotfixes = 1
# gpgkey = https://rpm.mariadb.org/RPM-GPG-KEY-MariaDB
gpgkey = https://mirrors.neusoft.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1


yum install -y mariadb-server
systemctl enable mariadb
systemctl start mariadb
 
# 安全初始化(只需执行一次)
mariadb-secure-installation
Enter current password for root (enter for none):回车
Switch to unix_socket authentication [Y/n] 输入n
Change the root password? [Y/n] 输入Y
Remove anonymous users? [Y/n]   输入Y
Disallow root login remotely? [Y/n] 输入Y
Remove test database and access to it? [Y/n] 输入Y
Reload privilege tables now? [Y/n] 输入Y
Thanks for using MariaDB! 表示完成

 

 

# 创建数据库(需要指定字符集)
CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;

# 创建zabbix用户并授权
GRANT ALL ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
FLUSH PRIVILEGES;

 

 

向数据库中导入数据(表、数据、注意导入的顺序)

[root@m03 ~]# tar xf zabbix-7.0.17.tar.gz
[root@m03 ~]# cd zabbix-7.0.17/database/mysql/
[root@m03 mysql]# mysql zabbix <schema.sql 
[root@m03 mysql]# mysql zabbix <images.sql 
[root@m03 mysql]# mysql zabbix <data.sql 

mysql的-e选项可以在命令行执行sql语句,注意以;结尾

[root@m03 mysql]# mysql -e 'show tables from zabbix;' |wc -l
204

 

 

编译安装zabbix-server服务端及后续配置

✅ 准备编译安装zabbix-server
✅ 修改zbx服务端配置文件
✅ 启动zbx服务端
✅书写systemctl配置文件

 

# 安装zabbix编译依赖
sudo yum install -y \
    mariadb-server mariadb-devel \
    libcurl-devel libxml2-devel pcre2-devel \
openldap-devel libssh2-devel openssl11 openssl11
-devel # 解决 OpenSSL 版本问题
# 由于需要使用指定版本的libevent-devel,所以需要编译安装
tar xf libevent-2.1.12-stable.tar.gz
cd libevent-2.1.12-stable/
./configure --prefix=/usr/local/libevent-2.1.12  --enable-shared  --enable-openssl
make
make install
# 创建一个配置文件,告诉系统去 /usr/local/libevent-2.1.12/lib 查找库文件
echo '/usr/local/libevent-2.1.12/lib' | sudo tee /etc/ld.so.conf.d/libevent.conf
#
更新动态库缓存(让系统立即生效,无需重启)
sudo ldconfig

[root@m03 bin]# strings /usr/local/libevent-2.1.12/lib/libevent-2.1.so.7 | grep "libevent-"
libevent-2.1.so.7
/root/libevent-2.1.12-stable

 

编译 Zabbix 或其他软件时需要指定 libevent 路径

./configure --with-libevent=/usr/local/libevent-2.1.12 ...

 

 

[root@m03 ~]# cd zabbix-7.0.17/

./configure --prefix=/usr/local/zabbix \

--enable-server \

--with-mysql -\

-with-libcurl \

--with-libxml2 \

--with-openssl11 \  #  # 关键!指定 OpenSSL 1.1 

--with-ldap \

--with-libevent=/usr/local/libevent-2.1.12 # 关键!指向手动安装的路径

 

 

image

 解决:在编译Zabbix时,显式传递CPPFLAGS

export CPPFLAGS="-I/usr/local/libevent-2.1.12/include"
CPPFLAGS:明确告诉编译器去哪里查找头文件
 
[root@m03 etc]# grep -n '^[a-Z]' /usr/local/zabbix/etc/zabbix_server.conf
12:ListenPort=10051
38:LogFile=/tmp/zabbix_server.log
89:DBHost=localhost
101:DBName=zabbix
117:DBUser=zabbix
125:DBPassword=zabbix
550:Timeout=3
552:Timeout=4
641:LogSlowQueries=3000
756:StatsAllowedIP=127.0.0.1
1056:EnableGlobalScripts=0

 

 

# 添加个虚拟用户
useradd -s /sbin/nologin -M zabbix

# 临时启动测试(验证服务能否运行)
sudo /usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf

# 检查端口
ss -lntup|grep 10051
# 检查进程
ps -ef |grep zabbix

 

创建systemctl配置文件

sudo tee /etc/systemd/system/zabbix-server.service << 'EOF'
[Unit]
Description=Zabbix Server
After=network.target mysqld.service

[Service]
Type=simple
ExecStart=/usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf
User=zabbix
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target
EOF

 

设置权限并启动

sudo chmod 644 /etc/systemd/system/zabbix-server.service
sudo systemctl daemon-reload  # 加载配置文件
pkill zabbix_server  # 关闭手动启动的zabbix_server
5. 启动与检查

systemctl enable zabbix-server

systemctl start zabbix-server

systemctl status zabbix-server
 

 

posted on 2025-07-30 20:02  猿小姜  阅读(50)  评论(0)    收藏  举报

levels of contents