一、环境准备
1、操作系统、硬件资源
我这里准备了两台虚拟机,欧拉系统,每台分配了一颗CPU两核心,4G内存。
zabbix-server:192.168.1.90
zabbix-agent: 192.168.1.91
2、关闭防火墙、selinux
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
ser -i '/SELINUX/{s/enforcing/disable/}' /etc/selinux/config
二、部署zabbix-server
操作主机:zabbix-server 192.168.1.90
可参考官方的安装文档:https://www.zabbix.com/cn/download
1、下载zabbix源码包
下载网址:https://www.zabbix.com/cn/download_sources#70LTS
2、上传zabbix源码包
两种上传方式:
1、通过Xftp工具上传
2、安装lrzsz包
安装好lrzsz软件包后,可直接将源码包拖到xshell界面中。
3、安装MySQL数据库
dnf -y install mysql-server
systemctl enable mysqld --now
4、初始化MySQL数据库
1、修改root密码
直接输入mysql登录数据库,首次登录不需要密码。
进入数据库首先修改root账户的密码,修改完成后,重新登录。
alter user 'root'@'localhost' identified by 'admin@123.';
quit;
mysql -uroot -p'admin@123.'
2、创建zabbix库和用户
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin; #创建zabbix库
mysql> create user zabbix@localhost identified by 'password'; #创建zabbix用户,设置密码
mysql> grant all privileges on zabbix.* to zabbix@localhost; #授权
mysql> set global log_bin_trust_function_creators = 1; #开启log_bin_trust_function_creators选项
mysql> quit;
3、导入初始数据
导入初始架构和数据,数据表文件在源码包中,解压zabbix源码包,将数据表文件导入到zabbix库中。
数据表文件路径:
/root/zabbix-7.0.16/database/mysql/schema.sql
/root/zabbix-7.0.16/database/mysql/images.sql
/root/zabbix-7.0.16/database/mysql/data.sql
tar -xf zabbix-7.0.16.tar.gz
cd zabbix-7.0.16.tar.gz
将三个sql文件导入数据库的zabbix库中,按顺序导入。
mysql -uzabbix -p'zabbix@123.' zabbix < /root/zabbix-7.0.16/database/mysql/schema.sql
mysql -uzabbix -p'zabbix@123.' zabbix < /root/zabbix-7.0.16/database/mysql/images.sql
mysql -uzabbix -p'zabbix@123.' zabbix < /root/zabbix-7.0.16/database/mysql/data.sql
数据导入完成后,进入数据库中,禁用log_bin_trust_function_creators选项。
mysql>set global log_bin_trust_function_creators = 0;
mysql>quit;
5、安装zabbix-server依赖
cd zabbix-7.0.16/
dnf -y install make gcc-c++ cre-devel zlib-devel libevent-devel openssl-devel mysql-devel curl-devel libcurl-devel fping
6、zabbix用户和组
groupadd zabbix
useradd -g zabbix -M -s /sbin/nologin zabbix
7、预编译
./configure --sysconfdir=/etc/zabbix/ --enable-server --enable-agent --with-mysql --with-libcurl --with-openssl --with-libpcre --with-libevent --with-zlib
./configure \
--sysconfdir=/etc \ # 指定配置文件目录为 /etc/zabbix/
--enable-server \ # 启用 Zabbix Server
--enable-agent \ # 启用 Zabbix Agent
--with-mysql \ # 启用 MySQL 支持(对应 mysql-devel)
--with-libcurl \ # 启用 Web/API 功能(对应 curl-devel)
--with-openssl \ # 启用加密通信(对应 openssl-devel)
--with-libpcre \ # 启用正则表达式(对应 pcre-devel)
--with-libevent \ # 启用高性能事件处理(对应 libevent-devel)
--with-zlib \ # 启用压缩功能(对应 zlib-devel)
如下图所示编译成功。
8、安装
make && make install
9、系统服务管理
创建service文件,为了让系统能够像管理其他系统服务一样,统一、方便、自动化地管理你的自定义程序或服务,通过systemctl 命令来管理服务。
创建zabbix-server系统管理文件
vim /usr/lib/systemd/system/zabbix-server.service
[Unit]
Description=Zabbix Server
After=network.target mysqld.service postgresql.service
[Service]
Type=simple
User=zabbix
Group=zabbix
ExecStart=/usr/local/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf
Restart=on-failure
PIDFile=/tmp/zabbix_server.pid
[Install]
WantedBy=multi-user.target
创建zabbix-agent系统管理文件
vim /usr/lib/systemd/system/zabbix-agent.service
[Unit]
Description=Zabbix Agent
After=network.target
[Service]
Type=simple
User=zabbix
Group=zabbix
ExecStart=/usr/local/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
Restart=on-failure
PIDFile=/tmp/zabbix_agentd.pid
[Install]
WantedBy=multi-user.target
10、启动zabbix-server、zabbix=agent
systemctl daemon-reload
systmectl enable zabbix-server zabbix-agent --now
systemctl status zabbix-server
systemctl status zabbix-agent
三、zabbix连接MySQL
vim /etc/zabbix/zabbix_server.conf
101 DBName=zabbix #数据库名
117 DBUser=zabbix #用户
125 DBPassword=zabbix@123. #密码
四、部署Nginx与PHP
1、安装Nginx与PHP
dnf -y install nginx php php-fpm php-mysqlnd php-bcmath php-gd php-xml php-mbstring php-ldap
systemctl enable nginx php-fpm --now
2、测试Nginx与PHP的连接
vim /usr/share/nginx/html/nginx.php
<?php
phpinfo();
?>
systemctl restart nginx php-fpm #重启服务
访问地址:192.168.1.90/nginx.php
3、测试MySQL与PHP的连接
vim /usr/share/nginx/html/mysql.php
<?php
$servername = "localhost"; // 数据库服务器地址
$username = "zabbix"; // 数据库用户名
$password = "zabbix@123."; // 数据库密码
$dbname = "zabbix"; // 数据库名
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "连接成功!";
$conn->close();
?>
systemctl restart nginx php-fpm #重启nginx与php
4、zabbix虚拟主机配置
vim /etc/nginx/conf.d/zabbix.conf
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
5、拷贝zabbix前端页面到nginx站点目录中
cp -r zabbix-7.0.10/ui/* /usr/share/nginx/html/
6、修改PHP相关文件
#修改PHP运行的用户和组
vim /etc/php-fpm.d/www.conf
24 user = nginx
26 group = nginx
#调整PHP的参数
vim /etc/php.ini
383 max_execution_time = 300
393 max_input_time = 300
672 post_max_size = 16M
#修改文件的归属关系
chown -R nginx.nginx /usr/share/nginx/html/
#重启nginx与php
systemctl restart nginx php-fpm
五、WEB页面安装zabbix
访问地址:192.168.1.90 (zabbix-server主机的IP)
检查必要条件中PHP的相关信息状态都为OK,在点击下一步。
配置数据库连接。
用户:Admin
密码:zabbix #默认密码
六、部署zabbix-agent
操作主机:zabbix-agent 192.168.1.91
1、安装zabbix-agent依赖
dnf -y install gcc-c++ make pcre-devel
2、zabbix用户和组
groupadd zabbix #创建组
useradd -g zabbix -M -s /sbin/nologin zabbix #创建虚拟用户
3、预编译
./configure --sysconfdir=/etc/zabbix/ --enable-agent
4、安装
make && make install
5、系统服务管理
创建zabbix-agent系统管理文件
vim /usr/lib/systemd/system/zabbix-agent.service
[Unit]
Description=Zabbix Agent
After=network.target
[Service]
Type=simple
User=zabbix
Group=zabbix
ExecStart=/usr/local/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
Restart=on-failure
PIDFile=/tmp/zabbix_agentd.pid
[Install]
WantedBy=multi-user.target
6、启动服务
systemctl daemon-reload
systemctl enable zabbix-agent --now
七、zabbix添加被控主机
操作主机:zabbix-agent 192.168.1.91
vim /etc/zabbix/zabbix_agentd.conf
113 Server=192.168.1.90 #zabbix-server的IP
systemctl restart zabbix-agent #重启agent
可以用zabbix自带的监控模版。
也可以用该文章顶部的zabbix自定义监控模版,下载后,导入即可使用。
点击最新数据,即可查看被控主机的数据。