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
提示信息
Remove anonymous users? [Y/n] y
… Success!
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。
默认情况下,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 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