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

Graylog是一个强大的开源日志管理平台。它聚合并从服务器日志中提取重要数据,这些数据通常使用syslog协议发送。它还允许您在Web界面中搜索和可视化日志。在这...

介绍

Graylog是一个功能强大的开源日志管理平台。 它聚合并从服务器日志中提取重要数据,这些数据通常使用Syslog协议发送。 它还允许您在Web界面中搜索和可视化日志。

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

先决条件

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

第1步 - 配置弹性搜索

我们需要修改Elasticsearch配置文件,使得集群名称与Graylog配置文件中的集合名称相匹配。 为了简单起见,我们将弹性搜索集群名称设置为默认的Graylog的graylog名称。 您可以将其设置为任何您想要的,但请确保更新Graylog配置文件以反映该更改。

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

sudo nano /etc/elasticsearch/elasticsearch.yml

找到以下行:

/etc/elasticsearch/elasticsearch.yml
cluster.name: <CURRENT CLUSTER NAME>

cluster.name值更改为graylog

/etc/elasticsearch/elasticsearch.yml
cluster.name: graylog

保存文件并退出编辑器。

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

sudo systemctl restart elasticsearch

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

第2步 - 安装Graylog

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

首先,下载包含Graylog存储库配置的软件包文件。 访问Graylog下载页面以查找当前版本号。 我们将在本教程中使用2.2版本。

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

接下来,从.deb包文件安装存储库配置,再次使用您下载的版本替换2.2

sudo dpkg -i graylog-2.2-repository_latest.deb

现在存储库配置已更新,我们必须获取新的软件包列表。 执行此命令:

sudo apt-get update

接下来,安装graylog-server软件包:

sudo apt-get install graylog-server

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

sudo systemctl enable graylog-server.service

Graylog现已成功安装,但尚未启动。 我们必须先配置它才能启动它。

第3步 - 配置Graylog

现在我们已经安装了Elasticsearch并安装了Graylog,我们需要在默认的Graylog配置文件中更改几个设置,然后才能使用它。 默认情况下,Graylog的配置文件位于/etc/graylog/server/server.conf

首先,我们需要设置password_secret值。 Graylog使用此值来保护存储的用户密码。 我们将使用随机生成的128个字符的值。

我们将使用pwgen生成密码,因此如果尚未安装,则进行安装:

sudo apt install pwgen

生成密码并将其放在Graylog配置文件中。 我们将使用sed程序将password_secret值注入到Graylog配置文件中。 这样我们就不必复制粘贴任何值。 执行此命令创建秘密并将其存储在文件中:

sudo -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历史记录中。

 sudo 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配置文件:

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

查找并更改以下行,取消注释它们,并用服务器的公共IP替换graylog_public_ip 这可以是IP地址或完全限定域名。

/etc/graylog/server/server.conf

...
rest_listen_uri = http://your_server_ip_or_domain:9000/api/

...
web_listen_uri = http://your_server_ip_or_domain:9000/

...

保存文件并退出编辑器。

由于我们更改了配置文件,因此我们必须重新启动(或启动)这个graylog-server 即使当前停止,重新启动命令将启动服务器。

sudo systemctl restart graylog-server

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

sudo systemctl status graylog-server

输出应该是这样的:

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

您应该看到activeactive状态。

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

如果您使用ufw配置了防火墙,请为TCP端口9000添加防火墙异常,以便您可以访问Web界面:

sudo ufw allow 9000/tcp

一旦Graylog运行,您应该可以使用网络浏览器访问http:// your_server_ip :9000 在Web界面启动之前,您可能需要等待五分钟才能重新启动graylog-server 另外,确保MongoDB正在运行。

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

第4步 - 创建输入

我们为Graylog添加一个新的输入来接收日志。 输入告诉Graylog要收听的端口以及接收日志时要使用的协议。 我们将添加一个Syslog UDP输入,它是常用的日志记录协议。

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

登录后,您会看到一个名为“入门”的页面,如下图所示:

“入门”页面

要查看输入页面,请单击导航栏中的系统下拉列表,然后选择输入

然后,您将看到一个包含文本Select Input的下拉框。 从此下拉列表中选择Syslog UDP ,然后单击Launch new input按钮。

应该出现一个形式的模态。 填写以下详细信息以创建您的输入:

  1. 对于节点 ,选择您的服务器。 它应该是列表中唯一的项目。
  2. 对于标题 ,输入一个合适的标题,如Linux Server Logs
  3. 对于绑定地址 ,请使用您的服务器的私有IP。 如果您还想从外部服务器收集日志(不推荐,因为Syslog不支持身份验证),您可以将其设置为0.0.0.0 (所有接口)。
  4. 对于端口 ,输入8514 请注意,我们在本教程中使用端口8514 ,因为01024端口只能由root用户使用。 只要不与任何其他服务冲突,您可以使用1024以上的任何端口号。

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

本地输入屏幕截图

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

第5步 - 配置服务器将日志发送到Graylog

我们在端口8514上配置和监听输入,但是我们还没有向输入发送任何数据,所以我们不会看到任何结果。 rsyslog是用于转发日志并在Ubuntu上预安装的软件实用程序,因此我们将配置将日志发送到Graylog。 在本教程中,我们将配置运行Graylog的Ubuntu服务器将其系统日志发送到刚刚创建的输入,但可以在任何其他可能的服务器上执行这些步骤。

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

sudo ufw allow 8514/udp

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

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

将以下行添加到文件中,将your_server_private_ip your_server_private_ip为您的Graylog服务器的专用IP。

/etc/rsyslog.d/60-graylog.conf
*.* @your_server_private_ip:8514;RSYSLOG_SyslogProtocol23Format

保存并退出编辑器。

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

sudo systemctl restart rsyslog

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

您现在应该可以在Web界面中查看日志。 单击导航栏中的“ 来源 ”选项卡以查看源的图形。 它应该看起来像这样:

来源的截图

您还可以单击导航栏中的“ 搜索 ”选项卡,查看最近日志的概述。

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

结论

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

接下来,您可能需要查看设置仪表板,警报和流。 仪表板提供了您的日志的快速概述。 流将邮件分类,您可以使用警报来监控邮件。 要了解有关配置Graylog更高级功能的更多信息,可以在Graylog文档中找到说明