在Linux上配置Graylog服务器以管理日志
在本教程中,将介绍如何配置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服务器,我们可以以可视方式管理应用程序/服务器日志。