如何在 Debian 11 上使用 Graylog 设置集中式日志系统
本教程适用于这些操作系统版本
- Debian 11(Bullseye)
- Debian 9(Stretch)
在此页
- 先决条件
- 安装基本包依赖
- 安装 MongoDB
- 安装弹性搜索
- 安装和配置 Graylog 服务器
- 将 Nginx 设置为反向代理
- 结论
Graylog 是一个免费的开源日志管理平台,用于捕获、存储和启用数据和日志的实时分析。它是用 Java 编写的,构建在其他开源软件(如 MongoDB 和 Elasticsearch)之上。 Graylog 提供了最高效、快速和灵活的集中式日志管理平台之一。
使用 Graylog,您可以发送和分析来自几乎任何数据源的结构化和非结构化数据。
在本教程中,我们将向您展示如何在 Debian 11 系统上安装和配置 Graylog 作为集中式日志系统。此外,我们还将向您展示如何将 Nginx Web 服务器设置为 Graylog 服务器的反向代理。
先决条件
- 一台 Linux Debian 11 服务器 - 至少 4GB 内存。
- 具有 sudo 或管理员权限的非根用户。
安装基础包依赖
在本教程的第一阶段,您将安装一些基本的包依赖项,包括 Java 和 GnuPG。
在开始安装任何软件包之前,请运行下面的 apt 命令来更新和刷新您当前的 Debian 存储库。
sudo apt update
现在使用以下命令为 Graylog 安装一些包依赖项。
sudo apt install apt-transport-https openjdk-11-jre-headless uuid-runtime pwgen dirmngr gnupg wget
输入 Y 确认安装,然后按 ENTER 继续。

安装完成后进入下一步安装另一个Graylog依赖MongoDB和Elasticsearch。
安装 MongoDB
Graylog 使用 NoSQL MongoDB 数据库存储所有信息 Graylog 配置、流、警报、用户、缓存流等。您在 Graylog Web 界面上看到的所有信息都存储在 MongoDB NoSQL 数据库中,日志本身除外。当前版本的 Graylog 需要 MongoDB v4 到 v4.4。
运行以下命令将 MongoDB GPG 密钥和存储库添加到您的 Debian 服务器。
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
使用以下命令刷新您的 Debian 存储库。
sudo apt update
正如您在下面的屏幕截图中看到的,MongoDB 存储库已添加到您的 Debian 服务器。

接下来,使用下面的 apt 命令安装 MongoDB 包。
sudo apt install -y mongodb-org
MongoDB 数据库的安装将开始。

MongoDB 安装完成后,运行以下命令重新加载 systemd 管理器。这是在启动 MongoDB 服务之前需要的。
sudo systemctl daemon-reload
现在运行以下命令启用并重新启动 MongoDB 服务。 MongoDB 服务将启动并在系统启动时自动运行。
sudo systemctl enable mongod.service
sudo systemctl restart mongod.service
使用以下命令验证 MongoDB 服务。
sudo systemctl status mongod
如您在以下屏幕截图中所见,MongoDB 服务正在运行并已启用。

现在进入安装 Elasticsearch 的下一阶段。
安装弹性搜索
安装 MongoDB NoSQL 数据库后,您现在需要安装 Elasticsearch。 Graylog 服务器使用 Elasticsearch 作为搜索日志的搜索引擎。在当前版本中,Graylog 需要 Elasticsearch v6.8 或 v7.x 到 v7.10。
在安装 Elasticsearch 之前,运行以下命令将 Elasticsearch GPG 密钥和存储库添加到您的 Debian 系统。
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/oss-7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
现在更新并刷新您的 Debian 存储库。
sudo apt update
在下面的屏幕截图中,Elasticsearch 存储库已添加到 Debian 服务器。

接下来,使用下面的 apt 命令安装 Elasticsearch 包。
sudo apt install elasticsearch-oss
Elasticsearch 安装将开始。

安装完成后,运行以下命令将配置添加到Elasticsearch配置文件/etc/elasticsearch/elasticsearch.yml。以下配置将创建一个名为 \graylog\ 的新 Elasticsearch 集群,并禁用在 Elasticsearch 上自动创建索引。
sudo tee -a /etc/elasticsearch/elasticsearch.yml > /dev/null << EOT
cluster.name: graylog
action.auto_create_index: false
EOT

在启动 Elasticsearch 服务之前,运行以下命令重新加载 systemd 管理器。
sudo systemctl daemon-reload
现在运行以下命令以启用并重新启动 Elasticsearch 服务。这会将 Elasticsearch 添加到系统启动并启动服务。
sudo systemctl enable elasticsearch.service
sudo systemctl restart elasticsearch.service
最后,使用以下命令验证 Elasticsearch 服务。
sudo systemctl status elasticsearch.service
在下面的屏幕截图中,您将看到 Elasticsearch 服务正在运行并已启用。

