如何在 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 服务器提取和重新格式化日志,该服务器是可搜索的,并且可以更结构化。
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP