当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] Graylog:集中日志收集和分析

作者:精品下载站 日期:2024-12-14 01:54:24 浏览:17 分类:玩电脑

Graylog:集中日志收集和分析


Graylog 是一个功能齐全的开源解决方案,用于集中式日志收集、存储、可视化、过滤、搜索和分析。它还可用于监控任务和发送警报。 Graylog可以从数百个网络设备收集日志和事件,包括Linux服务器、Windows服务器、网络设备或其他硬件。 Graylog 是一个功能强大的平台,可以存储数 TB 的日志,同时几乎可以立即搜索它们。本指南介绍了 Graylog 堆栈的部署及其用于日志记录任务的基本功能。

以下组件是 Graylog 堆栈的一部分:

  • Graylog Server - 可视化和配置 Web 界面。

  • MongoDB - 用于存储元数据信息的数据库。

  • ElasticSearch 或其分支 OpenSearch - 用于存储和全文搜索结构化和非结构化日志。

  • Java (OpenJDK) - 是 OpenSearch (ElasticSearch) 运行时。

为了存储日志,我们将使用 OpenSearch,它是 ELK 堆栈(Elasticsearch + Logstash + Kibana)的免费开源模拟。

如何在 Linux 系统上安装 Graylog Stack

每个版本的 Graylog 堆栈的安装说明都非常不同。因此,我们建议您在 https://go2docs.graylog.org/current/home.htm 网站上手动选择 Linux 发行版和 Graylog 版本。本指南使用 Debian 12 和 Graylog 5.2。

Graylog 堆栈可以通过 docker-compose 运行,但在这种情况下,我们将涵盖所有组件的完整部署。

我们将使用:

  • OpenJDK 17

  • OpenSearch 2.x(或Elasticsearch 7.10.2 - 唯一与 Graylog 5.2 兼容的版本)

  • MongoDB 5.x 或 6.x(目前不建议部署 MongoDB 7)

  • 对于小型安装,Graylog Server 至少需要 2GB RAM。

安装先决条件并添加 MongoDB 6 存储库:

$ sudo apt-get install gnupg curl
$ curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg --dearmor
$ echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg] http://repo.mongodb.org/apt/debian bullseye/mongodb-org/6.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
$ sudo apt-get update

现在安装 MongoDB 包:

$ sudo apt-get install -y mongodb-org

[玩转系统] Graylog:集中日志收集和分析

就我而言,在 Debian 12 上安装 Mongodb 会导致错误:

The following packages have unmet dependencies:
mongodb-org-mongos : Depends: libssl1.1 (>= 1.1.1) but it is not installable
mongodb-org-server : Depends: libssl1.1 (>= 1.1.1) but it is not installable
I had to install an additoonal libssl package:

通过安装 libssl 包来修复它。

$ sudo wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb
$ sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb

启动服务:

$ sudo systemctl daemon-reload
$ sudo systemctl enable mongod.service
$ sudo systemctl restart mongod.service
$ sudo systemctl --type=service --state=active | grep mongod

然后继续安装 OpenSearch。

$ sudo apt-get update && sudo apt-get -y install lsb-release ca-certificates curl gnupg2

添加存储库:

$ curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | sudo gpg --dearmor --batch --yes -o /usr/share/keyrings/opensearch-keyring
$ echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main" | sudo tee /etc/apt/sources.list.d/opensearch-2.x.list
$ sudo apt update

从 OpenSearch 2.12 开始,您必须在安装过程中设置管理员密码:

