如何在 Ubuntu 16.04 上使用 Graylog 2 管理日志

介绍

Graylog是一个强大的开源日志管理平台,它汇总并从服务器日志中提取重要数据,这些数据通常通过Syslog协议发送。

在本教程中,您将在Ubuntu 16.04上安装和配置Graylog,并设置一个简单的输入,接收系统日志。

前提条件

在您开始本教程之前,您将需要:

步骤 1 – 配置 Elasticsearch

我们需要修改 Elasticsearch 配置文件,以便集群名称匹配 Graylog 配置文件中的一个设置. 为了保持事情简单,我们将 Elasticsearch 集群名称设置为默认的 Graylog 名称 graylog. 您可以将其设置为任何您想要的,但请确保您更新 Graylog 配置文件以反映这种变化。

在您的编辑器中打开 Elasticsearch 配置文件:

1sudo nano /etc/elasticsearch/elasticsearch.yml

找下面的线条:

1[label /etc/elasticsearch/elasticsearch.yml]
2cluster.name: <CURRENT CLUSTER NAME>

cluster.name值更改为graylog:

1[label /etc/elasticsearch/elasticsearch.yml]
2cluster.name: graylog

保存文件并离开编辑器。

由于我们修改了配置文件,我们必须重新启动服务,以便更改生效。

1sudo systemctl restart elasticsearch

现在你已经配置了Elasticsearch,让我们继续安装Graylog。

步骤 2 – 安装 Graylog

在此步骤中,我们将安装Graylog服务器。

首先,下载包含 Graylog 存储配置的包文件. 访问 Graylog 下载页面以查找当前版本号。

1wget https://packages.graylog2.org/repo/packages/graylog-2.2-repository_latest.deb

接下来,从.deb 包文件中安装存储库配置,再一次用您下载的版本取代 2.2

1sudo dpkg -i graylog-2.2-repository_latest.deb

现在,库配置已更新,我们必须获取新的包列表。

1sudo apt-get update

接下来,安装graylog-server包:

1sudo apt-get install graylog-server

最后,使用此命令在系统启动时自动启动 Graylog:

1sudo systemctl enable graylog-server.service

Graylog 已成功安装,但尚未启动,我们必须在启动之前配置它。

步骤 3 – 配置 Graylog

现在我们已经配置了 Elasticsearch 和安装了 Graylog,我们需要在默认使用之前更改默认的 Graylog 配置文件中的几个设置。

首先,我们需要设置password_secret值。Graylog 使用此值来保护存储的用户密码。

我们将使用pwgen来生成密码,所以如果它尚未安装,就安装它:

1sudo apt install pwgen

生成密码并将其放入Graylog配置文件中,我们将使用sed程序将password_secret值注入Graylog配置文件中,这样我们就无需复制和粘贴任何值。

1sudo -E sed -i -e "s/password_secret =.*/password_secret = $(pwgen -s 128 1)/" /etc/graylog/server/server.conf

有关使用sed的更多信息,请参阅 DigitalOcean sed 教程

接下来,我们需要设置 root_password_sha2 值. 这是您想要的密码的 SHA-256 哈希。 再一次,我们将使用 sed' 命令来修改 Graylog 配置文件,这样我们就不用使用 shasum' 手动生成 SHA-256 哈希,然后将其粘贴到配置文件中。

执行此命令,但用您想要的默认管理员密码更换下面的密码:

<$>[注] **注:**命令中有一个领先空间,防止您的密码在您的Bash历史中作为简单的文本存储。

1sudo sed -i -e "s/root_password_sha2 =.*/root_password_sha2 = $(echo -n 'password' | shasum -a 256 | cut -d' ' -f1)/" /etc/graylog/server/server.conf

现在,我们需要对配置文件进行几次更改。 使用您的编辑器打开 Graylog 配置文件:

1sudo nano /etc/graylog/server/server.conf

查找并更改以下行,不要评论它们,并用您的服务器的公共IP代替graylog_public_ip

1[label /etc/graylog/server/server.conf]
2
3...
4rest_listen_uri = http://your_server_ip_or_domain:9000/api/
5
6...
7web_listen_uri = http://your_server_ip_or_domain:9000/
8
9...

保存文件并离开编辑器。

由于我们更改了配置文件,我们必须重新启动(或启动)graylog-server服务,即便它目前已经停止,重新启动的命令也会启动服务器。

1sudo systemctl restart graylog-server

接下来,检查服务器的状态。

1sudo systemctl status graylog-server

