2

在Ubuntu22.04+Nginx上部署zabbix6.4

 1 month ago
source link: https://blog.51cto.com/u_14249042/10228443
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

zabbix是一个非常强大的开源监控解决方案,具体这里就不多介绍了,今天我们主要介绍如果部署

安装Zabbix Server之前的先决条件

在开始之前,

您必须拥有一个具有 sudo 权限的非 root 用户的实时 Ubuntu Server。

Ubuntu版本22.04,具体安装步骤,这里不多赘述。

第 1 步 – 更新系统

首先我们将系统更新到最新的软件包和二进制文件,打开终端并运行以下命令:

sudo apt update && sudo apt upgrade -y

此命令将更新本地包索引,并在系统上安装任何可用的更新。

第 2 步 – 检查您的网络服务器

有时Ubuntu Server安装自带默认的apache web服务器,会与Nginx冲突,所以要检查apache是否已经安装好了,运行以下命令进行检查:

sudo service apache2 status
Unit apache2.service could not be found.

如果你得到上面的输出,这意味着没有安装apache2,你可以忽略下面的步骤。

如果得到以下输出,则表示 apache2 已安装,但它处于非活动状态

● apache2.service
     Loaded: masked (Reason: Unit apache2.service is masked.)
     Active: inactive (dead)

如果您得到以下输出,则表示 apache2 已安装并处于活动状态

● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2023-03-19 13:28:40 IST; 5h 21min ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 774 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 1093 (apache2)
      Tasks: 12 (limit: 18946)
     Memory: 152.7M
        CPU: 1min 52.991s
     CGroup: /system.slice/apache2.service
             ├─1093 /usr/sbin/apache2 -k start
             ├─5782 /usr/sbin/apache2 -k start

运行以下命令以从 Ubuntu 卸载 apache2 Web 服务器

sudo service apache2 stop
sudo apt remove apache2
sudo apt autoremove -y

这些命令将从您的服务器中删除 apache,现在我们可以继续安装 Nginx。

第 3 步 – 安装 Nginx 和 MariaDB

Zabbix使用Mysql作为其数据库,因此我们必须安装MariaDB,

Nginx在Ubuntu的默认存储库中,因此可以使用apt包管理器进行安装。

执行以下命令,安装 Nginx 和 MariaDB。

sudo apt install nginx mariadb-client mariadb-server -y

此命令将安装 Nginx 作为 Web 服务器,将 MariaDB 安装为数据库服务器。

第 4 步 – 在 Ubuntu 上安装 Zabbix

Zabbix 6.4使用PHP8.1,去Zabbix网站下载Zabbix安装文件,其中将包含PHP8.1,
现在运行以下命令在Ubuntu上安装Zabbix 22.04和PHP 8.1

sudo wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb

sudo dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb

sudo apt update

sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent -y

步骤5 –设置MySQL并为Zabbix创建数据库

现在我们将为Zabbix设置MySQL,确保您已启动并运行MySQL服务器,通过运行以下命令进行确认:

sudo service mysql status

输出应如下所示:

● mariadb.service - MariaDB 10.3.38 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2023-03-19 13:48:09 UTC; 5min ago
       Docs: man:mysqld(8)
             https://mariadb.com/kb/en/library/systemd/
   Main PID: 17457 (mysqld)
     Status: "Taking your SQL requests now..."
      Tasks: 30 (limit: 4573)
     Memory: 64.7M
     CGroup: /system.slice/mariadb.service
             └─17457 /usr/sbin/mysqld

Mar 19 13:48:09 zabbix systemd[1]: Starting MariaDB 10.3.38 database server...
Mar 19 13:48:09 zabbix systemd[1]: Started MariaDB 10.3.38 database server.
Mar 19 13:48:09 zabbix /etc/mysql/debian-start[17492]: Upgrading MySQL tables if necessary.

如果看到上面的输出,说明MySQL运行良好,
现在运行以下命令为Zabbix创建一个数据库:

sudo mysql -uroot -p
#enter password if prompted
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by 'CHANGE-THIS-PASSWORD';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;

