前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Ubuntu 14.04上安装Graylog 1.x.

如何在Ubuntu 14.04上安装Graylog 1.x.

原创
作者头像
温浪
修改2018-10-09 17:29:28
1.1K0
修改2018-10-09 17:29:28
举报

介绍

在本教程中,我们将介绍如何在Ubuntu 14.04上安装Graylog v1.3.x(有时称为Graylog2),并将其配置为在集中位置收集系统的syslog。Graylog是一个功能强大的日志管理和分析工具,具有许多用例,从监控SSH登录和异常活动到调试应用程序。它基于Elasticsearch,Java和MongoDB。

可以使用Graylog来收集和监视各种日志,但我们将本教程的范围限制为syslog收集。此外,因为我们正在演示Graylog的基础知识,所以我们将在单个服务器上安装所有组件。

关于Graylog Components

Graylog有四个主要组成部分:

  • Graylog Server节点:用作接收和处理消息的工作者,并与所有其他非服务器组件通信。它的性能取决于CPU
  • Elasticsearch节点:存储所有日志/消息。其性能取决于RAM和磁盘I / O.
  • MongoDB:存储元数据,不会遇到太多负载
  • Web界面:用户界面

以下是Graylog组件的示意图(请注意,消息是从其他服务器发送的):

本教程将实现一个非常基本的Graylog设置,所有组件都安装在同一台服务器上。对于更大的生产设置,出于性能原因,建议在不同的服务器上安装组件。

课程准备

本教程中描述的设置需要具有至少2GB RAM的Ubuntu 14.04服务器。您还需要root访问权限,没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器

如果使用RAM小于2GB的VPS,则无法启动所有Graylog组件。

我们开始安装软件吧!

安装MongoDB

MongoDB安装简单快捷。运行以下命令将MongoDB公共GPG密钥导入apt:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10

创建MongoDB源列表:

echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

更新您的apt包数据库:

sudo apt-get update

使用以下命令安装最新的稳定版MongoDB:

sudo apt-get install mongodb-org

MongoDB现在应该启动并运行。让我们继续安装Java。

安装Java

Elasticsearch需要Java,所以我们现在就安装它。我们将安装Oracle Java 8,因为这是Elastic推荐的。但是,如果您决定走这条路,它应该可以与OpenJDK一起使用。

sudo add-apt-repository ppa:webupd8team/java

更新您的apt包数据库:

sudo apt-get update

使用此命令安装最新稳定版本的Oracle Java 8(并接受弹出的许可协议):

sudo apt-get install oracle-java8-installer

现在已经安装了Java,让我们安装Elasticsearch。

安装Elasticsearch

Graylog 1.x仅适用于2.0版本的Elasticsearch,因此我们将安装Elasticsearch 1.7.x. 通过添加Elastic的包源列表,可以将Elasticsearch与包管理器一起安装。

运行以下命令将Elasticsearch公共GPG密钥导入apt:

wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

如果你的提示只是挂在那里,它可能正在等待你的用户密码(授权sudo命令)。如果是这种情况,请输入您的密码。

echo "deb http://packages.elastic.co/elasticsearch/1.7/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-1.7.x.list

更新您的apt包数据库:

sudo apt-get update

使用以下命令安装Elasticsearch:

sudo apt-get -y install elasticsearch

Elasticsearch现已安装。让我们编辑配置:

sudo vi /etc/elasticsearch/elasticsearch.yml

找到指定的cluster.name部分。取消注释,并用“graylog-development”替换默认值,如下所示:

cluster.name: graylog-development

您需要限制对Elasticsearch实例(端口9200)的外部访问,因此外人无法通过HTTP API读取您的数据或关闭您的Elasticsearch集群。找到指定的network.host行,取消注释,并将其值替换为“localhost”,使其如下所示:

network.host: localhost

保存并退出elasticsearch.yml

现在启动Elasticsearch:

sudo service elasticsearch restart

然后运行以下命令以在开启时启动Elasticsearch:

sudo update-rc.d elasticsearch defaults 95 10

