前面提到了很多的安装方式,本文来讲讲如果将 LAMP 拆开部署。
本文环境
Zabbix 软件包分析
- zabbix-server-mysql:Zabbix server 主程序
- zabbix-web-mysql:Zabbix 前端文件
- zabbix-nginx-conf:Zabbix nginx配置文件,也属于前端文件
- zabbix-sql-scripts:Zabbix 数据结构文件,数据库使用
- zabbix-selinux-policy:Zabbix Selinux 部分,关掉 Selinux 可忽略
- zabbix-agent:Zabbix 采集数据的插件
通过上面的包可以分析出来
- Zabbix Front 需要安装 zabbix-web-mysql,zabbix-nginx-conf,zabbix-agent
- Zabbix server 需要安装 zabbix-server-mysql,zabbix-agent
- Zabbix DB 需要安装 zabbix-sql-scripts、zabbix-agent 和数据库程序
Zabbix DB
1.关闭 Selinux及防火墙
systemctl stop firewalld && systemctl disable firewalld
setenforce 0
永久关闭 Selinux,需要重启服务器
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
reboot
2.安装需要的软件
dnf -y install vim
3.安装 Zabbix 源
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm
4.安装 Zabbix 所需软件 -- zabbix-sql-scripts、zabbix-agent
dnf -y install zabbix-sql-scripts zabbix-agent
5.安装 mysql 数据库(如果是 PG 得安装 PG 的组件,自行注意)
AlmaLinux 8 自带源为 8.0,所以无需关心源的问题,直接通过 dnf 安装,其他类 CentOS 的发行版应该也一样
dnf -y install mysql-server
6.启动数据库
systemctl start mysqld && systemctl enable mysqld
7.初始化数据库
mysql_secure_installation
过程仅输入密码,其他都可以回车
8.创建数据库、用户及相关授权
create database zabbix character set utf8mb4 collate utf8mb4_bin;
create user zabbix@'192.168.20.%' identified by 'xiaoyu123';
create user zabbix@localhost identified by 'xiaoyu123';
grant all privileges on zabbix.* to zabbix@'192.168.20.%';
grant all privileges on zabbix.* to zabbix@localhost;
set global log_bin_trust_function_creators = 1;
quit;
这里由于是数据库是单独服务器,所以需要开启远程授权。
9.导入 Zabbix 相关数据文件
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
10.修改 Zabbix agent 配置文件
vim /etc/zabbix/zabbix_agentd.conf
将 Server 部分的 IP 地址改为 Zabbix Server 的地址
将 ServerActive 部分的 IP 地址改为 Zabbix Server 的地址,同时 Hostname 改成 Zabbix DB,这里的 hostname,实际自行设置,没有约束。
11.启动服务
systemctl start zabbix-agent && systemctl enable zabbix-agent
Zabbix Server 部分
1.关闭 Selinux及防火墙
systemctl stop firewalld && systemctl disable firewalld
setenforce 0
永久关闭 Selinux,需要重启服务器
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
reboot
2.安装需要的软件
dnf -y install vim
3.安装 Zabbix 源
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm
4.安装 Zabbix 所需软件 -- zabbix-server-mysql、zabbix-agent
dnf -y install zabbix-server-mysql zabbix-agent
5.修改 Zabbix 配置文件
vim /etc/zabbix/zabbix_server.conf
修改 DBHost 为 mysql 的主机 IP。
添加数据库 Zabbix 用户的密码。
6.启动相关服务
systemctl start zabbix-server zabbix-agent
systemctl enable zabbix-server zabbix-agent
7.查看状态
tail -f /var/log/zabbix/zabbix_server.log
Zabbix Front 部分
1.关闭 Selinux及防火墙
systemctl stop firewalld && systemctl disable firewalld
setenforce 0
永久关闭 Selinux,需要重启服务器
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
reboot
2.安装需要的软件
dnf -y install vim
3.安装 Zabbix 源
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm
4.安装 Zabbix 所需软件 -- zabbix-web-mysql,zabbix-nginx-conf,zabbix-agent
dnf -y install zabbix-web-mysql zabbix-nginx-conf zabbix-agent
5.修改Nginx配置文件
vim /etc/nginx/nginx.conf
将 Nginx 的主配置文件端口部分注释掉,如下图
vim /etc/nginx/conf.d/zabbix.conf
修改 zabbix nginx 配置文件,将 listen 部分注释去掉,端口号改为 80
6.修改 Zabbix agent 配置文件
vim /etc/zabbix/zabbix_agentd.conf
将 Server 部分的 IP 地址改为 Zabbix Server 的地址
将 ServerActive 部分的 IP 地址改为 Zabbix Server 的地址,同时 Hostname 改成 Zabbix DB,这里的 hostname,实际自行设置,没有约束。
7.启动相关组件
systemctl restart nginx php-fpm zabbix-agent
systemctl enable nginx php-fpm zabbix-agent
8.访问前端
通过 server ip 直接访问即可,下一步
环境检测页,下一步
数据库部分,需要将数据库主机填写对应的 IP 地址,密码需要填写,TLS 取消勾选即可下一步
时区、server 名称部分自行修改,下一步
安装前预览页,下一步
完成安装
登录界面,用户名密码依然为 Admin/zabbix
进入到首页后,出现了报错,由于 6.0 出现了 HA 的功能,所以没有在前端指定 Server 的功能,需要进入到前端配置文件修改
vim /etc/zabbix/web/zabbix.conf.php
将 ZBX_SERVER、ZBX_PORT分别填写正确的 IP 和端口号(默认10051)
再次查看前端
调整 agent 报错问题,由于Zabbix 不在本地部署,所以不再是 127.0.0.1
改完后还是有问题,需要调整 Zabbix Server 部分的配置(在 Zabbix Server 主机里调整)
vim /etc/zabbix/zabbix_agentd.conf
改为 Zabbix Server 的 IP
改为 Zabbix Server 的 IP
重启服务
systemctl restart zabbix-agent
恢复正常
之后再添加前端主机、数据库主机监控,详细见后续文章
最终效果
最后
本文篇幅较长,将前端、服务、数据库分开部署,有一定的好处,针对前端服务,可以给性能差一点的机器,而 server 和数据库则需要性能较强的机器,保证组件之间不会抢占性能,导致 zabbix 服务不可用,当然宿主机部署就另说。欢迎关注后续的文章,下期见。