Graylog是一个功能强大的开源日志管理平台。它聚合并从服务器日志中提取重要数据,这些数据通常使用Syslog协议发送。它还允许您在Web界面中搜索和可视化日志。
在本教程中,您将在Ubuntu 16.04上安装和配置Graylog,并设置一个接收系统日志的简单输入。
在开始本教程之前,您需要:
我们需要修改Elasticsearch配置文件,以便集群名称与Graylog配置文件中设置的名称匹配。为了简单起见,我们将Elasticsearch集群名称设置为默认的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。
在这一步中,我们将安装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现已成功安装,但尚未启动。我们必须在它开始之前对其进行配置。
现在我们已经安装了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
接下来,我们需要设置root_password_sha2
值。您所需的密码需要一个SHA-256 哈希值。
再次,我们将使用sed
命令修改Graylog配置文件,这样我们就不必使用shasum
手动生成SHA-256哈希并将其粘贴到配置文件中。
执行此命令,但请在password在下面替换为您所需的默认管理员密码:
注意:命令中有一个前导空格,可防止您的密码在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
查找并更改以下行,取消注释并替换graylog_public_ip
为服务器的公共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
服务。即使当前已停止,restart命令也将启动服务器。
$ 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
您应该看到active
的状态。
如果输出报告系统未运行,请检查/var/log/syslog
是否存在任何错误。确保在安装Elasticsearch时安装了Java,并且在第三步中更改了所有值。之后再次尝试重新启动Graylog服务。
如果已使用ufw
配置防火墙,请为TCP端口9000
的防火墙添加一条例外,以便可以访问Web界面:
$ 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”的页面,如下图所示:
要查看输入页面,请单击导航栏中的“ System”下拉列表,然后选择“ Inputs”。
然后,您将看到一个包含文本Select Input的下拉框。从此下拉列表中选择Syslog UDP,然后单击Launch new input按钮。
应该出现带有表单的模态。填写以下详细信息以创建输入项:
Linux Server Logs
。0.0.0.0
(所有接口)。8514
。请注意,我们在本教程中使用端口8514
,因为端口0到1024只能由root用户使用。您可以使用1024以上的任何端口号,只要它不与任何其他服务冲突即可。单击保存。本地输入列表将更新并显示您的新输入项,如下图所示:
现在已经创建了输入项,我们可以将一些日志发送到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为Graylog服务器的专用IP。
/etc/rsyslog.d/60-graylog.conf
*.* @your_server_private_ip:8514;RSYSLOG_SyslogProtocol23Format
保存并退出编辑器。
重新启动rsyslog
服务以使更改生效。
$ sudo systemctl restart rsyslog
对要从中发送日志的每个服务器重复这些步骤。
您现在应该能够在Web界面中查看日志。单击导航栏中的“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 删除。