1.zabbix安装

官网

环境准备(新版本不在需要配置MYSQL)

zabbix服务端10.0.0.143
zabbix客户端10.0.0.45

服务端

nginx+php

php修改文件

PHP 8.1

yum install epel-release -y
yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
yum install -y yum-utils
yum-config-manager --enable remi-php81
yum install nginx php php-fpm php-mysqlnd php-gd php-bcmath php-mbstring php-xml  -y

sed -ri ‘/^(user|group)/s#apache#nginx#g’ /etc/php-fpm.d/www.conf

[root@zabbix ~]$ egrep ‘^(user|group)’ /etc/php-fpm.d/www.conf
user = nginx
group = nginx

[root@zabbix ~]$ php-fpm -t
[19-Jan-2025 16:27:44] NOTICE: configuration file /etc/php-fpm.conf test is successful

[root@zabbix ~]$ systemctl start php-fpm.service nginx.service
[root@zabbix ~]$ systemctl enable php-fpm.service nginx.service

数据库

vi /etc/yum.repos.d/MariaDB.repo

然后添加如下内容(以 MariaDB 10.5 为例):

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.5/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

[root@mysqldb ~]$ yum install -y mariadb-server

[root@zabbix ~]$ systemctl start mariadb.service
[root@zabbix ~]$ systemctl enable mariadb.service

设置用户名密码

mysql_secure_installation

Enter current password for root (enter for none): 回车

设置密码

set root password? [Y/n] y
New password:123
Re-enter new password:123

提示信息

提示你关于匿名用户的情况,并询问是否要移除匿名用户。下面为你详细解释及给出应对建议:
在默认情况下,MariaDB 安装完成后会存在匿名用户。这些匿名用户允许任何人在无需创建用户账户的情况下登录到 MariaDB 数据库。这种设计初衷主要是为了方便测试,并且让安装过程更加顺畅。不过,在生产环境中,匿名用户的存在会带来安全风险,因为任何人都可以无限制地访问数据库,所以建议在进入生产环境之前移除这些匿名用户

Remove anonymous users? [Y/n] y
… Success!

这是 MariaDB 安全配置过程中的一个提示,询问是否禁止 root 用户远程登录。以下是对该提示的详细分析以及应对建议
通常情况下,root 用户作为数据库的超级管理员,拥有最高的权限。如果允许 root 用户从网络远程登录,那么恶意用户可能会尝试通过网络猜测 root 用户的密码,一旦密码被破解,整个数据库的安全将受到严重威胁。因此,为了增强数据库的安全性,建议只允许 root 用户从本地主机(localhost)登录。

Disallow root login remotely? [Y/n]y

后续更改

方法一:使用 SQL 命令

登录到 MariaDB:以 root 用户身份登录到 MariaDB 数据库,在终端或命令提示符中输入 mysql -u root -p,然后输入 root 用户的密码23

授予远程登录权限:如果要允许 root 用户从任何主机远程登录,执行 GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ IDENTIFIED BY ‘password’ WITH GRANT OPTION;,其中 password 是你为 root 用户设置的远程登录密码。如果只想允许特定 IP 段的主机连接,比如 192.168.100.%,则将命令改为 GRANT ALL PRIVILEGES ON *.* TO ‘root’@’192.168.100.%’ IDENTIFIED BY ‘password’ WITH GRANT OPTION;47

刷新权限:执行 FLUSH PRIVILEGES;,使权限设置立即生效467

方法二:修改配置文件

打开配置文件:在服务器上找到 MariaDB 的配置文件,通常在 /etc/mysql/mariadb.conf.d/50-server.cnf 或 /etc/my.cnf 等位置。使用文本编辑器打开该文件14

修改绑定地址:找到 bind-address = 127.0.0.1 这一行,如果要允许远程访问,将其注释掉或者改为 bind-address = 0.0.0.0。0.0.0.0 表示允许来自任何地址的连接14

重启 MariaDB 服务:保存配置文件后,重启 MariaDB 服务使配置生效。在 Ubuntu/Debian 系统上,执行 sudo systemctl restart mariadb;在 CentOS/RHEL 系统上,执行 sudo systemctl restart mysqld14

如果后续想要禁止 root 用户远程登录,使用方法一时,可执行 REVOKE ALL PRIVILEGES ON *.* FROM ‘root’@’%’; 后刷新权限;使用方法二时,将配置文件中的绑定地址改回 127.0.0.1 并重启服务即可

默认情况下,MariaDB 会自带一个名为 test 的数据库,该数据库允许任何人访问,主要用于测试目的。在生产环境中,为了避免潜在的安全风险和不必要的干扰,通常建议移除这个测试数据库以及对它的访问权限234

