如何在 Ubuntu 22.04 上安装 Graylog 开源日志管理平台

简介

Graylog 的开源特性、丰富的功能、灵活性和可扩展性使其成为一个流行的日志管理平台。在本教程中,我将向你展示如何在 Ubuntu 22.04 上安装 Graylog,包括配置 Graylog 服务器软件包和访问 Graylog Web UI。

Graylog 是什么?

Graylog 是世界领先的集中式开源日志管理解决方案之一,用于集中、存储、可视化和实时监控 TB 级的机器数据,被 DevOps 工程师、安全分析师和应用程序开发人员广泛使用。

Graylog 用于做什么?

Graylog 是一种在技术、媒体、零售等行业广泛使用的工具,用于监控大量的网络活动,并精确定位任何影响性能的问题。它有助于从大规模的日志中获取见解,以支持更快的问题解决和业务连续性,减少停机时间。

Graylog 服务器包含以下主要组件:

  • Elasticsearch - 一种搜索和分析引擎,用于存储和索引数据。
  • MongoDB - 一种开源的 NoSQL 文档数据库,用于存储诸如用户信息之类的元数据。
  • Graylog Server - 用于捕获、存储和分析实时机器数据的主要组件。它可视化数据以发现趋势和异常,并在发生任何事件时触发警报。此外,你还可以构建报告以符合既定标准和管理需求。

现在,让我们继续进行 Graylog Ubuntu 安装说明,首先定义先决条件。

准备工作

服务器准备

必要前提:

  • 一个充满求知欲的大脑。
  • 一台 Linux 服务器(推荐腾讯云、阿里云或雨云等)。

我将以 雨云 为例,带大家创建一台自己的云服务器,以便学习本篇文章的内容。

注册链接: https://rainyun.ivwv.site

创建雨云服务器

以下步骤仅供参考,请根据实际需求选择配置。

  • 点击 云产品云服务器立即购买
  • 选择距离你较近的区域,以保证低延迟。
  • 按照自己需求选择配置,选择Ubuntu 22.04 版本,按照自己需求是否预装Docker。
  • 最后按照提示进行购买。
  • 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。
  • 我们使用 PowerShell 进行 SSH 远程连接到服务器,Win+R 打开运行窗口,输入 powershell 后点击确定。
  • 输入 ssh root@你的服务器IP 例如 ssh root@154.9.227.239 回车后,首次需要输入 yes,再次回车后即可登录服务器。
  • 到此为止,我们的云服务器就远程连接上了。

安装和配置步骤

为了在 Ubuntu 22.04 上安装 Graylog,你必须遵循一个相对简单的过程。它包括安装 OpenJDK、Elasticsearch 和 MongoDB 等先决条件软件包。之后,下载并配置 Graylog 服务器软件包,然后设置 Nginx 作为反向代理以访问 Graylog Web UI。

让我们直接开始。按照以下步骤在你的 Ubuntu 22.04 服务器上安装并运行 Graylog。

第一步:更新本地软件包索引

首先,登录到你的服务器并更新本地软件包索引。

bash 复制代码
sudo apt update

接下来,安装 Graylog 服务器安装期间需要的一组依赖项。

bash 复制代码
sudo apt install curl wget apt-transport-https

安装完成后,进入下一步。

第二步:安装 OpenJDK

在安装 Graylog 之前,我们需要安装 Java。我们将安装 OpenJDK,这是一个由 Oracle 当前维护的免费开源 Java 实现。最新版本的 Graylog - Graylog 5.2 - 至少需要 OpenJDK 17。

要安装 OpenJDK 17,请运行以下命令:

bash 复制代码
sudo apt install openjdk-17-jre-headless -y

安装完成后,你可以确认已安装的 Java 版本,如下所示。

bash 复制代码
java -version

第三步:安装 ElasticSearch

Elasticsearch 是 Graylog 安装中的另一个关键组件。它是一个分布式搜索和分析引擎,广泛用于全文搜索、日志分析、业务分析和分析安全事件。

在 Graylog 中,Elasticsearch 存储、搜索和分析来自外部来源的日志和消息。

Elasticsearch 不托管在官方 Ubuntu 存储库中。因此,我们将从 Elasticsearch 存储库安装它。为此,首先,下载并添加 Elasticsearch GPG 密钥。

bash 复制代码
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

接下来,切换到 root 用户。

bash 复制代码
sudo su -

并将 Elasticsearch 存储库添加到系统中。

bash 复制代码
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

