如何在 CentOS 7/RHEL 7 上安装 Graylog 1.3 (Graylog2)


本文将介绍如何在 CentOS 7 上配置和安装 Graylog 1.3(也称为 Graylog2)。Graylog 将机器的 syslog 收集到一个集中位置。Graylog 是一种日志管理和分析工具,可用于多种场景,例如监控 SSH 登录和异常活动、调试应用程序和日志,它使用 Elasticsearch、Java 和 MongoDB。

Graylog 功能和组件

Graylog 服务器节点 - 服务器主要接收和处理消息,并与非服务器组件通信。

Elasticsearch 节点 - 用于存储消息和日志。

MongoDB - 用于存储元数据。

Web 界面 - 这是主要的用户界面。

先决条件

出于演示目的,我们需要一台具有 2GB 内存的 CentOS 7 服务器,以及拥有 root 用户权限的用户。

安装 MongoDB

首先,我们需要将公共 GPG 密钥导入 RPM。要获取公钥,我们需要运行以下命令。

# rpm --import https://mongodb.ac.cn/static/pgp/server-3.2.asc

添加 MongoDB 存储库源。

# vi /etc/yum.repos.d/mango.repo
[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

我们将从服务器安装 MongoDB 的稳定版本。

# yum install -y mongodb-org

启动 MongoDB

# systemctl restart mangod

我们可以看到 MongoDB 正在运行。

在服务器上安装 Java

现在,我们将安装 Java,因为 Elasticsearch 和 Logstash 都需要 Java。因此,我们将在服务器上安装 Java。我们可以使用以下命令下载并安装,安装后,我们可以删除源文件。

# 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 -y localinstall jdk-8u73-linux-x64.rpm
# rm ~/jdk-8u*-linux-x64.rpm

安装 Elasticsearch

Graylog2 仅与 Elasticsearch 2.0 之前的版本兼容,因此我们将安装 Elasticsearch 1.7.x。我们可以通过将存储库添加到本地 yum 存储库中,使用以下命令安装软件包。

# vi /etc/yum.repos.d/elasticsearch.repo
[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

将存储库添加到本地 yum 后,我们需要使用以下命令安装软件包 -

# yum -y install elasticsearch

安装 Elasticsearch 后,我们需要编辑配置文件。

# vi /etc/elasticsearch/elasticsearch.yml

找到 cluster.name 部分,并将集群名称添加到 graylog-server,并找到 network.host 部分,并将本地主机添加到该部分,以便其他用户可以访问 Elasticsearch 并关闭它。

....
cluster.name: graylog-server
....
network.host: localhost

启动 Elasticsearch

# systemctl restart elasticsearch

安装 Graylog 服务器

由于我们已经安装了所有依赖项,因此现在我们将安装 Graylog 服务器。

首先,我们将使用 RPM 命令下载 Graylog 服务器软件,运行以下命令下载 .rpm 文件。

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

我们将使用以下命令安装 Graylog 服务器。

# yum -y install graylog-server

我们需要安装 pwgen 软件以在软件中生成密码和密钥。

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

管理员密码是通过使用所需的密码创建 sha256 校验和,并将结果分配给配置文件中的 root_password_sha2 参数来分配的。

以下是为管理员创建密码的命令 -

# 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

现在,我们将对“server.conf”文件进行一些更改。

# vi /etc/graylog/server/server.conf

在这里,我们将更改四个地方以运行 Graylog 服务器。

我们将取消注释 rest_transport_uri。

rest_transport_uri = http://127.0.0.1:12900/

我们将 Elasticsearch 值更改为 1,因为我们只有一个共享的 Elasticsearch 实例。

elasticsearch_shards = 1

将 elasticsearch_cluster_name 更改为 graylog-server 作为服务器名称。

elasticsearch_cluster_name = graylog-server

取消注释以下行以发现 Elasticsearch 实例以进行单播或多播。

elasticsearch_discovery_zen_ping_multicast_enabled = false
elasticsearch_discovery_zen_ping_unicast_hosts = 127.0.0.1:9300
Save the file and exit

使用以下命令启动 graylog-server。

# systemctl start graylog-server

安装 Graylog Web 服务器

以下是安装 graylog-web 服务器的命令。

# yum -y install graylog-web

现在,我们将生成 Web 界面密钥并将其添加到 application.secret 参数的 web.conf 文件中。

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

现在编辑 web.conf 文件并进行一些更改以运行 Web 界面。

# vi /etc/graylog/web/web.conf

我们需要更改 Web 界面配置,以便在配置文件中指定 graylog2-server.uri 参数。由于我们只配置了一个 Graylog 服务器节点,因此该值应与 Graylog 服务器配置文件中的 rest_listen_uri 匹配。http://127.0.0.1:12900/

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

使用以下命令启动 Graylog Web 界面 -

# systemctl restart graylog-web

配置 Graylog 以接收 Syslog 消息。

登录 Graylog Web 界面,在 Web 浏览器中打开以下链接:http://ip-address:9000/

使用我们在前面配置 Graylog 服务器步骤中设置的管理员用户名和密码登录界面。

通知顶部的红色图标表明我们有一个没有运行输入的节点。让我们添加输入以使用 UDP 接收 syslog 消息。

使用 UDP 输入创建 Syslog 输入

要添加接收 syslog 消息的输入,请单击系统 -> 选择输入 -> Syslog UDP -> 单击启动新输入按钮。

请输入 Syslog UDP 的值。

标题:Systemlog

端口:8514

绑定地址:graylog_IP_address

最后单击启动。

现在,Graylog 服务器将使用端口 8514 从客户端或服务器接收系统日志。

配置 Rsyslog 将系统日志发送到 Graylog 服务器

在客户端,我们需要进行配置,以便它使用以下命令将系统日志消息发送到 Graylog 服务器。

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

将以下命令添加到 Syslog 文件。

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

重新启动 rsyslog 以将日志发送到 Graylog 服务器。

# systemctl restart rsyslog

在 Graylog 服务器上查看 Graylog 源

在搜索中键入“sshd”以查找服务器上的 sshd 登录。

我们可以看到来自所有客户端的“sshd”日志,其中包含许多失败的登录尝试。

在配置和设置 Graylog 服务器后,我们现在可以看到日志和系统日志分析,并且 Graylog 服务器还有许多其他功能,我们可以将其他类型的日志发送到 Graylog,并使用 Graylog 服务器提取和重新格式化日志,该服务器是可搜索的,并且可以更结构化。

更新于:2019-10-18

140 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.