Remove test database and access to it? [Y/n]y

在对 MariaDB 进行安全配置的过程中,比如修改了用户密码、移除了匿名用户、删除了测试数据库等操作后,这些更改并不会立即生效,需要重新加载权限表,才能让数据库重新读取并应用这些新的权限设置,确保所有的更改能够立即生效,使数据库的权限状态与所做的配置更改保持一致。

Reload privilege tables now? [Y/n]y

查看

[root@zabbix ~]$ mysql -uroot -p123

mysql配置zabbix

CREATE DATABASE zabbix character set utf8 collate utf8_bin;

CREATE USER ‘zabbix’@’localhost’ IDENTIFIED BY ‘123456’;

GRANT ALL PRIVILEGES ON zabbix.* TO ‘zabbix’@’localhost’;

FLUSH PRIVILEGES;

create database zabbix character set utf8 collate utf8_bin;

CREATE USER ‘zabbix’@’10.0.0.143’ IDENTIFIED BY ‘123456’;

GRANT ALL PRIVILEGES ON zabbix.* TO ‘zabbix’@’10.0.0.143’;

FLUSH PRIVILEGES;

CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;

这条命令创建了一个名为zabbix的新数据库,并设置了字符集为utf8,排序规则为utf8_bin。这确保了数据库能够支持多语言字符,并且在比较字符串时区分大小写。

CREATE USER 'zabbix'@'10.0.0.143' IDENTIFIED BY '123456';

这条命令创建了一个名为zabbix的用户,该用户只能从IP地址10.0.0.143连接到数据库服务器,并设置了密码为123456。

GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'10.0.0.143';

这条命令授予了zabbix用户对zabbix数据库的所有权限(如SELECT, INSERT, UPDATE, DELETE等)

FLUSH PRIVILEGES;

执行这条命令是为了确保权限更改立即生效。虽然某些情况下MariaDB/MySQL会自动处理权限更新,但显式地刷新权限是一个好习惯

服务端(官网)(官网如果失败可以找阿里源或者清华源)

# rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/7/x86_64/zabbix-release-latest-7.0.el7.noarch.rpm
# yum clean all

[root@zabbix ~]$ yum install   -y   zabbix-agent  zabbix-server

# systemctl restart zabbix-agent  abbix-server
# systemctl enable zabbix-agent  abbix-server

zabbix 数据库导入数据按照顺序

[root@zabbix ~]$ mysql -uzabbix -p123456 zabbix < /usr/share/zabbix-mysql/schema.sql
[root@zabbix ~]$ mysql -uzabbix -p123456 zabbix < /usr/share/zabbix-mysql/images.sql
[root@zabbix ~]$ mysql -uzabbix -p123456 zabbix < /usr/share/zabbix-mysql/data.sql

 

[root@zabbix ~]$ mysql -h 10.0.0.26 -uzabbix -p123456 zabbix < /usr/share/zabbix-mysql/schema.sql
[root@zabbix ~]$ mysql -h 10.0.0.26 -uzabbix -p123456 zabbix < /usr/share/zabbix-mysql/images.sql
[root@zabbix ~]$ mysql -h 10.0.0.26 -uzabbix -p123456 zabbix < /usr/share/zabbix-mysql/data.sql

zabbix配置连接数据库

编辑 /etc/zabbix/zabbix_server.conf 文件,并设置数据库密码:

DBPassword=123456

 

[root@zabbix ~]$ grep ^DB /etc/zabbix_server.conf
DBHost=10.0.0.26
DBName=zabbix
DBUser=zabbix
DBPassword=123456
DBSocket=/var/lib/mysql/mysql.sock

[root@zabbix ~]$ grep ‘^[a-Z]’ /etc/zabbix_server.conf
LogFile=/var/log/zabbixsrv/zabbix_server.log
LogFileSize=0
PidFile=/run/zabbixsrv/zabbix_server.pid
DBHost=10.0.0.26
DBName=zabbix
DBUser=zabbix
DBPassword=123456
DBSocket=/var/lib/mysql/mysql.sock
Timeout=4
AlertScriptsPath=/var/lib/zabbixsrv/alertscripts
ExternalScripts=/var/lib/zabbixsrv/externalscripts
LogSlowQueries=3000
TmpDir=/var/lib/zabbixsrv/tmp
StatsAllowedIP=127.0.0.1

zabbix前端页面准备