接下来,更新本地缓存以通知系统新添加的存储库。

bash 复制代码
apt update

本地缓存更新后,使用 APT 软件包管理器从存储库安装 Elasticsearch。

bash 复制代码
apt install elasticsearch -y

安装完成后,你需要对主要的 Elasticsearch 配置文件进行一些调整。使用你喜欢的文本编辑器访问该文件。在这里,我们使用 nano 命令行编辑器。

bash 复制代码
nano /etc/elasticsearch/elasticsearch.yml

设置你喜欢的集群名称,并在其下方添加 action.auto_create_index: false 行。

bash 复制代码
cluster.name: graylog
action.auto_create_index: false

完成后,保存更改并退出。重新加载 systemd 以应用更改并启动 Elasticsearch。

bash 复制代码
systemctl daemon-reload
systemctl start elasticsearch

你可以验证 Elasticsearch 的状态,如下所示。

bash 复制代码
sudo systemctl status elasticsearch

从输出中,你可以看到 Elasticsearch 服务正在运行。

此外,请考虑启用 Elasticsearch 服务以在启动时启动。

bash 复制代码
systemctl enable elasticsearch

你可以使用 curl 命令行工具向你的节点发送 GET 请求,以查看有关 Elasticsearch 的详细信息。

bash 复制代码
curl -X GET http://localhost:9200

第四步:安装 MongoDB 服务器

在 Graylog 服务器中,MongoDB 数据库存储配置信息和用户数据。最新版本的 Graylog 需要 MongoDB 5.x 和 6.x 版本。在本指南中,我们将从 MongoDB 存储库安装 MongoDB 6.0。

因此,添加 MongoDB GPG 签名密钥。

bash 复制代码
curl -fsSL https://pgp.mongodb.com/server-6.0.asc | \\
sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/mongodb-server-6.0.gpg

接下来,将 MongoDB 存储库添加到你系统上的 sources.list.d 目录。

bash 复制代码
echo "deb [ arch=amd64,arm64 signed=/etc/apt/trusted.gpg.d/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list

将存储库添加到你的系统后,更新本地 APT 缓存。

bash 复制代码
sudo apt update

然后安装 MongoDB 数据库服务器。

bash 复制代码
sudo apt install mongodb-org -y

要验证安装的版本,请运行以下命令:

bash 复制代码
mongod --version

MongoDB 在安装后不会自动启动,因此请按如下所示启动它。

bash 复制代码
sudo systemctl start mongod

确认 MongoDB 数据库服务正在运行:

bash 复制代码
sudo systemctl status mongod

此外,请考虑启用该服务以在启动时自动启动。

bash 复制代码
sudo systemctl enable mongod

安装了 MongoDB 数据库服务器后,下一步是安装 Graylog 服务器。

第五步:安装 Graylog 服务器

我们现在准备在 Ubuntu 上安装 Graylog 服务器。默认情况下,Graylog 服务器软件包在 Ubuntu 存储库上不可用。因此,我们将从官方 Graylog 存储库安装 Graylog。

因此,下载 Graylog Debian 软件包。

bash 复制代码
wget https://packages.graylog2.org/repo/packages/graylog-5.2-repository_latest.deb

接下来,运行 dpkg 命令来运行该软件包。

bash 复制代码
sudo dpkg -i graylog-5.0-repository_latest.deb

接下来,更新本地 APT 缓存。

bash 复制代码
sudo apt-get update

最后,按如下方式安装 Graylog 服务器。

bash 复制代码
sudo apt install graylog-server -y

安装 Graylog 服务器后,你需要生成一个密钥来保护用户密码,并为管理员用户生成一个加密密码。

要生成一个用于保护用户密码的密钥,请运行以下命令:

bash 复制代码
< /dev/urandom tr -dc A-Z-a-z-0-9 | head -c${1:-96};echo;

加密密码(由字母数字字符组成)将显示在终端上。

接下来,为 Graylog 管理员登录用户生成一个加密密码。

bash 复制代码
echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\\n' | sha256sum | cut -d" " -f1

出现提示时,键入密码并按 ENTER。加密密码将显示在屏幕上。

将这两个加密密码复制并粘贴到某处,然后打开 Graylog 配置文件。

bash 复制代码
nano /etc/graylog/server/server.conf

使用生成的加密密码更新 password_secretroot_password_sha2

bash 复制代码
password_secret = hTRdp0JxNLeuxKXFeTjNYzOMpM-6zdBPalK4eKbsEhxSlxkIFgTcUBzPmhj21Hc89OmyW1NqitmROHXtgqJqwGte4t7PBwi0

