如何在CentOS 7上使用Elasticsearch 6.x安装Graylog 3
在本指南中,我将带我们逐步完成在CentOS 7上安装Graylog 3的步骤。Graylog是一个开放源代码日志管理平台,它使我们能够从具有多个功能的多个日志源,DC和地理区域汇总多达TB的日志数据。在数据中心和/或者云中水平扩展。
Graylog搜索功能确实非常快速且强大,因此我们可以将服务器分组到流中,以方便日志搜索。 Graylog UI简单直观,具有完整的用户管理和对LDAP的支持。它还支持警报和报告。
Graylog 3.x完全支持Elasticsearch 6.x和任何最新版本的MongoDB4.x。如果我们是Ubuntu和CentOS 8用户,请检查:
在Ubuntu 20.04/Ubuntu 18.04上安装GrayLog在CentOS 8上安装GrayLog
Graylog的功能依赖于Java,Elasticsearch和MongoDB.Elasticsearch负责日志存储,而MongoDB则用于存储Graylog相关的配置。
配置SELinux
如果我们在系统上使用SELinux,请设置以下设置:
sudo yum -y install curl vim 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
添加所需的存储库:
启用EPEL存储库。
sudo yum -y install epel-release
添加MongoDB存储库:
sudo tee /etc/yum.repos.d/mongodb-org-4.0.repo <<EOF [mongodb-org-4.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc EOF
添加Elasticsearch存储库:
sudo tee /etc/yum.repos.d/elasticsearch.repo <<EOF [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
安装Java,Elasticsearch和MongoDB
运行此命令以安装所有必需的软件包。
sudo yum -y install java-1.8.0-openjdk-headless.x86_64 sudo yum -y install pwgen elasticsearch-oss mongodb-org
启动并启用MongoDB服务。
启动mongodservice并将其设置为在启动时启动。
sudo systemctl enable --now mongod sudo systemctl status mongod
为Graylog配置Elasticsearch
我们需要修改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 Mon 2019-09-16 08:37:55 UTC; 1min 49s ago Docs: http://www.elastic.co Main PID: 18442 (java) CGroup: /system.slice/elasticsearch.service └─18442 /bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -Des… Sep 16 08:37:55 cent701.novalocal systemd[1]: Started Elasticsearch.
在CentOS 7上安装Graylog 3
现在,使用以下命令安装Graylog存储库和Graylog本身:
sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-3.1-repository_latest.rpm sudo yum -y install graylog-server
我们还需要在/etc/graylog/server/server.conf下设置add password_secret和root_password_sha2variables。这些设置是强制性的,没有它们,Graylog将无法启动!
$cat /etc/graylog/server/server.conf | grep password | grep -v '^ *#' password_secret = root_password_sha2 =
使用先前安装的pwgentool生成password_secret。
pwgen -N 1 -s 96
我们需要使用以下命令来创建root_password_sha2:
echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1
为了能够连接到Graylog,我们应该设置:rest_listen_uriweb_listen_uri
到运行Graylog服务的计算机的公共主机名或者公共IP地址。
Graylog目录结构:
|
|
在CentOS 7上启动Graylog服务
现在启动Graylog服务并启用它以在系统启动时启动
sudo systemctl daemon-reload sudo systemctl enable --now graylog-server.service
确认服务状态:
$systemctl status graylog-server.service ● graylog-server.service - Graylog server Loaded: loaded (/usr/lib/systemd/system/graylog-server.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2019-09-16 09:08:11 UTC; 18s ago Docs: http://docs.graylog.org/ Main PID: 19249 (graylog-server) CGroup: /system.slice/graylog-server.service ├─19249 /bin/sh /usr/share/graylog-server/bin/graylog-server └─19250 /usr/bin/java -Xms1g -Xmx1g -XX:NewRatio=1 -server -XX:+ResizeTLAB -XX:+UseConcMarkSweepGC -XX:+CMSConcurrentMTEnabled -XX:+C... Sep 16 09:08:11 cent701.novalocal systemd[1]: Stopped Graylog server. Sep 16 09:08:11 cent701.novalocal systemd[1]: Started Graylog server.
配置Graylog Firewalld
对于单节点安装,只需要打开port9000即可进行UI访问和API。要在CentOS 7上执行此操作,请使用firewalld。
sudo firewall-cmd --add-port=9000/tcp --permanent sudo firewall-cmd --reload
我们现在可以使用http://public_ip:9000访问Graylog Web界面。