[root@zabbix ~]$ ss -lntup |grep zabbix
tcp LISTEN 0 128 *:10050 *:* users:((“zabbix_agentd”,pid=20364,fd=4),(“zabbix_agentd”,pid=20363,fd=4),(“zabbix_agentd”,pid=20362,fd=4),(“zabbix_agentd”,pid=20361,fd=4),(“zabbix_agentd”,pid=20360,fd=4),(“zabbix_agentd”,pid=20359,fd=4),(“zabbix_agentd”,pid=20358,fd=4),(“zabbix_agentd”,pid=20357,fd=4),(“zabbix_agentd”,pid=20356,fd=4),(“zabbix_agentd”,pid=20355,fd=4),(“zabbix_agentd”,pid=20354,fd=4),(“zabbix_agentd”,pid=20353,fd=4),(“zabbix_agentd”,pid=20352,fd=4))
tcp LISTEN 0 128 [::]:10050 [::]:* users:((“zabbix_agentd”,pid=20364,fd=5),(“zabbix_agentd”,pid=20363,fd=5),(“zabbix_agentd”,pid=20362,fd=5),(“zabbix_agentd”,pid=20361,fd=5),(“zabbix_agentd”,pid=20360,fd=5),(“zabbix_agentd”,pid=20359,fd=5),(“zabbix_agentd”,pid=20358,fd=5),(“zabbix_agentd”,pid=20357,fd=5),(“zabbix_agentd”,pid=20356,fd=5),(“zabbix_agentd”,pid=20355,fd=5),(“zabbix_agentd”,pid=20354,fd=5),(“zabbix_agentd”,pid=20353,fd=5),(“zabbix_agentd”,pid=20352,fd=5))

下载配置

[root@zabbix ~]$ wget https://cdn.zabbix.com/zabbix/sources/stable/7.0/zabbix-7.0.10.tar.gz

[root@zabbix ~]$ ll

-rw-r–r– 1 root root 45000043 Feb 24 19:14 zabbix-7.0.10.tar.gz

[root@zabbix ~]$ tar xf zabbix-7.0.10.tar.gz

[root@zabbix ~]$ cd zabbix-7.0.10/
[root@zabbix ~/zabbix-7.0.10]$ mv ui/ /code/zabbix/
[root@zabbix ~/zabbix-7.0.10]$ chown -R nginx.nginx /code/zabbix/

启动 zabbix-server

6.0

下载配置

[root@zabbix ~]$ rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-latest-6.0.el7.noarch.rpm

[root@zabbix ~]$ yum clean all

[root@zabbix ~]$ yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-sql-scripts zabbix-agent2

yum install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2

导入数据库

[root@zabbix ~]$ mysql -uzabbix -p123456 zabbix < /usr/share/zabbix-mysql/schema.sql
[root@zabbix ~]$ mysql -uzabbix -p123456 zabbix < /usr/share/zabbix-mysql/images.sql
[root@zabbix ~]$ mysql -uzabbix -p123456 zabbix < /usr/share/zabbix-mysql/data.sql
[root@zabbix ~]$ mysql -uzabbix -p123456 zabbix < /usr/share/zabbix-mysql/double.sql

修改配置文件

[root@zabbix ~]$ grep ^DB /etc/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
DBSocket=/var/lib/mysql/mysql.sock

/etc/php.ini:根据要求修改

启动

[root@zabbix ~]$ systemctl start zabbix-server zabbix-agent2.service

[root@zabbix ~]$ systemctl enable zabbix-server zabbix-agent2.service