现在,通过键入以下命令将Zabbix数据库模式导入MySQL:

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix

上面的命令会将Zabbix Database模式导入MySQL,当我们的模式被导入时,我们必须在MySQL中禁用log_bin_trust_function_creators选项,运行以下命令:

sudo mysql -uroot -p
#enter password if prompted
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;

第 6 步 – 配置 Zabbix

现在我们将为Zabbix server配置数据库,
在你选择的编辑器中打开/etc/zabbix/zabbix_server.conf并找到

#DBPassword=password

并通过删除“#”并将“password”替换为您的密码来取消注释该行,如下所示:

DBPassword=你配置的数据库密码

现在使用您选择的编辑器编辑文件 /etc/zabbix/nginx.conf 取消注释

并设置监听您选择的端口,如下所示:

listen 9111;

现在启动Zabbix server和agent进程,并使其在系统启动时启动。

systemctl restart zabbix-server zabbix-agent nginx php8.1-fpm
systemctl enable zabbix-server zabbix-agent nginx php8.1-fpm

Zabbix现在应该运行在 http://your-server-ip:9111/ 你会看到一个设置屏幕,如下所示:

在Ubuntu22.04+Nginx上部署zabbix6.4_ubuntu22.04

选择您的语言,然后单击下一步:

在Ubuntu22.04+Nginx上部署zabbix6.4_zabbix6.4_02

滚动检查所有项目均为OK,如果您已按照本指南中的所有步骤操作,那么这里一切正常。

在Ubuntu22.04+Nginx上部署zabbix6.4_zabbix6.4_03

选择以下:

数据库类型:MySQL

数据库主机:localhost

数据库端口:你设置的

数据库名称:zabbix或你设置的

以纯文本形式存储凭据 plain text

用户:zabbix

密码:你设置的密码

单击下一步:

在Ubuntu22.04+Nginx上部署zabbix6.4_部署_04

输入要为此服务器指定的名称,然后选择时区和主题(您可以稍后更改),单击下一步:

在Ubuntu22.04+Nginx上部署zabbix6.4_部署_05

检查一切,如果没问题,请单击下一步:

在Ubuntu22.04+Nginx上部署zabbix6.4_部署_06

单击“完成”,您将看到如下所示的登录界面:

在Ubuntu22.04+Nginx上部署zabbix6.4_部署_07

使用Zabbix默认用户名Admin和默认密码zabbix登录

其他配置:

利用Nginx的反向代理功能将域名添加到Zabbix server:

首先,您必须通过注册商将“A”记录添加到您的域中,

您可以从此处找到如何在 GoDaddy 注册商中添加 A 记录,然后检查以下命令,

将“ zabbix.example.com”更改为您的域,

将“http://192.168.1.5:1111”更改为 http://your-server-ip:1111/,然后在您的 ubuntu 上运行此命令:

echo 'server {
    listen 80;
    listen [::]:80;

    server_name zabbix.example.com www.zabbix.example.com; #change this with your domain
        
    location / {
        proxy_pass http://192.168.1.5:1111; #change this with your IP and Port
        include proxy_params;
    }
}' | sudo tee /etc/nginx/sites-available/zabbix

完成后,运行以下命令:

sudo ln -s /etc/nginx/sites-available/zabbix /etc/nginx/sites-enabled/
sudo service nginx reload

Zabbix现在应该在 zabbix.example.com 上运行。

将SSL添加到Zabbix server域:

如要想添加SSL证书以增加域的安全性,我们将安装certbot以获得Let's Encrypt免费SSL证书,运行以下命令安装certbot和证书安装:

apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d zabbix.example.com -d www.zabbix.example.com

之后你可以通过  https://your-domain.com 访问你的zabbix,

Let's encrypt只提供3个月的证书,所以我们要添加一个cron作业,在3个月前自动续费证书,键入以下代码:

sudo crontab -e

如果出现提示,请选择您的编辑器并粘贴以下行:

@monthly certbot renew --force-renewal

保存并关闭,

您现在已经成功在Ubuntu Server上安装了Zabbix。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK