介绍
Graylog是一个强大的开源日志管理平台,它汇总并从服务器日志中提取重要数据,这些数据通常通过Syslog协议发送。
在本教程中,您将在Ubuntu 16.04上安装和配置Graylog,并设置一个简单的输入,接收系统日志。
前提条件
在您开始本教程之前,您将需要:
- 一个 Ubuntu 16.04 服务器,至少有 2 GB 的 RAM,允许私人网络和非 root 用户。 可以通过遵循 Ubuntu 16.04 初始服务器设置来设置。
- Oracle JDK 8 安装,您可以通过遵循 [本 Java 安装文章]的
安装 Oracle JDK
部分(https://andsky.com/tech/tutorials/how-to-install-java-with-apt-get-on-ubuntu-16-04)。 - Elasticsearch 2.x,您可以通过遵循 Elasticsearch 安装教程的步骤 1 和 2 来安装。 Graylog 的某些版本只能与 Elasticsearch 某些版本工作。 例如, Graylog 2.x 不能与 Elasticsearch 5.x 一起工作。 请参阅 [MK
步骤 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 中输入的密码为您的密码。
一旦登录,你会看到一个名为开始
的页面,看起来像以下图像:
要查看输入页面,请单击导航栏中的 ** 系统 ** 滚动,然后选择 ** 输入 **。
然后你会看到一个下载框,其中包含文本 选择输入. 从此下载中选择 Syslog UDP,然后单击 启动新输入按钮。
应该出现一个形式的模式. 填写以下细节来创建您的输入:
- 对于 Node,选择您的服务器. 它应该是列表中的唯一项目。
- 对于 Title,输入一个合适的标题,例如
Linux Server Logs
. - 对于 Bind address,使用您的服务器的私人IP。 如果您还想能够从外部服务器收集日志(不建议,因为Syslog不支持身份验证),您可以将其设置为
0.0.0.0.0
(所有接口)。 - 对于 Port,输入
8514
。 请注意,我们正在使用这个教程的端口8514
,因为端口0
到1024
只能由根用户使用。 您可以使用任何端口号1024
以上,只要它
点击 ** 保存**.本地输入列表将更新并显示您的新输入,如下图所示:
现在已经创建了输入,我们可以将一些日志发送到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 界面中查看您的日志。 点击导航栏中的 ** 来源** 选项卡以查看来源的图表。
您还可以点击导航栏中的搜索
选项卡以查看最新的日志。
您可以在 Graylog 搜索文档中了解有关搜索的更多信息。
结论
您现在有一个工作Graylog服务器,具有可以从其他服务器收集日志的输入源。
接下来,您可能需要检查设置仪表板、警报和流程。仪表板提供您的日志的快速概述。流程分类消息,您可以使用警报监控这些消息。