此外,您还可以通过使用 curl 访问 Elasticsearch 来验证 Elasticsearch 安装。 Elasticsearch 在默认端口 9200 上运行,因此运行下面的 curl 命令。
curl http://localhost:9200/
现在您将看到如下输出消息。 Debian 服务器上安装了集群名为 graylog 的 Elasticsearch v7.x。

此时,您已准备好将 Graylog 服务器安装到 Debian 服务器。
安装和配置 Graylog 服务器
要开始安装 Graylog,您需要下载 Graylog 存储库 .deb 文件并使用以下命令进行安装。
wget https://packages.graylog2.org/repo/packages/graylog-4.2-repository_latest.deb
sudo dpkg -i graylog-4.2-repository_latest.deb
现在更新并刷新您的 Debian 存储库。
sudo apt update
您可以在下方看到 Graylog 存储库已添加到 Debian 服务器。

接下来,使用下面的 apt 命令将 Graylog 包安装到您的 Debian 服务器。
sudo apt install graylog-server graylog-enterprise-plugins graylog-integrations-plugins graylog-enterprise-integrations-plugins
Graylog 安装现在将开始。

安装完成后,运行以下命令生成Graylog password_secret,用于密码加密和加盐。如果您正在运行具有多个节点的 Graylog 集群,则 Graylog password_secret 必须相同。此外,Graylog password_secret 需要一个随机字符串和至少 65 的数字。
pwgen -N 1 -s 96
现在将为 Graylog password_secret 生成的随机字符串复制到您的笔记中。
接下来,运行以下命令以使用 sha256 生成加密密码。此密码将用作 Graylog 管理密码。
echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1
输入 Graylog 管理密码的密码。你会看到生成的加密密码 sha256。将加密的密码复制到您的笔记中。

接下来,使用 nano 编辑器编辑 Graylog 服务器配置 /etc/graylog/server/server.conf。
sudo nano /etc/graylog/server/server.conf
将生成的 Graylog password_secret 和 Graylog 管理密码复制并粘贴到 root_password_sha2,如下所示。
password_secret = Eqq4M8EHpKbGfgi6C05t19hJ5WmF3nkVS8yjwclYHtvwsTXRulNHEsaWuy85QUTNIUc6b2ovfRjvR7yD5kwNTPAJCCw39T3d
root_password_sha2 = 05a181f00c157f70413d33701778a6ee7d2747ac18b9c0fbb8bd71a62dd7a223
完成后保存并关闭文件。
现在运行以下命令以在启动 Graylog 服务器服务之前重新加载 systemd 管理器。
sudo systemctl daemon-reload
现在使用以下命令启用并启动 Graylog 服务器服务。
sudo systemctl enable graylog-server.service
sudo systemctl start graylog-server.service

Graylog 服务器将启动并运行,使用以下命令检查它。
sudo systemctl status graylog-server.service
在下面的屏幕截图中,您将看到 Graylog 服务器服务正在运行并已启用。

您现在已经完成了 Graylog 安装,它在默认的本地主机上运行,端口为 9000。
将 Nginx 设置为反向代理
完成 Graylog 服务器安装和配置后,现在您将安装和配置 Nginx Web 服务器作为 Graylog 服务器的反向代理。这允许您使用您的域名运行 Graylog。
使用以下命令将 Nginx 包安装到您的 Debian 服务器。
sudo apt install nginx -y
安装将开始。
安装完成后,使用 nano 编辑器创建一个新的 Nginx 虚拟主机或服务器块 /etc/nginx/sites-available/graylog.conf。
sudo nano /etc/nginx/sites-available/graylog.conf
添加以下 Nginx 配置。这将使 Nginx 成为在 http://127.0.0.1:9000/ 上运行的 Graylog 服务器的反向代理。
server
{
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name graylog.example.org;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Graylog-Server-URL http://$server_name/;
proxy_pass http://127.0.0.1:9000;
}
}
完成后保存并关闭文件。
接下来,运行以下命令以激活配置 graylog.conf。然后验证 nginx 配置。
sudo ln -s /etc/nginx/sites-available/graylog.conf /etc/nginx/sites-enabled/
sudo nginx -t
确保您收到测试成功等输出消息。
最后,使用以下命令重新启动 Nginx 服务以应用新的虚拟主机配置。
sudo systemctl restart nginx
现在打开您的网络浏览器并访问 Graylog 安装 URL 的域名。
您将在下方看到 Graylog 登录页面。使用您的密码(root_password_sha2)输入默认管理员用户,然后单击“登录”按钮。

登录后,您将看到如下所示的 Graylog 仪表板。

您现在已经完成了在 Nginx 反向代理下运行 Graylog。
结论
恭喜!您现在已经完成了 Debian 11 服务器的 Graylog 服务器安装和配置。此外,您还完成了 Nginx 配置作为 Graylog 服务器的反向代理。