简介
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_secret
和 root_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