在Linux上配置Graylog服务器以管理日志

时间:2020-03-05 15:26:18  来源:igfitidea点击:

在本教程中,将介绍如何配置Graylog服务器来管理大量日志(大数据)。

什么是Graylog?

Graylog是一个用于日志管理的开源平台。

它使我们可以收集和汇总来自不同目标的日志。
然后,它还使我们可以在Web界面中可视化日志。

有安装和配置Graylog服务器的准备工作,如下所示:

  • 安装openJDK
  • 安装MongoDB
  • 安装Elasticsearch

Graylog服务器的基本组件是:

MongoDB:一个数据库,用于存储配置和元信息。

Elasticsearch:Anengine,可提高搜索效率。

它还存储日志消息。
它为搜索提供了便利。
所有输入/输出操作都在此引擎中发生。

GrayLog服务器:解析器,它将收集来自不同目标的日志。

Graylog Web界面:用于使用GUI管理与日志相关的配置的仪表板。
Web Interface提供了更简单整洁的方法来处理配置。

让我们开始安装Graylog服务器。
我们将逐步进行该过程。

Graylog服务器的准备工作

首先,我们先安装Graylog服务器所需的组件。

请注意,我在本教程中使用的是Red Hat Linux,因此安装步骤显示了Yum软件包管理器。
如果使用其他发行版,则应使用发行版的程序包管理器。

安装openJDK

首先,我们将安装openJDK。
为什么需要OpenJDK?
因为,Elasticsearch基于Java。
我们也可以使用OracleJDK,但我更喜欢开放源代码版本的OpenJDK。

# yum install java-1.8.0-openjdk-headless.x86_64 -y
# yum install epel-release -y
# yum install pwgen -y

安装Elasticsearch

安装openJDK之后,让我们转向Elasticsearch。
该引擎在Graylog服务器中起着很好的作用。
Elasticsearch引擎可以存储和搜索大量数据。
这就是为什么在处理大数据时首选它的原因。

Elasticsearch满足了需要复杂搜索的应用程序的需求。
每当用户请求查询时,Elasticsearch都会在Graylog Web界面中显示该消息。

我们将使用以下命令导入GPG密钥:

# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch

由于默认的Elasticsearch存储库在Centos 7/Rhel 7中不可用,因此我们需要手动创建Repo文件,包括ElasticsearchRepo文件中的以下条目。

# vi /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=https://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

现在我们可以安装Elasticsearch软件包了。

# yum install elasticsearch -y

安装Elasticsearch软件包后,将生成elasticsearch.yml配置文件,将集群名称设置为graylog,如下所示。

# vi /etc/elasticsearch/elasticsearch.yml
cluster.name: graylog

我们都准备开始并启用elasticsearch.service

# chkconfig --add elasticsearch
# systemctl daemon-reload
# systemctl enable elasticsearch.service
# systemctl start elasticsearch.service

一旦启动并启用elasticsearch.service;下面的curl命令应该为我们提供输出,如下所示。

curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'
{ "cluster_name" : "graylog", "status" : "green", "timed_out" : false, "number_of_nodes" : 1, "number_of_data_nodes" : 1, "active_primary_shards" : 1, "active_shards" : 1, "relocating_shards" : 0, "initializing_shards" : 0, "unassigned_shards" : 0, "delayed_unassigned_shards" : 0, "number_of_pending_tasks" : 0, "number_of_in_flight_fetch" : 0, "task_max_waiting_in_queue_millis" : 0, "active_shards_percent_as_number" : 100.0 }

安装MongoDB

我们需要在MongoDB存储库文件中添加以下条目的MongoDB存储库,因为默认情况下Centos 7/Rhel 7上尚未提供该存储库。

# vi /etc/yum.repos.d/mongodb-org-3.2.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
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc

安装MongoDB软件包。

# yum install mongodb-org -y

启动并启用mongod.service。

# chkconfig --add mongod
# systemctl daemon-reload
# systemctl enable mongod.service
# systemctl start mongod.service

安装和配置Grylog服务器

完成所有准备工作并检查之后。
现在该配置和安装Graylog服务器了。
我们可以从其下载Graylog服务器的最新开放源代码版本。

# rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-2.2-repository_latest.rpm

安装Graylog服务器:

# yum install graylog-server -y

使用以下命令生成密钥。

pwgen -N 1 -s 96 D4bqf7doK2zVjFOie043Gk3NgVV1548R7imGV74MHUJa08xvwlNxWvroGjBlQd1mtAYThbym3UNUVFhMY9Wu3CFyKmd35WW

为root用户设置哈希密码。

请注意,在Graylog Web界面上注册时将使用此密码。

# echo -n YourPassword | sha256sum
e7cf3ef4f17c3999a94f2c6f612e8a888e5b1026878e4e19398b23bd38ec221a

现在,在文件server.conf中输入root密码和生成的密钥。
还要添加其他必需的参数。

# vi /etc/graylog/server/server.conf
password_secret = D4bqf7doK2zVjFOie043Gk3NgVV1548R7imGV74MHUJa08xvwlNxWvroGjBlQd1mtAYThbym3UNUVFhMY9Wu3CFyKmd35WWZ
root_password_sha2 = e7cf3ef4f17c3999a94f2c6f612e8a888e5b1026878e4e19398b23bd38ec221a
root_email = Hyman@theitroad
root_timezone=UTC
elasticsearch_discovery_zen_ping_unicast_hosts = <your-server-ip-address>:9300
elasticsearch_shards=1
script.inline: false
script.indexed: false
script.file: false

在同一文件中输入具有指定值的这两个参数,以访问Graylog Web界面。
Graylog Web界面将在Web浏览器上监听tcp端口12900和9000。

rest_listen_uri = http://192.168.1.200:12900/
web_listen_uri = http://192.168.1.200:9000/
# chkconfig --add graylog-server
# systemctl daemon-reload
# systemctl enable graylog-server.service
# systemctl start graylog-server.service

配置防火墙端口

我们之前已经看到过,我们在配置文件中提到了一些用于Web界面的端口。
我们正在借助防火墙管理这些端口。
以下是将这些tcp端口永久添加到防火墙设置中的步骤。
请执行以下命令来管理端口:

# firewall-cmd --permanent --zone=public --add-port=9000/tcp
# firewall-cmd --permanent --zone=public --add-port=12900/tcp
# firewall-cmd --permanent --zone=public --add-port=1514/tcp

在防火墙中添加端口后,请不要忘记运行以下命令,以反映我们所做的更改。

# firewall-cmd --reload

为了管理selinux策略,我们将安装policycoreutils-python packag

# yum install policycoreutils-python -y

下面的命令确保Web界面具有可访问的网络

# setsebool -P httpd_can_network_connect 1

使用semanage命令,我们将允许Graylog REST API和Elasticsearch HTTP API进入Web界面。
如果要了解semanage命令的语法,可以参考semanage联机帮助页。

# semanage port -a -t http_port_t -p tcp 9000
# semanage port -a -t http_port_t -p tcp 9200

允许MongoDB默认端口。

# semanage port -a -t mongod_port_t -p tcp 27017

访问Graylog Web界面

打开Web浏览器,然后输入URL http://your_ip_address:9000。
我们将被重定向到下一页。

要登录Graylog Web界面,请输入用户名admin和密码– YourPassword(已按照上面命令中的说明进行设置)。
Graylog网络界面的默认用户名和密码为“ admin”,“ admin”。

现在,借助出色的开源Graylog服务器,我们可以以可视方式管理应用程序/服务器日志。