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

介绍

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

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

关于Graylog组件

Graylog有四个主要组件:

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

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

基本Graylog设置

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

先决条件

本教程中描述的设置需要具有至少2GB RAM的CentOS 7服务器。 您还需要根或(的第1步-4超级用户权限初始服务器设置在CentOS 7 )。

如果您使用的内存小于2GB的VPS,您将无法启动所有Graylog组件。

让我们开始安装软件!

安装MongoDB

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

sudo rpm --import https://www.mongodb.org/static/pgp/server-3.2.asc

创建MongoDB源列表:

echo '[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1' | sudo tee /etc/yum.repos.d/mongodb-org-3.2.repo

使用此命令安装最新稳定版本的MongoDB:

sudo yum install -y mongodb-org

现在启动MongoDB:

sudo systemctl restart mongod

MongoDB应该已经启动并运行了。 让我们继续安装Java。

安装Java

Elasticsearch和Logstash需要Java,所以我们现在就安装它。 我们将安装最新版本的Oracle Java 8,因为这是Elasticsearch推荐的版本。 但是,它应该与OpenJDK,如果你决定走这条路线工作正常。 遵循本节中的步骤意味着您接受Java SE的Oracle二进制许可证协议。

更改到您的主目录,并使用以下命令下载Oracle Java 8(更新73,本文撰写时的最新版本)JDK RPM:

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u73-b02/jdk-8u73-linux-x64.rpm"

然后使用此yum命令安装RPM(如果您下载了不同的版本,请在此处替换文件名):

sudo yum -y localinstall jdk-8u73-linux-x64.rpm

现在的Java应安装/usr/java/jdk1.8.0_73/jre/bin/java ,并从链接/usr/bin/java

您可以删除先前下载的归档文件:

rm ~/jdk-8u*-linux-x64.rpm

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

安装Elasticsearch

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

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

sudo rpm --import http://packages.elastic.co/GPG-KEY-elasticsearch

通过运行以下命令为Elasticsearch创建一个新的yum存储库文件:

echo '[elasticsearch-1.7]
name=Elasticsearch repository for 1.7.x packages
baseurl=http://packages.elastic.co/elasticsearch/1.7/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1' | sudo tee /etc/yum.repos.d/elasticsearch.repo

使用此命令安装Elasticsearch:

sudo yum -y install elasticsearch

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

sudo vi /etc/elasticsearch/elasticsearch.yml

查找指定部分cluster.name 取消注释它,并将默认值替换为“graylog-development”,因此它看起来像以下:

elasticsearch.yml - 1 of 2
cluster.name: graylog-development

您将要限制对Elasticsearch实例(端口9200)的外部访问,因此外部人员无法读取您的数据或通过HTTP API关闭Elasticsearch集群。 查找指定线路network.host ,取消它,并与“localhost”的,所以它看起来像这样替换它的价值:

elasticsearch.yml - 2/2
network.host: localhost

保存并退出elasticsearch.yml

现在启动Elasticsearch:

sudo systemctl restart elasticsearch

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

sudo systemctl enable elasticsearch

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

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

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

安装Graylog服务器

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

首先,使用此命令将Graylog RPM软件包下载到您的系统:

sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-1.3-repository-el7_latest.rpm

然后安装graylog-server封装以下命令:

sudo yum -y install graylog-server

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

sudo yum -y install epel-release
sudo yum -y 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

admin的密码是通过创建一个分配shasum所需的密码,并将其分配给root_password_sha2的Graylog配置文件中的参数。 使用以下命令创建所需密码的shasum,用高亮显示的“password”替换为您自己的密码。 sed命令将它插入到Graylog配置中:

PASSWORD=$(echo -n password | sha256sum | 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.1localhost 查找并取消rest_transport_uri ,并改变它的价值,所以它看起来像下面这样:

/etc/graylog/server/server.conf - 1 of 4
rest_transport_uri = http://127.0.0.1:12900/

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

/etc/graylog/server/server.conf - 2/4
elasticsearch_shards = 1

接下来的值更改elasticsearch_cluster_name为“graylog发展”(同为Elasticsearch cluster.name ):

/etc/graylog/server/server.conf - 3的4
elasticsearch_cluster_name = graylog-development

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

/etc/graylog/server/server.conf - 4的4
elasticsearch_discovery_zen_ping_multicast_enabled = false
elasticsearch_discovery_zen_ping_unicast_hosts = 127.0.0.1:9300

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

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

sudo systemctl start graylog-server

下一步是安装Graylog Web界面。 让我们现在做吧!

安装Graylog Web

使用此命令安装Graylog Web:

sudo yum -y install graylog-web

接下来,我们要配置Web界面的密钥,在application.secretweb.conf参数。 我们将生成另一个密钥,就像我们对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_uri在Graylog服务器配置(即“ http://127.0.0.1:12900/” )。

/etc/graylog/web/web.conf摘录
graylog2-server.uris="http://127.0.0.1:12900/"

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

sudo systemctl restart graylog-web

现在我们可以使用Graylog Web界面。 让我们现在做。

配置Graylog接收syslog消息

登录Graylog Web界面

在你喜欢的浏览器,去港口9000服务器的公网IP地址:

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

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

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

Graylog信息中心

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

创建Syslog UDP输入

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

现在,从下拉菜单中选择输入

从下拉菜单中选择UDP日志 ,点击启动新的输入按钮。

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

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

然后单击启动

您现在应该看到一个名为在本地输入部分“系统日志”输入(它应该有一个绿色的盒子,上面写着“跑”旁边),如下所示:

Graylog syslog输入

现在我们的Graylog服务器已准备好接收端口syslog消息8514从您的服务器。 让我们配置你的服务器,现在发送他们的syslog消息到Graylog。

配置Rsyslog将Syslog发送到Graylog服务器

在所有客户端的服务器 ,您需要的服务器发送系统日志消息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 systemctl restart rsyslog

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

查看您的Graylog源

在你喜欢的浏览器,去港口9000服务器的公网IP地址:

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

在顶栏点击来源 您将看到您配置了rsyslog的所有服务器的列表。

源的主机名位于左侧,右侧由Graylog接收的消息数。

搜索您的Graylog数据

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

Graylog示例搜索

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

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

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

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

结论

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

祝你好运!

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