Graylog是行业领先的开源日志管理解决方案,用于收集、存储、索引和分析来自应用程序和 IT 基础设施(如服务器、路由器和防火墙)中的无数设备的实时数据。
Graylog通过组合多个搜索进行详细分析和报告,能够帮助用户更深入地了解收集的数据。此外,它还通过对来自远程源的日志进行深入分析来检测潜在威胁和可能的恶意活动。
Graylog包括以下几个部分:
- Graylog服务器——这是主服务器,用于处理日志。
- Graylog Web界面——这是一个浏览器应用程序,可让你一目了然地查看从多个端点收集的数据和日志。
- MongoDB——用于存储配置数据的NoSQL数据库服务器。
- ElasticSearch——这是一个免费的开源搜索和分析引擎,可以解析和索引来自各种来源的原始数据。
Graylog的架构接受任何类型的结构化数据,包括来自以下的网络流量和日志:
- 系统日志(TCP、UDP、AMQP、Kafka)。
- AWS – AWS日志、CloudTrail和FlowLogs。
- 网络流(UDP)。
- GELF(TCP、UDP、AMQP、Kafka)。
- ELK – Beats和Logstash。
- HTTP API的JSON路径。
在本指南中,小编将简单介绍在RHEL 8和基于RHEL的发行版(如AlmaLinux、CentOS Stream和Rocky Linux )上安装Graylog日志管理工具的详细过程。
第 1 步:安装EPEL存储库和必备软件包
首先,需要一些必要的软件包,这些软件包对你应该会有所帮助。首先,安装EPEL存储库,它为RHEL和RHEL发行版提供了一组丰富的软件包。
$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
接下来,安装以下所需的软件包,命令如下:
$ sudo dnf install -y pwgen wget curl perl-Digest-SHA
第 2 步:在RHEL中安装Java (OpenJDK)
安装Graylog的先决条件之一是Java 8及更高版本。在这里将安装Java的最新LTS版本,即Java 11,它将由OpenJDK 11提供。
因此,运行以下命令来安装OpenJDK:
$ sudo dnf install java-11-openjdk java-11-openjdk-devel -y
这将安装Java依赖项和许多其他依赖项。安装完成后,验证安装的版本。
$ java -version
第 3 步:在RHEL中安装Elasticsearch
Elasticsearch是一个免费的开源搜索和分析引擎,可处理各种数据,包括结构化、非结构化、数字、地理空间和文本数据。
Elasticsearch是Elastic堆栈的关键组件,也称为ELK(Elasticsearch、Logstash和Kibana),因其简单的REST API、可扩展性和速度而被广泛使用。
Graylog需要Elasticsearch 6.x或7.x,本文将安装Elasticsearch 7.x,它是发布本指南时的最新版本。
首先,创建Elasticsearch存储库文件。
$ sudo vim /etc/yum.repos.d/elasticsearch.repo
接下来,将以下代码行粘贴到文件中。
[elasticsearch-7.x] name=Elasticsearch repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/oss-7.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md
保存更改并退出。
保持文件之后,使用DNF 包管理器安装Elasticsearch,命令如下:
$ sudo dnf install elasticsearch-oss
要使Elasticsearch与Graylog一起使用,需要进行一些更改。所以打开elasticsearch.yml文件。
$ sudo vim /etc/elasticsearch/elasticsearch.yml
如下所示,将集群名称更新为 Graylog。
cluster.name: graylog
保存更改并退出。
然后重新加载systemd管理器配置。
$ sudo systemctl daemon-reload
接下来,通过运行以下命令启用并启动Elasticsearch服务。
$ sudo systemctl enable elasticsearch.service $ sudo systemctl start elasticsearch.service
Elasticsearch默认侦听端口9200以处理HTTP请求,你可以通过发送CURL请求来确认这一点,如下所示:
$ curl -X GET http://localhost:9200
第 4 步:在RHEL中安装MongoDB
Graylog使用MongoDB数据库服务器来存储配置数据。这里将安装MongoDB 4.4 。首先,为MongoDB创建一个配置文件。
$ sudo vim /etc/yum.repos.d/mongodb-org-4.repo
然后粘贴以下配置内容:
[mongodb-org-4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/4.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
保存更改并退出。
接下来,按如下方式安装MongoDB,命令如下:
$ sudo dnf install mongodb-org
安装后,启动并启用MongoDB以在系统启动时启动。
$ sudo systemctl start mongod $ sudo systemctl enable mongod
要检查 MongoDB 版本,请运行以下命令:
$ mongo --version
第 5 步:在RHEL中安装Graylog服务器
安装所有必备组件后,现在通过运行以下命令安装Graylog:
$ sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-4.2-repository_latest.rpm $ sudo dnf install graylog-server
你可以验证Graylog的安装,命令如下:
$ rpm -qi graylog-server
现在,启动并启用Graylog服务器以在系统启动时启动。
$ sudo systemctl start graylog-server.service $ sudo systemctl enable graylog-server.service
第 6 步:在RHEL中配置Graylog服务器
为了让Graylog按预期运行,需要一些额外的步骤设置,首先需要在配置文件中定义以下参数:
root_password_sha2 password_secret root_username http_bind_address
我们将在默认配置文件/etc/graylog/server/server.conf文件中定义这些变量。
root_password_sha2是root用户的哈希密码。想要要生成它,请运行以下命令。P@ssword321只是一个占位符,可以随意指定自己的密码来替换。
$ echo -n P@ssword321 | shasum -a 256
输出如下:
68e865af8ddbeffc494508bb6181167fccf0bb7c0cab421c54ef3067bdd8d85d
记下此密码并将其保存在电脑上。
接下来,生成password_secret,如下所示:
$ pwgen -N 1 -s 96
输出如下:
T1EtSsecY0QE4jIG3t6e96A5qLU5WhS9p5SliveX9kybWjC3WKhN4246oqGYPe4BTLXaaiOcM7LyuSd9bGAonQxkTsTjuqBf
再次,记下这个散列密码。
接下来,打开Graylog配置文件。
$ sudo vim /etc/graylog/server/server.conf
如下所示粘贴上面为root_password_sha2和password_secret生成的哈希值。
root_username = admin root_password_sha2 = 68e865af8ddbeffc494508bb6181167fccf0bb7c0cab421c54ef3067bdd8d85d password_secret = T1EtSsecY0QE4jIG3t6e96A5qLU5WhS9p5SliveX9kybWjC3WKhN4246oqGYPe4BTLXaaiOcM7LyuSd9bGAonQxkTsTjuqBf
此外,通过设置 http_bind_address参数,使外部用户可以访问Graylog,命令如下:
http_bind_address = 0.0.0.0:9000
另外,配置Graylog服务器的时区。
root_timezone = UTC
保存并退出配置文件。
要应用更改,请重新启动Graylog服务器。
$ sudo systemctl restart graylog-server.service
现在可以从日志文件中确认并检查Graylog是否按预期运行。
$ tail -f /var/log/graylog-server/server.log
最后一行的以下输出表明一切正常。
Graylog侦听端口9000,该端口提供对Web界面的访问。所以,在防火墙上打开这个端口。
$ sudo firewall-cmd --add-port=9000/tcp --permanent $ sudo firewall-cmd --reload
第 7 步:访问Graylog Web界面
要访问Graylog,可以在浏览器中访问以下URL地址:
http://server-ip:9000 #换成你的服务器IP 或者 http://domain-name:9000 #换成你的域名
使用用户名admin和在server.conf文件中为root_password_sha2配置的密码登录即可:
登录后,应该会看到以下后台管理面板:
在后台管理面板中,可以继续分析从各种数据源收集的数据和日志,功能非常的强大,大家可以多花一些时间进行了解了解。
总结
据了解,Graylog是开发人员和运营团队流行的集中式日志管理解决方案,对收集的数据进行分析可以深入了解各种应用程序和设备的工作状态,并有助于发现错误并优化IT运营。
总装,以上就是基于RHEL的Linux发行版安装Graylog Server详细图文教程。在租用国外服务器的时候,为便于对服务器系统进行更好管理,建议参考上述过程安装Graylog日志管理工具,以便及时详细了解服务器系统的运行情况。