在CentOS 8/RHEL 8 Linux上安装带有Elasticsearch 6.x的Graylog 3

时间:2020-02-23 14:30:41  来源:igfitidea点击:

在本指南中,我们将引导我们完成使用Elasticsearch 6.x和MongoDB 4.x在CentOS 8/RHEL 8上安装Graylog的步骤。 Graylog是一个开放源代码日志管理系统,允许系统管理员/开发人员从多个日志源聚合多达TB的日志数据。它具有高度的可扩展性,可以适应任何基础架构。

Graylog带有直观的UI,快速而强大的搜索功能,警报和报告。它使我们可以将系统分为流,以简化日志搜索和适当的管理。 Graylog UI简单直观,具有完整的用户管理和对LDAP的支持。

在CentOS 8/RHEL 8 Linux上安装Graylog 3.x

Graylog需要Java,Elasticsearch和MongoDB.Elasticsearch负责日志存储。我们将从安装依赖项开始,然后是Graylog。

注意:这是Graylog在CentOS 8/RHEL 8上的单服务器安装。有关多群集设置的信息,请参阅官方Graylog文档。

配置SELinux

如果我们在系统上使用SELinux,请设置以下设置:

sudo yum -y install curl vim policycoreutils python3-policycoreutils
sudo setsebool -P httpd_can_network_connect 1
sudo semanage port -a -t http_port_t -p tcp 9000
sudo semanage port -a -t http_port_t -p tcp 9200
sudo semanage port -a -t mongod_port_t -p tcp 27017

在RHEL/CentOS 8上安装Java

由于Elasticsearch依赖Java 8,因此在安装Elasticsearch RHEL 8/CentOS 8之前,需要先将其安装在系统上。

sudo yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel

在RHEL 8/CentOS 8上安装Elasticsearch 6

添加Elasticsearch存储库:

cat <<EOF | sudo tee /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/oss-6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

然后安装Elasticsearch:

sudo yum clean all
sudo yum makecache
sudo yum -y install elasticsearch-oss

配置Elasticsearch for Graylog

我们需要修改Elasticsearch配置文件并将集群名称设置为graylog,此外,我们需要取消注释(删除第一个字符)这一行,并在配置文件中添加" action.auto_create_index:false":

要编辑的文件是/etc/elasticsearch/elasticsearch.yml。

$sudo vi /etc/elasticsearch/elasticsearch.yml
cluster.name: graylog
action.auto_create_index: false

启动并启用弹性搜索服务:

sudo systemctl daemon-reload
sudo systemctl enable --now elasticsearch

确认服务状态:

$systemctl status elasticsearch
● elasticsearch.service - Elasticsearch
   Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2019-09-13 03:53:34 EDT; 9s ago
     Docs: http://www.elastic.co
 Main PID: 16862 (java)
    Tasks: 40 (limit: 24024)
   Memory: 1.1G
   CGroup: /system.slice/elasticsearch.service
           └─16862 /bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -Des.n>

Sep 13 03:53:34 rhel8.novalocal systemd[1]: Stopped Elasticsearch.
Sep 13 03:53:34 rhel8.novalocal systemd[1]: Started Elasticsearch.

在RHEL 8/CentOS 8上安装MongoDB

MongoDB用于存储Graylog相关的配置。使用以下文章中共享的步骤将其安装在CentOS 8/RHEL 8上。

如何在RHEL 8/CentOS 8上安装MongoDB 4

安装后启用并启动mongod服务。

sudo systemctl enable --now mongod

服务状态应为运行中。

$systemctl status mongod
● mongod.service - MongoDB Database Server
   Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2019-09-13 03:57:04 EDT; 6s ago
     Docs: https://docs.mongodb.org/manual
  Process: 17397 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=0/SUCCESS)
  Process: 17395 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (code=exited, status=0/SUCCESS)
  Process: 17393 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (code=exited, status=0/SUCCESS)
  Process: 17391 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (code=exited, status=0/SUCCESS)
 Main PID: 17399 (mongod)
   Memory: 44.7M
   CGroup: /system.slice/mongod.service
           └─17399 /usr/bin/mongod -f /etc/mongod.conf

Sep 13 03:57:03 rhel8.novalocal systemd[1]: Starting MongoDB Database Server...
Sep 13 03:57:03 rhel8.novalocal mongod[17397]: 2019-09-13T03:57:03.538-0400 I STORAGE  [main] Max cache overflow file size custom option: 0
Sep 13 03:57:03 rhel8.novalocal mongod[17397]: about to fork child process, waiting until server is ready for connections.
Sep 13 03:57:03 rhel8.novalocal mongod[17397]: forked process: 17399
Sep 13 03:57:04 rhel8.novalocal mongod[17397]: child process started successfully, parent exiting
Sep 13 03:57:04 rhel8.novalocal systemd[1]: Started MongoDB Database Server.

在RHEL 8/CentOS 8上安装Graylog 3

现在安装Graylog存储库配置:

sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-3.1-repository_latest.rpm

Graylog rpm软件包在添加的存储库中可用。

sudo yum install graylog-server

我从安装中获得了版本3.1.2.

$rpm -qi graylog-server
 Name        : graylog-server
 Version     : 3.1.2
 Release     : 1
 Architecture: noarch
 Install Date: Fri 13 Sep 2019 03:58:28 AM EDT
 Group       : optional
 Size        : 131672482
 License     : GPLv3
 Signature   : RSA/SHA1, Thu 12 Sep 2019 11:14:37 AM EDT, Key ID d44c1d8db1606f22
 Source RPM  : graylog-server-3.1.2-1.src.rpm
 Build Date  : Thu 12 Sep 2019 11:14:29 AM EDT
 Build Host  : c3b660169564
 Relocations :/
 Packager    : Graylog, Inc. theitroad@localhost
 Vendor      : graylog
 URL         : https://www.graylog.org/
 Summary     : Graylog server
 Description :
 Graylog server

我们需要在/etc/graylog/server/server.conf下设置add password_secret和root_password_sha2variables。这些设置是强制性的,没有它们,Graylog将无法启动!

使用以下命令创建root_password_sha2

echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1

在" root_password_sha2"中设置生成的值

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

root_username = admin
root_password_sha2 = <Sha2Passowrd>

生成password_secret。

$sudo yum -y install pwgen
$pwgen -N 1 -s 96
ny5eSSuHe03DWW7hGOGMPaVOlbBeZX48OqvTIO7J56rBwh0r99wB1bQwecjyID9S5XrCkzVcPBG0jLPcWiit1Vz1nPse6yBq

$sudo vi /etc/graylog/server/server.conf
password_secret = ny5eSSuHe03DWW7hGOGMPaVOlbBeZX48OqvTIO7J56rBwh0r99wB1bQwecjyID9S5XrCkzVcPBG0jLPcWiit1Vz1nPse6yBq

为了能够连接到Graylog,我们应该将" http_bind_address"设置为可连接到的计算机的公共主机名或者公共IP地址。

http_bind_address = 0.0.0.0:9000

最后一步是在操作系统启动期间启用Graylog:

sudo systemctl daemon-reload
sudo systemctl enable --now graylog-server.service

在http://serverip_or_hostname:9000 /上访问Graylog仪表板

使用用户名admin和在server.conf中设置的root密码登录。

我们在CentOS 8/RHEL 8上安装了带有Elasticsearch 6.x的Graylog3.x。