Debian11 安装 Zabbix
本期主要介绍在 Debian 11 环境下,安装 Zabbix 6.4 监控系统,使用 MySQL 作为后端数据库,和 Nginx 作为 Web 服务器。
通过此篇文章,你将了解如何在这个环境下,安装和配置 Zabbix 监控系统,并掌握如何设计一个可扩展、易维护的监控环境。
一、安装依赖库 NGINX、MYSQL
2.1、安装必要的依赖库
1 | sudo apt-get update |
2.2、装 Nginx 和 PHP
1 | sudo apt-get install -y nginx php-fpm php-mysql php-gd php-xml php-bcmath php-mbstring php-ldap |
2.3、安装 MySQL 数据库(如果你使用 PostgreSQL,则需要安装 PostgreSQL 数据库)
总所周知,这教程不止 Debian 可以用,Ubuntu 也可以,所以这一步有个问题,非 Debian Stretch 版用第一条命令,Stretch 版用第二条命令。
你可以使用
apt-cache search mysql-server
搜索 MYSQL 包,Debian11 搜索到的包如下:
1
2
3
4 mariadb-server-10.5 - MariaDB database server binaries
mariadb-server-core-10.5 - MariaDB database core server files
default-mysql-server - MySQL database server binaries and system database setup (metapackage)
default-mysql-server-core - MySQL database server binaries (metapackage)
在 Debian Bullseye 中,
mysql-client
包已经包含在default-mysql-server
或mariadb-server
包中。
① 安装 MYSQL
1 | 非 Stretch 版 |
Debian 开始从 Stretch 版本起,MariaDB 逐渐替代 MYSQL,这主要是由于开发者之间的一些分歧和 MySQL 的所有权变更。
MariaDB 是 MySQL 的一个社区驱动的分支,最初由 MySQL 的创始人 Michael Widenius 创建。它由一些核心 MySQL 开发人员创建和维护,并且具有与 MySQL兼 容的 API 和命令行工具,使得从 MySQL 迁移到 MariaDB 更加容易。
相比原生 MySQL,MariaDB 具有一些新的功能和性能改进,包括更好的查询优化,更好的索引性能,更好的复制,更好的安全性等等。此外,MariaDB 具有更加民主和开放的开发过程,使得社区用户可以更加轻松地参与到项目的发展中来。
虽然 MariaDB 在某些方面优于 MySQL,但这并不意味着 MariaDB 适用于所有情况。对于某些具体的应用场景,MySQL 可能仍然比MariaDB 更为适合。
不过不知道为什么我安装的是MYSQL,进去还是 MariaDB 🤣🤣🤣
② 启动 MYSQL
1 | 启动 MYSQL |
二、安装 Zabbix server、Web 前端、Agent
安装 Zabbix 存储库
1 | wget https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian11_all.deb |
由于网络原因你可能没法安装?反正我这里是没法装,我这里解决办法是为其下载添加代理。
三、配置环境
3.1、创建一个新的数据库和用户供 Zabbix 使用
⚠️ 记住将 123456
替换为你自己的密码
1 | 登录到 MySQL |
3.2、导入初始架构和数据
1 | zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix |
问题 ①:
如果报错:ERROR 1045 (28000): Access denied for user 'zabbix'@'localhost' (using password: NO)
错误原因:因为你执行的命令不包含密码。需要将 -p
选项之后的空格替换为你的密码(下面的123456换成你的zabbix用户密码)
解决方法:
1 | zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p123456 zabbix |
问题 ②:
如果报错:ERROR 1045 (28000): Access denied for user 'zabbix'@'localhost' (using password: YES)
错误原因:因为 MySQL 没有将用户授予访问 zabbix 数据库的权限。
解决方法:
1 | 登录 MySQL: |
3.3、配置 Zabbix_Server 文件
在 /etc/zabbix/zabbix_server.conf
配置文件中设置 MySQL 数据库参数:
1 | DBName=zabbix |
⚠️ 这里配置不正确会导致无法启动
3.4、配置 Nginx 文件
/etc/nginx/sites-available/default
和/etc/zabbix/nginx.conf
,这两个文件都是 Nginx Web 服务器的配置文件。/etc/nginx/sites-available/default
是 Nginx 默认的站点配置文件,其中包含服务器块和位置块等 Nginx 的基本配置格式。默认情况下,这个文件定义了 Nginx 默认网站的配置信息,可以在此文件中定义更多的虚拟主机。而
/etc/zabbix/nginx.conf
则是针对 Zabbix 监控系统设计的 Nginx 配置文件。它定义了一些特定的页面和请求的反向代理,以便更好地支持 Zabbix 前端的操作。此文件的配置主要关注于 Zabbix 的性能和安全方面。
① 方法一(推荐)、修改 etc/zabbix/nginx.conf
配置文件
取消 listen
和server_name
前面的注释即可
1 | listen 8080; |
② 方法二、修改/etc/nginx/sites-available/default
配置文件
添加以下配置:
1 | server { |
四、启动、初次访问 Zabbix
1、重启 Nginx 和 Zabbix Server
1 | sudo systemctl restart nginx |
2、初次访问设定
在启动 Nginx 和 zabbix-server 后,在地址栏中输入 Zabbix Server 的 IP 地址,后面加上 /zabbix
:
1 | 我这里端口没有改,是默认的8080,如果你改成了80或者443就不需要加端口 |
如果无法访问请关闭 SElinux、防火墙或者开放端口
① 这里有个语言包红色感叹号,不用管它,按照提示下一步即可。
② 这里我们需要再一次输入数据库密码。
③ Zabbix server name 处输入 Zabbix 服务器名称。
④ 安装完成
在登录页面中,输入默认用户名 Admin
和密码 zabbix
,然后单击 “Log in” 按钮,如果登录成功,你将看到 Zabbix Web 界面,可以通过这个界面管理和监控主机、应用、服务等资源。
五、安装语言包
我这台 Debian 是最小化安装,也没别的语言包,所以进去一堆感叹号提示找不到语言包。
① 首先执行下列命令查看已安装的语言环境
1 | locale -a |
② 安装locales
软件包
1 | sudo apt install locales |
③ 配置语言环境
1 | sudo dpkg-reconfigure locales |
在这里选择要安装的语言环境,通常我们不需要全部选择安装,选择需要的即可。
语言项非常多,通过鼠标滚轮、PageUp
或者PageDown
可以上下翻页,有的终端也可以用Home
和End
跳转到开头或者结尾,上下键逐个移动光标,翻到最下面可以找到中文语言环境。
这里我安装了 英文和中文两种语言(按下空格即可选择,前面带星号(\*
)即被选中):
安装完成后按回车需要选择使用的语言,我安装语言包只是为了 Zabbix 用,所以还是继续用 en_US
语言包安装完成后重启 Linux 系统即可生效
1 | reboot |
④ 再次登录 Zabbix Web设置语言
重启之后我们再来看,发现语言包已经被加载到了,这里选择中文即可
六、Zabbix 无法启动查错
zabbix-server 服务无法启动可能有配置的问题或者是端口被占用等问题引起的,那么多问题挨个猜怕是不行/
如果出台错误,建议按照以下步骤查找问题并解决:
① 确保zabbix_server包已经安装
1 | which zabbix_server |
输出:/usr/sbin/zabbix_server
② 运行以下命令查看详细的错误信息:
1 | 启动状态 |
③ 检查 zabbix-server 的配置文件,确保它是正确的。您可以使用以下命令检查 zabbix-server 的配置是否存在错误:
1 | zabbix_server -c /etc/zabbix/zabbix_server.conf -t item |
1 | 正确的输出:👇 |
如果有任何问题,它将输出有关配置错误的详细信息。
- 检查端口是否被占用。如果端口被占用,您需要释放端口或更改 zabbix-server 的配置文件以使用其他端口。
- 最后,检查 zabbix-server 的日志文件以获取有关它不能启动的其他详细信息。日志文件通常在/var/log/zabbix/目录下。