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

介绍

在本教程中,我们将介绍如何在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》

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

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

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏惨绿少年

KICKSTART无人值守安装

1.1 环境说明 [root@test ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [roo...

34400
来自专栏小狼的世界

在Centos 5.2下编译安装LAMP

首先使用Virtualbox安装一台CentOS 5.2的虚拟机,网络连接采用 Host-only Adapter,这样主客机之间可以互相访问,但是客机不能够上...

12320
来自专栏雪胖纸的玩蛇日常

python3+django2 开发易语言网络验证(下)

29830
来自专栏Hongten

hadoop2-HBase的安装和测试

https://www.cnblogs.com/hongten/p/hongten_hadoop_hbase.html

28910
来自专栏Java架构沉思录

揭秘JDBC超时机制

在遭到DDos攻击后,整个服务都垮掉了。由于第四层交换机不堪重负,网络变得无法连接,从而导致业务系统也无法正常运转。安全组很快屏蔽了所有的DDos攻击,并恢复了...

23830
来自专栏Laoqi's Linux运维专列

LAMP环境搭建小结

1. 为什么下载源码包需要到官网上去下载? 简单说就是为了安全,如果是非官方下载的源码包,有可能被别有用心的人动过手脚,毕竟是源码的,任何人都可以修改代码。 ...

42360
来自专栏散尽浮华

完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建

公司在IDC机房有两台很高配置的服务器,计划在上面部署openstack云平台虚拟化环境,用于承载后期开发测试和其他的一些对内业务。 以下对openstack的...

3.6K110
来自专栏云计算教程系列

如何在CentOS 7上安装Graylog 1.x.

在本教程中,我们将介绍如何在CentOS 7上安装Graylog v1.3.x(有时称为Graylog2),并将其配置为在集中位置收集系统的syslog。Gra...

33910
来自专栏张戈的专栏

Linux系统防CC攻击自动拉黑IP增强版Shell脚本

最新更新:张戈博客已推出功能更强大的轻量级 CC 攻击防御脚本工具 CCKiller==>传送门 前天没事写了一个防 CC 攻击的 Shell 脚本,没想到这么...

91250
来自专栏程序员同行者

ELKstack简介及环境部署

Logstash的运行依赖于Java运行环境, Logstash 1.5以上不低于java 7推荐使用最新版本的Java。由于只是运行Java程序,而不是开发,...

17240

扫码关注云+社区

领取腾讯云代金券