[root@zabbix ~]$ ss -lntup |grep zabbix
tcp LISTEN 0 128 *:10051 *:* users:((“zabbix_server”,pid=76359,fd=9),(“zabbix_server”,pid=76358,fd=9),(“zabbix_server”,pid=76357,fd=9),(“zabbix_server”,pid=76356,fd=9),(“zabbix_server”,pid=76355,fd=9),(“zabbix_server”,pid=76354,fd=9),(“zabbix_server”,pid=76353,fd=9),(“zabbix_server”,pid=76352,fd=9),(“zabbix_server”,pid=76351,fd=9),(“zabbix_server”,pid=76350,fd=9),(“zabbix_server”,pid=76349,fd=9),(“zabbix_server”,pid=76348,fd=9),(“zabbix_server”,pid=76347,fd=9),(“zabbix_server”,pid=76346,fd=9),(“zabbix_server”,pid=76345,fd=9),(“zabbix_server”,pid=76344,fd=9),(“zabbix_server”,pid=76343,fd=9),(“zabbix_server”,pid=76342,fd=9),(“zabbix_server”,pid=76341,fd=9),(“zabbix_server”,pid=76340,fd=9),(“zabbix_server”,pid=76339,fd=9),(“zabbix_server”,pid=76338,fd=9),(“zabbix_server”,pid=76337,fd=9),(“zabbix_server”,pid=76336,fd=9),(“zabbix_server”,pid=76335,fd=9),(“zabbix_server”,pid=76334,fd=9),(“zabbix_server”,pid=76333,fd=9),(“zabbix_server”,pid=76332,fd=9),(“zabbix_server”,pid=76331,fd=9),(“zabbix_server”,pid=76330,fd=9),(“zabbix_server”,pid=76329,fd=9),(“zabbix_server”,pid=76328,fd=9),(“zabbix_server”,pid=76327,fd=9),(“zabbix_server”,pid=76326,fd=9),(“zabbix_server”,pid=76325,fd=9),(“zabbix_server”,pid=76324,fd=9),(“zabbix_server”,pid=76323,fd=9),(“zabbix_server”,pid=76322,fd=9),(“zabbix_server”,pid=76321,fd=9),(“zabbix_server”,pid=76320,fd=9),(“zabbix_server”,pid=76319,fd=9),(“zabbix_server”,pid=76318,fd=9),(“zabbix_server”,pid=76317,fd=9),(“zabbix_server”,pid=76316,fd=9),(“zabbix_server”,pid=76314,fd=9),(“zabbix_server”,pid=76313,fd=9),(“zabbix_server”,pid=76290,fd=9))
tcp LISTEN 0 128 [::]:10050 [::]:* users:((“zabbix_agent2”,pid=76291,fd=8))
tcp LISTEN 0 128 [::]:10051 [::]:* users:((“zabbix_server”,pid=76359,fd=10),(“zabbix_server”,pid=76358,fd=10),(“zabbix_server”,pid=76357,fd=10),(“zabbix_server”,pid=76356,fd=10),(“zabbix_server”,pid=76355,fd=10),(“zabbix_server”,pid=76354,fd=10),(“zabbix_server”,pid=76353,fd=10),(“zabbix_server”,pid=76352,fd=10),(“zabbix_server”,pid=76351,fd=10),(“zabbix_server”,pid=76350,fd=10),(“zabbix_server”,pid=76349,fd=10),(“zabbix_server”,pid=76348,fd=10),(“zabbix_server”,pid=76347,fd=10),(“zabbix_server”,pid=76346,fd=10),(“zabbix_server”,pid=76345,fd=10),(“zabbix_server”,pid=76344,fd=10),(“zabbix_server”,pid=76343,fd=10),(“zabbix_server”,pid=76342,fd=10),(“zabbix_server”,pid=76341,fd=10),(“zabbix_server”,pid=76340,fd=10),(“zabbix_server”,pid=76339,fd=10),(“zabbix_server”,pid=76338,fd=10),(“zabbix_server”,pid=76337,fd=10),(“zabbix_server”,pid=76336,fd=10),(“zabbix_server”,pid=76335,fd=10),(“zabbix_server”,pid=76334,fd=10),(“zabbix_server”,pid=76333,fd=10),(“zabbix_server”,pid=76332,fd=10),(“zabbix_server”,pid=76331,fd=10),(“zabbix_server”,pid=76330,fd=10),(“zabbix_server”,pid=76329,fd=10),(“zabbix_server”,pid=76328,fd=10),(“zabbix_server”,pid=76327,fd=10),(“zabbix_server”,pid=76326,fd=10),(“zabbix_server”,pid=76325,fd=10),(“zabbix_server”,pid=76324,fd=10),(“zabbix_server”,pid=76323,fd=10),(“zabbix_server”,pid=76322,fd=10),(“zabbix_server”,pid=76321,fd=10),(“zabbix_server”,pid=76320,fd=10),(“zabbix_server”,pid=76319,fd=10),(“zabbix_server”,pid=76318,fd=10),(“zabbi_server”,pid=76317,fd=10),(“zabbix_server”,pid=76316,fd=10),(“zabbix_server”,pid=76314,fd=10),(“zabbix_server”,pid=76313,fd=10),(“zabbix_server”,pid=76290,fd=10))

修改权限

[root@zabbix ~]$ chown -R nginx:nginx /etc/zabbix/web
[root@zabbix ~]$ chmod 755 /etc/zabbix/web
[root@zabbix ~]$ chmod 644 /etc/zabbix/web/maintenance.inc.php
[root@zabbix ~]$ systemctl restart nginx php-fpm zabbix-server

7.0

[root@zabbix ~]$ wget https://cdn.zabbix.com/zabbix/sources/stable/7.0/zabbix-7.0.12.tar.gz