输出应该像这样的东西:

 1 graylog-server.service - Graylog server
 2   Loaded: loaded (/usr/lib/systemd/system/graylog-server.service; enabled; vendor preset: enabled)
 3   Active: active (running) since Fri 2017-03-03 20:10:34 PST; 1 months 7 days ago
 4     Docs: http://docs.graylog.org/
 5 Main PID: 1300 (graylog-server)
 6    Tasks: 191 (limit: 9830)
 7   Memory: 1.2G
 8      CPU: 14h 57min 21.475s
 9   CGroup: /system.slice/graylog-server.service
10           ├─1300 /bin/sh /usr/share/graylog-server/bin/graylog-server
11           └─1388 /usr/bin/java -Xms1g -Xmx1g -XX:NewRatio=1 -server -XX:+ResizeTLAB -XX:+UseConcMarkSweepGC -XX:+CMSCon

你应该看到活跃的状态。

如果输出报告说系统不运行,请检查 /var/log/syslog 是否有任何错误. 确保您在安装 Elasticsearch 时安装了 Java,并在步骤 3 中改变了所有值,然后 attept 重新启动 Graylog 服务。

如果您配置了ufw防火墙,则为 TCP 端口9000添加防火墙例外,以便您可以访问 Web 界面:

1sudo ufw allow 9000/tcp

一旦Graylog运行,您应该能够使用您的网页浏览器访问http://your_server_ip:9000。在重新启动Graylog-server后,您可能需要等到五分钟才能启动网页接口。

现在Graylog正在正常运行,我们可以继续处理日志。

步骤 4 – 创建一个输入

让我们将新的输入添加到 Graylog 来接收日志.输入告诉 Graylog 听哪个端口和接收日志时使用哪个协议. 我们将添加一个 Syslog UDP 输入,这是一个常用的日志协议。

当您在浏览器中访问http://your_server_ip:9000,您将看到一个登录页面。 使用admin为您的用户名,并使用您在步骤 3 中输入的密码为您的密码。

一旦登录,你会看到一个名为开始的页面,看起来像以下图像:

"Getting Started" page

要查看输入页面,请单击导航栏中的 ** 系统 ** 滚动,然后选择 ** 输入 **。

然后你会看到一个下载框,其中包含文本 选择输入. 从此下载中选择 Syslog UDP,然后单击 启动新输入按钮。

应该出现一个形式的模式. 填写以下细节来创建您的输入:

  1. 对于 Node,选择您的服务器. 它应该是列表中的唯一项目。
  2. 对于 Title,输入一个合适的标题,例如 Linux Server Logs.
  3. 对于 Bind address,使用您的服务器的私人IP。 如果您还想能够从外部服务器收集日志(不建议,因为Syslog不支持身份验证),您可以将其设置为 0.0.0.0.0(所有接口)。
  4. 对于 Port,输入 8514。 请注意,我们正在使用这个教程的端口 8514,因为端口 01024只能由根用户使用。 您可以使用任何端口号 1024以上,只要它

点击 ** 保存**.本地输入列表将更新并显示您的新输入,如下图所示:

Screenshot of local inputs

现在已经创建了输入,我们可以将一些日志发送到Graylog。

步骤 5 — 配置服务器将日志发送到 Graylog

我们已经配置了输入并在端口8514上聆听,但我们尚未向输入发送任何数据,所以我们不会看到任何结果。rsyslog是一个用于传输日志的软件工具,在Ubuntu上已预先安装,所以我们会将其配置为向Graylog发送日志。

美元(注)

如果您想从其他服务器发送数据到 Graylog,则需要为 UDP 端口 8514 添加防火墙例外。

1sudo ufw allow 8514/udp

美元

在您的编辑器中创建并打开新的rsyslog配置文件。

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

将下列行添加到文件中,将your_server_private_ip代替为您的Graylog服务器的私人IP。

1[label /etc/rsyslog.d/60-graylog.conf]
2*.* @your_server_private_ip:8514;RSYSLOG_SyslogProtocol23Format

保存和退出您的编辑器。

重启rsyslog服务,以便更改生效。

1sudo systemctl restart rsyslog

对您要发送日志的每个服务器重复这些步骤。

您现在应该能够在 Web 界面中查看您的日志。 点击导航栏中的 ** 来源** 选项卡以查看来源的图表。

Screenshot of sources

您还可以点击导航栏中的搜索选项卡以查看最新的日志。

您可以在 Graylog 搜索文档中了解有关搜索的更多信息。

结论

您现在有一个工作Graylog服务器,具有可以从其他服务器收集日志的输入源。

接下来,您可能需要检查设置仪表板、警报和流程。仪表板提供您的日志的快速概述。流程分类消息,您可以使用警报监控这些消息。

Published At
Categories with 技术
comments powered by Disqus