片刻之后,运行以下命令以测试Elasticsearch是否正常运行:

curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'

现在Elasticsearch已启动并运行,让我们安装Graylog服务器。

安装Graylog Server

现在我们已经安装了其他所需的软件,让我们安装Graylog的服务器组件graylog-server

首先,使用以下命令将Graylog Debian软件包下载到您的主目录:

cd ~
wget https://packages.graylog2.org/repo/packages/graylog-1.3-repository-ubuntu14.04_latest.deb

然后使用以下命令将包添加到包管理器:

sudo dpkg -i graylog-1.3-repository-ubuntu14.04_latest.deb

然后使用以下命令安装graylog-server包:

sudo apt-get update
sudo apt-get install apt-transport-https
sudo apt-get install graylog-server

安装pwgen,我们将用它来生成密码密钥:

sudo apt-get install pwgen

现在我们必须配置管理员密码和密钥。密码密钥在server.conf中由password_secret参数配置。我们可以生成一个随机密钥,并使用以下两个命令将其插入到Graylog配置中:

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

通过创建一个指定shasum所需的密码,并且将其分配到root_password_sha2所述Graylog配置文件中的参数,可以分配管理员密码。使用以下命令创建所需密码的shasum,用您自己的密码替换突出显示的“密码”。sed命令为您将其插入到Graylog配置中:

PASSWORD=$(echo -n password | shasum -a 256 | awk '{print $1}')
sudo -E sed -i -e 's/root_password_sha2 =.*/root_password_sha2 = '$PASSWORD'/' /etc/graylog/server/server.conf

现在设置了管理员密码,让我们打开Graylog配置进行一些更改:

sudo vi /etc/graylog/server/server.conf

由于您在上述步骤中运行的命令,您应该看到password_secretroot_password_sha2会拥有随机字符串。

现在我们将配置rest_transport_uri,这是Graylog Web界面与服务器通信的方式。因为我们要在单个服务器上安装所有组件,所以让我们将值设置为127.0.0.1,或localhost。查找并取消注释rest_transport_uri,并更改其值,使其如下所示:

/etc/graylog/server/server.conf - 1/4

rest_transport_uri = http://127.0.0.1:12900/

接下来,因为我们只有一个Elasticsearch分片(在此服务器上运行),我们将elasticsearch_shards的值更改为1:

elasticsearch_shards = 1

接下来,将elasticsearch_cluster_name值更改为“graylog-development”(与Elasticsearchcluster.name相同):

elasticsearch_cluster_name = graylog-development

取消注释这两行以使用单播而不是多播来发现Elasticsearch实例:

/etc/graylog/server/server.conf - 4 of 4

elasticsearch_discovery_zen_ping_multicast_enabled = false
elasticsearch_discovery_zen_ping_unicast_hosts = 127.0.0.1:9300

保存并退出。现在graylog-server已配置并准备启动。

使用service命令启动Graylog服务器:

sudo start graylog-server

下一步是安装Graylog Web界面。我们现在就这样做!

安装Graylog Web

使用以下命令安装Graylog Web:

sudo apt-get install graylog-web

接下来,我们要配置Web界面的密钥,即web.conf中application.secret参数。我们将生成另一个键,就像我们使用Graylog服务器配置一样,并使用sed插入它,如下所示:

SECRET=$(pwgen -s 96 1)
sudo -E sed -i -e 's/application\.secret=""/application\.secret="'$SECRET'"/' /etc/graylog/web/web.conf

现在使用以下命令打开Web界面配置文件:

sudo vi /etc/graylog/web/web.conf

现在我们需要更新Web界面的配置以指定graylog2-server.uris参数。这是服务器REST URI的逗号分隔列表。由于我们只有一个Graylog服务器节点,因此该值应与rest_listen_uriGraylog服务器配置中的值匹配。

/etc/graylog/web/web.conf摘录

graylog2-server.uris="http://127.0.0.1:12900/"

现在配置了Graylog Web界面。启动Graylog Web界面:

sudo start graylog-web

现在我们可以使用Graylog Web界面。我们现在就这样做。

配置Graylog以接收syslog消息

登录Graylog Web界面

在您喜欢的Web浏览器中,转到服务器的公共IP地址的9000端口:

In a web browser:http://graylog_public_IP:9000/

您应该看到一个登录屏幕。输入admin您之前设置的用户名和管理员密码。

登录后,您将看到如下内容:

顶部的红色数字是通知。如果单击它,您将看到一条消息,指出您有一个没有任何运行输入的节点。让我们添加一个输入来接收UDP上的syslog消息。

创建Syslog UDP输入

要添加输入以接收系统日志消息,请单击顶部菜单中的系统下拉列表。

现在,从下拉菜单中选择Inputs

从下拉菜单中选择Syslog UDP,然后单击Launch new input按钮。

将弹出“启动新输入:Syslog UDP ”模式窗口。输入以下信息(在服务器的私有IP地址中替换绑定地址):

  • 标题: syslog
  • 港口: 8514
  • 绑定地址: graylog_private_IP

然后单击Launch

您现在应该在Local inputs部分看到一个名为“syslog”的输入(它应该有一个绿色框,旁边显示“running”),如下所示:

现在,我们的Graylog服务器已准备好从您的服务器接收端口8514上的系统日志消息。让我们配置您的服务器,立即将他们的系统日志消息发送给Graylog。

配置Rsyslog以将Syslog发送到Graylog Server

在所有客户端服务器上,要将系统日志消息发送到Graylog的服务器,请执行以下步骤。

在/etc/rsyslog.d中创建rsyslog配置文件。我们打将调用90-graylog.conf

sudo vi /etc/rsyslog.d/90-graylog.conf

在此文件中,添加以下行以配置rsyslog以将系统日志消息发送到Graylog服务器(替换graylog_private_IP为Graylog服务器的专用IP地址):

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

$template GRAYLOGRFC5424,"<%pri%>%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msg%\n"
*.* @graylog_private_IP:8514;GRAYLOGRFC5424

保存并退出。从现在开始,此文件将作为rsyslog配置的一部分加载。现在,您需要重新启动rsyslog才能使更改生效。

sudo service rsyslog restart

在要监视的所有服务器上完成rsyslog配置后,请返回Graylog Web界面。

查看您的Graylog来源

在您喜欢的Web浏览器中,转到服务器的公共IP地址的9000端口:

In a web browser:http://graylog_public_IP:9000/

单击顶部栏中的“ 来源 ”。您将看到已配置rsyslog的所有服务器的列表。

源的主机名在左侧,右侧是Graylog接收的消息数。

搜索您的Graylog数据

让Graylog收集邮件一段时间后,您将能够搜索邮件。例如,让我们搜索“sshd”,看看我们的服务器上发生了什么样的SSH活动。以下是我们结果的片段:

如您所见,我们的示例搜索结果显示了各种服务器的sshd日志,以及许多失败的root登录尝试。您的结果可能会有所不同,但它可以帮助您识别许多问题,包括未经授权的用户如何尝试访问您的服务器。

除了所有源上的基本搜索功能外,您还可以搜索特定主机的日志或特定时间范围内的日志。

例如,如果您想在事件发生后查看服务器或多个服务器的日志,则搜索Graylog中的数据非常有用。集中日志记录可以更轻松地关联相关事件,因为您无需登录多个服务器即可查看已发生的所有事件。

有关搜索栏如何工作的更多信息,请查看官方文档:Graylog搜索

结论

现在您已经设置了Graylog,请随时浏览它提供的其他功能。您可以将其他类型的日志发送到Graylog,并设置提取器(或使用logstash等软件重新格式化日志),以使日志更加结构化和可搜索。您还可以通过分离组件并添加冗余来提高性能和可用性,从而扩展Graylog环境。

更多Ubuntu教程请前往腾讯云+社区学习更多知识。


参考文献:《How To Install Graylog 1.x on Ubuntu 14.04》

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

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

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

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

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