root_password_sha2 = bfe4814665ab5c23359f7114d289110e7c725a1528fa2cd68c601a0a5d6c05108

接下来,使用 http_bind_address 指定 Graylog HTTP 接口将侦听的 IP 地址。默认情况下,此项设置为 localhost 或回环地址。确保将其设置为分配给你的网络接口的 IP,并指定 Graylog 侦听的端口(端口 9000)。

bash 复制代码
http_bind_address = 208.117.84.72:9000

保存更改并退出配置文件。接下来,重新加载 systemd 以通知系统所做的更改。

bash 复制代码
systemctl daemon-reload

接下来,启动 Graylog 服务。

bash 复制代码
systemctl start graylog-server

Graylog 守护程序或服务现在应该正在运行。你可以按如下所示确认这一点。

bash 复制代码
systemctl status graylog-server

请考虑启用该服务以在系统启动时启动。

bash 复制代码
systemctl enable graylog-server

第五步:配置 Nginx 作为反向代理

Graylog 本身可以充当前端,不需要 Web 服务器。但是,你可以将 Web 服务器配置为端口 80 到端口 9000(Graylog 侦听的端口)的反向代理。这也简化了为 Graylog 配置 SSL 证书的过程。

在我们的示例中,我们将使用 Nginx 作为我们首选的 Web 服务器。要安装 Nginx,请运行以下命令:

bash 复制代码
 apt install nginx

安装完成后,为 Graylog 创建一个虚拟主机文件。

bash 复制代码
nano /etc/nginx/sites-available/graylog.conf

添加以下代码行,并确保为 proxy_pass 属性指定你服务器的 IP。

server {
    listen 80;
    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://208.117.84.72:9000;
    }

}

保存更改并退出配置文件。然后,运行以下命令以验证你的 Web 服务器的配置语法是否正确。

bash 复制代码
nginx -t

如果一切正常,请启用 Nginx 虚拟主机文件。

bash 复制代码
ln -s /etc/nginx/sites-available/graylog.conf /etc/nginx/sites-enabled/

请记住删除默认的虚拟主机文件,因为这将覆盖新启用的虚拟主机配置。

bash 复制代码
rm -rf /etc/nginx/sites-enabled/default

要应用所做的更改,请重新启动 Nginx Web 服务

bash 复制代码
systemctl restart nginx

并确保它按预期运行。

bash 复制代码
systemctl status nginx

第六步:访问 Graylog Web 界面

要访问 Graylog Web 界面,请在你的 Web 浏览器上访问以下 URL。

bash 复制代码
http://server-ip

你将看到显示的网页。使用用户名 admin 和你在第 5 步中以纯文本指定的 root 用户密码登录。然后单击"登录"按钮。

登录后,你应该会看到 Graylog Web UI。从这里,你可以添加数据源以进行实时数据分析。

结论

就是这样;在本教程中,我演示了如何在 Ubuntu 22.04 服务器上安装 Graylog,包括配置。有关 Graylog 的更多信息,请查看 官方文档

雨云 - 新一代云服务提供商: https://rainyun.ivwv.site

我的博客:https://blog.ivwv.site

相关推荐
花鱼白羊3 分钟前
TCP Vegas拥塞控制算法——baseRtt 和 minRtt的区别
服务器·网络协议·tcp/ip
云川之下5 分钟前
【linux】 unshare -user -r /bin/bash命令详解
linux·bash·unshare
tntlbb19 分钟前
Ubuntu20.4 VPN+Docker代理配置
运维·ubuntu·docker·容器
热心市民运维小孙22 分钟前
Ubuntu重命名默认账户
linux·ubuntu·excel
PyAIGCMaster24 分钟前
文本模式下成功。ubuntu P104成功。
服务器·数据库·ubuntu
Jackey_Song_Odd1 小时前
解决Ubuntu下无法装载 Windows D盘的问题
linux·ubuntu
Linux运维技术栈2 小时前
Ansible(自动化运维)环境搭建及ansible-vault加密配置
运维·自动化·ansible
乔巴不是狸猫2 小时前
第11周作业
linux
星就前端叭2 小时前
【开源】一款基于Vue3 + WebRTC + Node + SRS + FFmpeg搭建的直播间项目
前端·后端·开源·webrtc
Bessssss3 小时前
centos权限大集合,覆盖多种权限类型,解惑权限后有“. + t s”问题!
linux·运维·centos