安装编译依赖
yum install -y net-snmp-devel libevent-devel OpenIPMI-devel libxml2-devel libcurl-devel go  openldap-devel

[root@zabbix ~]$ tar xf zabbix-7.0.12.tar.gz
[root@zabbix ~]$ cd zabbix-7.0.12/

[root@zabbix ~/zabbix-7.0.12]$

./configure \
–enable-server \
–enable-agent2 \
–with-mysql \
–with-net-snmp \
–with-libcurl \
–with-libxml2 \
–with-openssl11 \
–with-ldap

编译并安装

make -j$(nproc)
sudo make install

 

 

 

 

 

 

 

 

报错

1.configure: error: MySQL library not found

解决方案

添加 MySQL 8.0 官方仓库

下载并安装 MySQL 8.0 的仓库 RPM 包
sudo yum localinstall -y https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm

启用 MySQL 8.0 仓库

默认情况下,MySQL 8.0 仓库可能未启用。运行以下命令启用:

禁用其他 MySQL 版本仓库(如 5.7)
sudo yum-config-manager --disable mysql57-community

启用 MySQL 8.0 仓库
sudo yum-config-manager --enable mysql80-community

清除 yum 缓存并更新

清理旧缓存
sudo yum clean all
生成新缓存
sudo yum makecache

安装

yum install -y mysql-community-devel
2.configure: error: OpenSSL library version requirement for server or proxy not met (>= 1.1.0)

检查当前 OpenSSL 版本

openssl version
输出示例:OpenSSL 1.0.2k-fips  26 Jan 2017(需升级)

通过第三方仓库安装 OpenSSL 1.1.1+

CentOS 7 默认仓库不提供 OpenSSL 1.1.x,需使用 IUS 社区仓库

添加 IUS 仓库
sudo yum install -y https://repo.ius.io/ius-release-el7.rpm

安装 OpenSSL 1.1.1 及开发包
sudo yum install -y openssl11 openssl11-devel

配置环境变量指向新版本

设置符号链接(强制使用新版本)
sudo ln -sf /usr/bin/openssl11 /usr/bin/openssl
sudo ln -sf /usr/include/openssl11 /usr/include/openssl

更新动态链接库缓存
echo "/usr/lib64/openssl11" | sudo tee /etc/ld.so.conf.d/openssl11.conf
sudo ldconfig

验证版本
openssl version
输出应为:OpenSSL 1.1.1k  ...

配置 PKG_CONFIG_PATH

如果使用第三方仓库(如 IUS)安装的 OpenSSL 1.1.x,需设置 pkg-config 路径:

设置环境变量
export PKG_CONFIG_PATH=/usr/lib64/openssl11/pkgconfig:$PKG_CONFIG_PATH

验证是否生效
pkg-config --libs openssl

应输出:-L/usr/lib64/openssl11 -lssl -lcrypto

设置 PKG_CONFIG_PATH

临时生效(仅在当前终端会话有效)
export PKG_CONFIG_PATH=/usr/lib64/openssl11/pkgconfig:$PKG_CONFIG_PATH

永久生效(添加到 ~/.bashrc 或 /etc/profile)
echo 'export PKG_CONFIG_PATH=/usr/lib64/openssl11/pkgconfig:$PKG_CONFIG_PATH' | sudo tee -a /etc/profile
source /etc/profile
3.升级 Net-SNMP 到 5.8+ 版本(zabbix需要重新执行)
yum install -y  perl-devel perl-ExtUtils-Embed gcc make rpm-build libtool-ltdl-devel openssl-devel perl-devel python-devel
wget https://downloads.sourceforge.net/project/net-snmp/net-snmp/5.9.4/net-snmp-5.9.4.tar.gz
tar -zxvf net-snmp-5.9.4.tar.gz
cd net-snmp-5.9.4
./configure --prefix=/usr \
--sysconfdir=/etc \
--enable-embedded-perl \
--with-default-snmp-version=3 \
--with-security-modules=tsm \
--with-persistent-directory=/var/lib/net-snmp \
--with-logfile=/var/log/snmpd.log \
--with-mib-modules="ucd-snmp/diskio tcp-mib udp-mib" \
--disable-static
make -j$(nproc)
sudo make install
更新动态库缓存
sudo ldconfig

验证

net-snmp-config –version
5.9.4.pre2

4.libevent 版本过低
wget https://repo.huaweicloud.com/libevent/libevent-2.1.12-stable.tar.gz

 

作者 dmxsp

发表回复

您的电子邮箱地址不会被公开。