Zabbix是一个开源的(遵循 GPLv2 协议)且支持中文语言的IT基础架构、服务、应用程序和资源监控系统。它使用 C/S 架构,由 Server(服务器端) 与 Agent(客户端代理) 组成。
本方案基于CentOS8系统设计,建议在RedHat/CentOS系统中使用。
1. 部署拓扑图
网络资源规划:
1、服务器端
- 主机名:Zabbix
- IP 地址:192.168.0.10:10051
- 程序:Zabbix Server
- 系统:CentOS8
2、客户端
节点名 | 主机名 | IP:PORT | 程序 | 平台 |
---|---|---|---|---|
客户端-1 | host | 192.168.0.21:10050 | Zabbix Agent | Linux |
客户端-2 | host | 192.168.0.22:10050 | Zabbix Agent | Windows |
客户端≥3 | host | 192.168.0.23:10050 | Zabbix Agent | MacOS |
2. 服务器端安装和配置
1、安装和初始化数据库。
1)安装 MySQL 或 MariaDB:
[centos@Zabbix ~ ]$ sudo dnf install mysql-server mysql
或者:
[centos@Zabbix ~ ]$ sudo dnf install mariadb-server mariadb
2)启动数据库并设置为开机自启动:
[centos@Zabbix ~ ]$ sudo systemctl start mysqld
[centos@Zabbix ~ ]$ sudo systemctl enable mysqld
或者:
[centos@Zabbix ~ ]$ sudo systemctl start mariadb
[centos@Zabbix ~ ]$ sudo systemctl enable mariadb
3)初始化数据库根管理员账号【root】的口令:
[centos@Zabbix ~ ]$ mysqladmin -u root password "password"
4)测试登录数据库:
[centos@Zabbix ~ ]$ mysql -u root -p
Enter password:
mysql>
2、安装 Web 中间件 。
[centos@Zabbix ~ ]$ sudo dnf install httpd
3、安装 Zabbix 服务器端 。
1)打开 Zabbix 官方网站下载页面,选择 Zabbix 适配的操作系统和基础环境。
2)下载并安装 Zabbix 官方 yum 源配置文件。
[centos@Zabbix ~ ]$ sudo rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
[centos@Zabbix ~ ]$ sudo dnf clean all
[centos@Zabbix ~ ]$ sudo dnf makecache
3)安装 Zabbix Server、Zabbix Web、Zabbix Agent。
[centos@Zabbix ~ ]$ sudo dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent
4)创建和配置 Zabbix 数据库。
[centos@Zabbix ~ ]$ mysql -u root -p
Enter password:
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> flush privileges;
mysql> quit;
5)导入 Zabbix 数据库结构。
[centos@Zabbix ~ ]$ zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -u zabbix -p zabbix
6)设置 Zabbix 配置文件参数。
使用文本编辑器打开配置文件:
[centos@Zabbix ~ ]$ sudo gedit /etc/zabbix/zabbix_server.conf
修改或验证文件中的以下参数并保存:
# 服务器端口号,默认值是10051。
ListenPort=10051
# 日志文件路径
LogFile=/var/log/zabbix/zabbix_server.log
# 运行时文件路径
PidFile=/var/run/zabbix/zabbix_server.pid
# Socket目录
SocketDir=/var/run/zabbix
# 数据库服务器IP或DNS。
DBHost=localhost
# 数据库名称。
DBName=zabbix
# 数据库用户账号。
DBUser=zabbix
# 数据库用户的口令。
DBPassword=password
注意:一般情况下只需要设置【DBPassword】参数即可,其他的使用默认值。
7)设置并启用 Web 中间件模块。
[centos@Zabbix ~ ]$ sudo gedit /etc/php-fpm.d/zabbix.conf
将文件中代码 "; php_value[date.timezone] = Europe/Riga" 改为如下并保存:
php_value[date.timezone] = Asia/Shanghai
注意:去掉 ";" 表示取消注释该行代码;"Asia/Shanghai" 表示中国时区。
8)修改 SELinux 配置文件,永久关闭 SELinux。
使用文本编辑器打开"/etc/selinux/config"文件:
[centos@host ~]$ sudo gedit /etc/selinux/config
将 "SELINUX" 参数设置为:"permissive" 或者 "disabled",并保存:
# enforcing - 表示启用 SELinux 安全策略。
# permissive - 表示启用 SELinux 安全策略,但不强制验证。如果执行第一步可以正常运行,则建议设置此值。
# disabled - 关闭 SELinux 安全策略,相当于没有安装 SELinux。
SELINUX=disabled
重启服务器:
[centos@host ~]$ sudo reboot
9)启动 Zabbix 相关服务,并设置为开启自启动。
[centos@Zabbix ~ ]$ sudo systemctl start zabbix-server zabbix-agent httpd php-fpm
[centos@Zabbix ~ ]$ sudo systemctl enable zabbix-server zabbix-agent httpd php-fpm
10)设置防火墙端口(CentOS8默认安装firewall防火墙),允许"80"、"10051"、"10050"端口(Zabbix 默认端口)访问服务器。
[centos@Zabbix ~ ]$ sudo firewall-cmd --zone=public --add-port=10051/tcp --permanent
[centos@Zabbix ~ ]$ sudo firewall-cmd --zone=public --add-port=10050/tcp --permanent
[centos@Zabbix ~ ]$ sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
[centos@Zabbix ~ ]$ sudo firewall-cmd --reload
4、配置 Zabbix 服务器端 。
在浏览器中输入【http://localhost/zabbix】。
5、使用 Zabbix 监控器 。
在浏览器中输入【http://localhost/zabbix】,初始用户的账号和口令分别是:【Admin】和【zabbix】,账号和口令都区分大小写。
3. 客户端安装和配置
1、打开 Zabbix 官方网站下载页面,选择 Zabbix 适配的操作系统和基础环境。
2、下载并安装 Zabbix 官方 yum 源配置文件。
[centos@host ~ ]$ sudo rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
[centos@host ~ ]$ sudo dnf clean all
[centos@host ~ ]$ sudo dnf makecache
3、安装 Zabbix Agent。
[centos@host ~ ]$ sudo dnf install zabbix-agent
4、设置 Zabbix 配置文件参数。
使用文本编辑器打开配置文件:
[centos@host ~ ]$ sudo gedit /etc/zabbix/zabbix_agentd.conf
修改或验证文件中的以下参数并保存:
# 日志文件路径
LogFile=/var/log/zabbix/zabbix_agentd.log
# 运行时文件路径
PidFile=/var/run/zabbix/zabbix_agentd.pid
# Zabbix 服务器端IP地址。
Server=192.168.0.10
# Zabbix 主动检查本机数据接收服务器IP地址。
ServerActive=192.168.0.10
# 客户端主机名称。
Hostname=192.168.0.21
# 代理端口号,默认值是10050。
ListenPort=10050
5、修改 SELinux 配置文件,永久关闭 SELinux。
使用文本编辑器打开"/etc/selinux/config"文件:
[centos@host ~]$ sudo gedit /etc/selinux/config
将 "SELINUX" 参数设置为:"permissive" 或者 "disabled",并保存:
# enforcing - 表示启用 SELinux 安全策略。
# permissive - 表示启用 SELinux 安全策略,但不强制验证。如果执行第一步可以正常运行,则建议设置此值。
# disabled - 关闭 SELinux 安全策略,相当于没有安装 SELinux。
SELINUX=disabled
重启服务器:
[centos@host ~]$ sudo reboot
6、启动 Zabbix Agent 服务,并设置为开启自启动。
[centos@host ~ ]$ sudo systemctl start zabbix-agent
[centos@host ~ ]$ sudo systemctl enable zabbix-agent
7、设置防火墙端口(CentOS8默认安装firewall防火墙),允许"10050"端口(Zabbix Agent 默认端口)访问服务器。
[centos@host ~ ]$ sudo firewall-cmd --zone=public --add-port=10050/tcp --permanent
[centos@host ~ ]$ sudo firewall-cmd --reload
注意:所有客户端都需按照以上步骤配置。
8、在 Zabbix 监控系统中配置客户端主机。
在浏览器中输入【http://localhost/zabbix】,初始用户的账号和口令分别是:【Admin】和【zabbix】,账号和口令都区分大小写。
注意:添加完成后,需要等待大约 3 分钟才能建立服务器和客户端的数据通信,之后刷新一下页面,如果发现该主机的可用性标记为下图状态,则表示客户端已受控。
常见问题:更改 Zabbix 用户的口令
[centos@Zabbix ~ ]$ mysql -u root -p
Enter password:
mysql> use zabbix;
mysql> update users set passwd=md5('password') where alias= 'Admin';