$ sudo OPENSEARCH_INITIAL_ADMIN_PASSWORD=$(tr -dc A-Z-a-z-0-9_@#%^-_=+ < /dev/urandom  | head -c${1:-32}) apt-get install opensearch

[玩转系统] Graylog:集中日志收集和分析

接下来,配置 OpenSearch 设置:

$ sudo nano /etc/opensearch/opensearch.yml

对于简单的单节点配置,配置以下参数即可:

cluster.name: graylog
node.name: ${HOSTNAME}
path.data: /var/lib/opensearch
path.logs: /var/log/opensearch
discovery.type: single-node
network.host: 0.0.0.0
action.auto_create_index: false
plugins.security.disabled: true
indices.query.bool.max_clause_count: 32768

配置用于发送电子邮件通知的 SMTP 服务器的设置:

transport_email_enabled = true
transport_email_hostname = smtp.gmail.com
transport_email_port = 465
transport_email_use_auth = true
transport_email_use_tls = false
transport_email_use_ssl = true
transport_email_auth_username =
transport_email_auth_password =
transport_email_subject_prefix = [graylog]
transport_email_from_email =
transport_email_web_interface_url =

然后更改默认的 Java 设置:

$ sudo nano /etc/opensearch/jvm.options

使用 Xms 和 Xmx 参数指定 Java 虚拟机可以使用多少内存。建议此处设置主机 RAM 的一半。例如,如果您的主机有 8GB RAM,请在此处分配 4GB:

-Xms4g
-Xmx4g

[玩转系统] Graylog:集中日志收集和分析

更改虚拟内存设置:

$ sudo sysctl -w vm.max_map_count=262144
$ sudo echo 'vm.max_map_count=262144' >> /etc/sysctl.conf

启动 OpenSearch 服务:

$ sudo systemctl enable --now opensearch

[玩转系统] Graylog:集中日志收集和分析

然后继续安装 Graylog 服务器。 Graylog 有两个版本。免费的 Graylog Open 和基于订阅的企业版 Graylog Operations

要安装 Graylog 打开:

$ wget https://packages.graylog2.org/repo/packages/graylog-5.2-repository_latest.deb
$ sudo dpkg -i graylog-5.2-repository_latest.deb
$ sudo apt-get update && sudo apt-get install graylog-server

为两个变量创建密码,

password_secret

root_password_sha2

。没有它们,Graylog 将无法启动。

密码password_secret的长度必须至少为64个字符:

$ pwgen -N 1 -s 96

接下来,获取 Graylog 管理员密码哈希。以下命令生成您输入的密码的哈希值:

$ echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1

将生成的password_secret和root_password_sha2值添加到/etc/graylog/server/server.conf

设置 Graylog Web 服务器 IP 地址和端口

http_bind_address

[玩转系统] Graylog:集中日志收集和分析

启动格雷日志:

$ sudo systemctl enable --now graylog-server

Graylog 配置入门

现在使用您在配置文件中指定的管理员用户和密码登录 Graylog Web 界面。但是,首次登录时将不接受该密码。

如果您查看 GrayLog 服务器日志,您会发现一条有趣的消息:

$ cat /var/log/graylog-server/server.log
It seems you are starting Graylog for the first time. To set up a fresh install, a setup interface has been started. You must log in to it to perform the initial configuration and continue.
Initial configuration is accessible at 0.0.0.0:9000, with username 'admin' and password 'eDLaYAlaeX'.
Try clicking on http://admin:[email :9000

[玩转系统] Graylog:集中日志收集和分析

使用日志文件中的临时密码进行首次登录。使用简单的初始配置向导。 Graylog数据节点模式用于配置多节点OpenSearch集群。对于单个日志主机的简单配置可以跳过此步骤。

[玩转系统] Graylog:集中日志收集和分析

然后使用 admin 用户名和密码登录 Graylog Web 界面:

[玩转系统] Graylog:集中日志收集和分析

登录后,在系统->用户和团队下创建您的 Graylog 用户。内置管理员帐户的某些设置无法自定义,因此最好创建一个单独的用户帐户。向该用户分配管理员角色并指定电子邮件地址。

现在我们需要创建输入(数据收集器)。最好为每个设备类别(Linux 服务器、计算机网络设备、Windows 主机等)创建单独的输入。

我们将为 Linux 主机创建一个 Syslog UDP 输入。指定其名称以及 Graylog 服务器接收数据的端口。将其他设置保留为默认值。

[玩转系统] Graylog:集中日志收集和分析

现在转到系统 -> 索引并为Linux设备类创建一个单独的索引。

指定名称、描述和前缀(例如,

linux_indx

)。配置保留旧日志的天数、何时删除旧索引以及最大索引大小。

[玩转系统] Graylog:集中日志收集和分析

为每个输入创建一个单独的流。 这允许来自不同设备类别的日志在不同索引之间分割。转到 -> 创建流 -> 指定流的名称并选择要使用的索引。

在流设置中,添加新规则,指定分配给该流的日志类型。在示例中,选择匹配输入 -> 选择您的Linux 输入

[玩转系统] Graylog:集中日志收集和分析

然后开始直播。

[玩转系统] Graylog:集中日志收集和分析

如何将日志从 Linux 发送到 Graylog

现在配置您的客户端设备以将事件和日志发送到 Graylog。 Graylog可以接收各种来源的数据:Filebeat、Winlogbeat、Nxlog、Syslog、Rsyslog等。

要收集日志并将其发送到 Graylog,您可以在 Linux 服务器上使用 rsyslog

$ sudo apt install rsyslog

[玩转系统] Graylog:集中日志收集和分析

$ sudo systemctl status rsyslog

rsyslog 服务运行后,配置要发送到 Graylog 的日志。

$ sudo nano /etc/rsyslog.d/60-graylog.conf

将以下行添加到文件中:

 *.*@192.168.14.146:20514;RSYSLOG_SyslogProtocol23Format

在此示例中,我们将以 syslog 格式将所有日志发送到您设置的输入端口 (20514) 上的 Graylog 服务器 (192.168.14.146)。

重新启动 rsyslog:

$ sudo systemctl restart rsyslog

在 Graylog 中搜索和分析日志

现在转到搜索 Graylog 选项卡,选择“Linux”流,您将看到过去 5 分钟内从主机收到的所有事件(时间范围可以更改)。

使用简单的过滤器来查找特定事件。 Graylog 搜索栏是交互式的。在搜索栏中,您可以选择不同的事件属性并从建议的选项中进行选择。

[玩转系统] Graylog:集中日志收集和分析

例如,要查找与主机 SSH 连接尝试失败相关的所有事件,请使用以下搜索过滤器:

source:srv\-ubun01 AND application_name:sshd AND message:Fail*

[玩转系统] Graylog:集中日志收集和分析

此查询返回满足所有三个条件的所有日志(

AND

范围)。如果未指定 AND,Graylog 假定您正在搜索以下位置的事件:

OR

模式。

该表将显示符合您的搜索条件的事件。您可以展开并探索日志详细信息。 Graylog 中的搜索过滤器使用和探索起来非常简单且直观。您始终可以展开任何事件,查看可用字段(事件属性),并使用它们的值来过滤和搜索特定事件。

Graylog 允许创建和自定义不同的仪表板,显示有关您感兴趣的事件的信息(可以包括事件计数、主机、组项目、图表或地图)。小部件用于自定义仪表板。

[玩转系统] Graylog:集中日志收集和分析

配置事件发生时的 Graylog 警报

当某些事件发生时,Graylog 可以发送自动通知(警报)。例如,当有人通过 SSH 登录我的一台服务器时,我希望 Graylog 向我发送一封电子邮件。

转到警报 -> 警报和事件。在“通知”选项卡中,添加要发送电子邮件的电子邮件地址。

Graylog 具有用于向 MS Teams 和 Slack 发送警报的内置模板。可以使用其他插件配置从 Graylog 向 WhatsApp 或 Telegram 消息发送消息。

创建查询以搜索您想要在事件定义中收到通知的事件。要跟踪 Linux 主机的 SSH 登录,请选择适当的流并指定搜索查询:

application_name:sshd AND message:Accepted password*

符合您条件的事件列表将出现在右侧预览窗格中。检查是否已找到您要查找的所有事件。如果没有,请编辑您的搜索查询。

[玩转系统] Graylog:集中日志收集和分析

剩下的就是选择通知类型 -> 电子邮件。当日志中发生特定事件时,Graylog 将发送电子邮件通知。

在本文中,我们介绍了部署和使用 Graylog 进行集中日志收集和分析的基础知识。在下一篇文章中,我们将了解如何使用 Graylog 从 Windows 服务器集中收集和搜索日志。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