前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Ubuntu 16.04上使用Graylog 2管理日志

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

原创
作者头像
何处惹尘埃
发布2018-08-07 18:04:25
9500
发布2018-08-07 18:04:25
举报

介绍

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

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

准备

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

  • 一个Ubuntu 16.04服务器,具有至少2 GB的RAM,并启用了专用网络,以及非root用户。
  • 安装Oracle JDK 8
  • 安装Elasticsearch 2.x。某些版本的Graylog仅适用于某些版本的Elasticearch。本教程使用Elasticsearch 2.4.4和Graylog 2.2。
  • 安装MongoDB

第一步 - 配置Elasticsearch

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

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

代码语言:txt
复制
$ sudo nano /etc/elasticsearch/elasticsearch.yml

找到以下行:

/etc/elasticsearch/elasticsearch.yml

代码语言:txt
复制
cluster.name: <CURRENT CLUSTER NAME>

cluster.name值更改为graylog

/etc/elasticsearch/elasticsearch.yml

代码语言:txt
复制
cluster.name: graylog

保存文件并退出编辑器。

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

代码语言:txt
复制
$ sudo systemctl restart elasticsearch

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

第二步 - 安装Graylog

在这一步中,我们将安装Graylog服务器。

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

代码语言:txt
复制
$ wget https://packages.graylog2.org/repo/packages/graylog-2.2-repository_latest.deb

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

代码语言:txt
复制
$ sudo dpkg -i graylog-2.2-repository_latest.deb

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

代码语言:txt
复制
$ sudo apt-get update

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

代码语言:txt
复制
$ sudo apt-get install graylog-server

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

代码语言:txt
复制
$ sudo systemctl enable graylog-server.service

Graylog现已成功安装,但尚未启动。我们必须在它开始之前对其进行配置。

第三步 - 配置Graylog

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

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

我们将使用pwgen生成密码,如果尚未安装,请先使用以下命令安装:

代码语言:txt
复制
$ sudo apt install pwgen

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

代码语言:txt
复制
$ sudo -E sed -i -e "s/password_secret =.*/password_secret = $(pwgen -s 128 1)/" /etc/graylog/server/server.conf

接下来,我们需要设置root_password_sha2值。您所需的密码需要一个SHA-256 哈希值。

再次,我们将使用sed命令修改Graylog配置文件,这样我们就不必使用shasum手动生成SHA-256哈希并将其粘贴到配置文件中。

执行此命令,但请在password在下面替换为您所需的默认管理员密码:

注意:命令中有一个前导空格,可防止您的密码在Bash历史记录中以纯文本格式存储。

代码语言:txt
复制
$ 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配置文件:

代码语言:txt
复制
$ sudo nano /etc/graylog/server/server.conf

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

/etc/graylog/server/server.conf

代码语言:txt
复制
...
rest_listen_uri = http://your_server_ip_or_domain:9000/api/

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

...

保存文件并退出编辑器。

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

代码语言:txt
复制
$ sudo systemctl restart graylog-server

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

代码语言:txt
复制
$ sudo systemctl status graylog-server

输出结果应该如下所示:

代码语言:txt
复制
● 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

您应该看到active的状态。

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

如果已使用ufw配置防火墙,请为TCP端口9000的防火墙添加一条例外,以便可以访问Web界面:

代码语言:txt
复制
$ sudo ufw allow 9000/tcp

当Graylog运行后,您应该可以使用Web浏览器访问http://your_server_ip:9000。重启graylog-server后,您可能需要等待最多五分钟才能启动Web界面。另外,请确保MongoDB正在运行。当Graylog正常运行时,我们可以继续处理日志。

第四步 - 创建输入项

让我们在Graylog中添加一个新输入项来接收日志。输入项告诉Graylog要监听哪个端口以及接收日志时使用哪个协议。我们将添加一个Syslog UDP输入项,即一种常用的日志记录协议。

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

登录后,您会看到一个标题为“Getting Started”的页面,如下图所示:

Getting Started页面
Getting Started页面

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

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

应该出现带有表单的模态。填写以下详细信息以创建输入项:

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

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

Local inputs
Local inputs

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

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

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

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

代码语言:txt
复制
$ sudo ufw allow 8514/udp

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

代码语言:txt
复制
$ sudo nano /etc/rsyslog.d/60-graylog.conf

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

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

代码语言:txt
复制
*.* @your_server_private_ip:8514;RSYSLOG_SyslogProtocol23Format

保存并退出编辑器。

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

代码语言:txt
复制
$ sudo systemctl restart rsyslog

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

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

Sources
Sources

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

结论

您现在将有一个正常运行的Graylog服务器,其输入源可以从其他服务器收集日志。接下来,您可能希望了解如何设置仪表板,警报和流。仪表板提供日志的快速概览。Streams对邮件进行分类,您可以使用警报进行监控。如果您对如何在Ubuntu 16.04上使用Logrotate管理日志文件感兴趣,可以访问腾讯云查看相关内容。


参考文献:《How to Manage Logs with Graylog 2 on Ubuntu 16.04》

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 准备
  • 第一步 - 配置Elasticsearch
  • 第二步 - 安装Graylog
  • 第三步 - 配置Graylog
  • 第四步 - 创建输入项
  • 第五步 - 配置服务器以将日志发送到Graylog
  • 结论
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档