技术教程 · 2019年12月9日 1

如何在CentOS 8上安装Elastic Stack(Elasticsearch,Logstash和Kibana)

Elasticsearch是使用Java开发的基于Lucene的开源搜索引擎。它提供了具有HTTP Dashboard Web界面(Kibana)的分布式多租户全文搜索引擎。使用JSON文档方案查询,检索和存储数据。Elasticsearch是可扩展的搜索引擎,可用于搜索各种文本文档,包括日志文件。Elasticsearch是“弹性堆栈”或“ ELK堆栈”的核心。

Logstash是用于管理事件和日志的开源工具。它提供了数据收集的实时流水线。Logstash将收集您的日志数据,将数据转换为JSON文档,并将其存储在Elasticsearch中。

Kibana是Elasticsearch的开源数据可视化工具。Kibana提供了一个漂亮的仪表板Web界面。它允许您管理和可视化Elasticsearch中的数据。它不仅美丽,而且功能强大。

在本教程中,我们将向您展示在CentOS 8服务器上分步安装和配置“弹性堆栈”的步骤。我们将安装和设置Elasticsearch,Logstash和Kibana。然后在客户端Ubuntu和CentOS系统上设置Beats’filebeat’。

先决条件

  • 具有4GB RAM的CentOS 8 64位-Elk-master
  • 具有1 GB RAM的CentOS 8 64位-client01
  • 带有1GB RAM的Ubuntu 18.04 64位-client02

我们要做什么:

  • 将弹性存储库添加到CentOS 8服务器
  • 安装和配置Elasticsearch
  • 安装和配置Kibana仪表板
  • 将Nginx设置为Kibana的反向代理
  • 安装和配置Logstash
  • 安装和配置Filebeat
  • 测试中

第1步-添加弹性存储库

首先,我们将Elasticsearc密钥和存储库添加到CentOS 8服务器。借助elastic.co提供的elasticsearch存储库,我们能够安装Elastic产品,包括Elasticsearch,Logstash,Kibana和Beats。

使用以下命令将弹性密钥添加到系统。

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

之后,转到“ /etc/yum.repos.d”目录并创建一个新的存储库文件“ elasticsearch.repo”。

cd /etc/yum.repos.d/
vim elasticsearch.repo

在下面粘贴elasticsearch存储库。

[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

保存并关闭。

现在,使用下面的dnf命令检查系统上所有可用的存储库。

dnf repolist

然后,您将获得已添加到CentOS 8服务器的elasticsearch存储库。

使用dnf命令获取存储库列表

因此,您可以安装Elastic产品,例如Elasticsearch,Logstash和Kibana等。

第2步-安装和配置Elasticsearch

在这一步中,我们将安装和配置Elasticsearch。

使用下面的dnf命令安装Elasticsearch软件包。

sudo dnf install elasticsearch -y

安装完成后,进入“ / etc / elasticsearch”目录并使用vim编辑器编辑配置文件“ elasticsearch.yml”。

cd /etc/elasticsearch/
vim elasticsearch.yml

取消注释以下几行,并如下更改每行的值。

network.host: 127.0.0.1
http.port: 9200

保存并关闭。

可选地:

您可以通过编辑JVM配置文件’jvm.options’来调整elasticsearch并根据您拥有的内存来设置堆大小。

使用vim编辑器编辑JVM配置’jvm.options’。

vim jvm.options

如下所示通过Xms和Xmx配置更改最小/最大堆大小。

-Xms512m
-Xmx512m

保存并关闭。

接下来,重新加载systemd Manager配置并将弹性搜索服务添加到启动时间。

sudo systemctl daemon-reload
sudo systemctl enable elasticsearch

然后启动elasticsearch服务。

sudo systemctl start elasticsearch

配置并启动elasticssearch

结果,elasticsearch在本地IP地址“ 127.0.0.1”之后启动,并在CentOS 8服务器上使用默认端口“ 9200”运行。

您可以使用下面的curl命令检查elasticsearch。

curl -XGET 'http://127.0.0.1:9200/?pretty'

以下是您将获得的结果。

测试与Elasticsearch的连接

第3步-安装和配置Kibana仪表板

安装Elasticsearch之后,我们将在CentOS 8服务器上安装和配置Kibana仪表板。

使用下面的dnf命令安装Kibana仪表板。

sudo dnf install kibana

安装完成后,转到“ / etc / kibana”目录并编辑配置文件“ kibana.yml”。

cd /etc/kibana/
vim kibana.yml

取消注释并更改某些行配置,如下所示。

server.port: 5601
server.host: "127.0.0.1"
elasticsearch.url: "http://127.0.0.1:9200"

保存并关闭。

接下来,将kibana服务添加到系统引导中并启动kibana服务。

sudo systemctl enable kibana
sudo systemctl start kibana

安装Kibana仪表板

Kibana服务已启动并在CentOS 8服务器上运行,请使用以下命令进行检查。

systemctl status kibana
netstat -plntu

您将得到如下结果。

检查Kibana服务的状态

结果,Kibana服务启动并运行默认的TCP端口“ 5601”。

第4步-将Nginx设置为Kibana的反向代理

在这一步中,我们将安装Nginx Web服务器并将其设置为Kibana仪表板的反向代理。

使用下面的dnf命令安装Nginx和httpd-tools。

sudo dnf install nginx httpd-tools

安装完成后,转到“ /etc/nginx/conf.d”目录并创建一个新的配置文件“ kibana.conf”。

cd /etc/nginx/conf.d/
vim kibana.conf

粘贴以下配置。

server {
    listen 80;
 
    server_name elk.hakase-labs.io;
 
    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/.kibana-user;
 
    location / {
        proxy_pass http://127.0.0.1:5601;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

保存并关闭。

接下来,我们需要创建基本身份验证以保护Kibana访问。用自己的用户更改“ hakase”用户,然后运行htpasspwd命令,如下所示。

sudo htpasswd -c /etc/nginx/.kibana-user hakase
TYPE YOUR PASSWORD

输入您的密码并测试Nginx配置。

nginx -t

确保没有错误。

现在,将nginx服务添加到系统引导中并启动nginx服务。

systemctl enable nginx
systemctl start nginx

将Nginx配置为反向代理

结果,已经完成了Nginx的安装和配置,作为Kibana仪表板的反向代理。

第5步-安装和配置Logstash

在此步骤中,我们将安装和配置logtash日志发件人。我们将安装logstash,设置输入节拍,使用名为“ grok”的logstash插件设置syslog过滤,然后将输出设置为elasticsearch。

使用下面的dnf命令安装logstash。

sudo dnf install logstash

安装完成后,进入’/ etc / logstash’目录并使用vim编辑器编辑JVM配置文件’jvm.options’。

cd /etc/logstash/
vim jvm.options

如下所示通过Xms和Xmx配置更改最小/最大堆大小。

-Xms512m
-Xmx512m

保存并关闭。

接下来,转到“ /etc/logstash/conf.d”目录,并创建名为“ input-beat.conf”的拍子输入的配置文件。

cd /etc/logstash/conf.d/
vim input-beat.conf

粘贴以下配置。

input {
  beats {
    port => 5044
  }
}

保存并关闭。

现在创建“ syslog-filter.conf”配置文件。

vim syslog-filter.conf

粘贴以下配置。

filter {
  if [type] == "syslog" {
    grok {
      match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
      add_field => [ "received_at", "%{@timestamp}" ]
      add_field => [ "received_from", "%{host}" ]
    }
    date {
      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
    }
  }
}

保存并关闭。

然后为elasticsearch’output-elasticsearch.conf’创建输出配置。

vim output-elasticsearch.conf

粘贴以下配置。

output {
  elasticsearch { hosts => ["127.0.0.1:9200"]
    hosts => "127.0.0.1:9200"
    manage_template => false
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
    document_type => "%{[@metadata][type]}"
  }
}

保存并关闭。

接下来,将logstash服务添加到系统引导中,然后启动logstash服务。

systemctl enable logstash
systemctl start logstash

配置Logstash

logstash服务已启动并正在运行,请使用以下命令进行检查。

systemctl status logstash
netstat -plntu

您将得到如下结果。

检查logstash状态

结果,logstash日志传送程序已启动并在具有默认TCP端口“ 5044”的CentOS 8服务器上运行。至此,基本的Elastic Stack安装已经完成,我们已经准备好将日志发送并监视到Elastic(ELK Stack)服务器。

步骤6-在客户端上安装Filebeat

在这一步中,我们将向您展示如何在Ubuntu和CentOS系统上设置filebeat。我们将安装filebeat并配置为将日志从两台服务器发送到弹性服务器上的Logstash。

-在CentOS 8上安装Filebeat

使用以下命令将elasticsearch密钥添加到CentOS 8系统。

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

现在转到“ /etc/yum.repos.d”目录,并使用vim编辑器创建“ elasticsearch.repo”文件。

cd /etc/yum.repos.d/
vim elasticsearch.repo

粘贴以下配置。

[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

保存并关闭。

现在,使用下面的dnf命令安装filebeat。

sudo dnf install filebeat

等待filebeat安装完成。

安装Filebeat

-在Ubuntu 18.04上安装Filebeat

首先,安装apt-transport-https软件包。

sudo apt install apt-transport-https

之后,使用以下命令添加elasticsearch密钥和存储库。

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

现在,使用以下apt命令更新所有存储库,并将filebeat安装到ubuntu系统。

sudo apt update
sudo apt install filebeat

等待filebeat安装完成。

安装apz https传输

-配置Filebeat

Filebeat配置位于“ / etc / filebeat”目录中。转到filebeat目录,然后编辑“ filebeat.yml”配置文件。

cd /etc/filebeat/
vim filebeat.yml

现在禁用默认的elasticsearch输出,如下所示。

#output.elasticsearch:
  # Array of hosts to connect to.
  #  hosts: ["127.0.0.1:9200"]

然后启用logstash输出并指定logstash主机IP地址。

output.logstash:
  # The Logstash hosts
  hosts: ["10.5.5.25:5044"]

保存并关闭。

接下来,我们需要启用filebeat模块。运行下面的filebeat命令以获取filebeat模块的列表。

filebeat modules list

使用以下命令启用“系统”模块。

filebeat modules enable system

已使用配置文件’modules.d / system.yml’启用filebeat系统模块。

使用vim编辑器编辑系统模块配置。

cd /etc/filebeat/
vim modules.d/system.yml

取消注释syslog文件和ssh授权文件的路径。

对于CentOS系统:

  # Syslog
  syslog:
    enabled: true
    var.paths: ["/var/log/messages"]

  # Authorization logs
  auth:
    enabled: true
    var.paths: ["/var/log/secure"]

对于Ubuntu系统:

  # Syslog
  syslog:
    enabled: true
    var.paths: ["/var/log/syslog"]

  # Authorization logs
  auth:
    enabled: true
    var.paths: ["/var/log/auth.log"]

保存并关闭。

现在,将filebeat服务添加到系统引导中并启动该服务。

systemctl enable filebeat
systemctl start filebeat

filebeat服务已启动并正在运行,您可以使用以下命令进行检查。

systemctl status filebeat

结果将显示如下。

以下是CentOS 8服务器的结果。

CentOS服务器的结果

下面是来自Ubuntu Server 18.04的信息。

Ubuntu 18.04服务器的结果

结果,在弹性堆栈服务器IP地址“ 10.5.5.12”上的filebeat和logstash服务之间建立了连接。

步骤7-测试

打开您的Web浏览器,然后在地址栏上键入Elastic Stack安装域名。

http://elk.hakase-labs.io/

现在,使用您创建的基本身份验证帐户登录到Kibana仪表板。

Kibana登录

您将获得如下的Kibana仪表板。

Kibana仪表板

现在连接到在文件拍子连接到logstash之后自动创建的elasticsearch索引数据。单击“ 连接到您的Elasticsearch索引 ”链接。

创建’ filebeat- * ‘索引模式,然后单击’ 下一步 ‘按钮。

创建Filebeat索引模式

对于过滤器名称,选择’ @timestamp ‘过滤器,然后单击’ 创建索引模式 ‘。

选择过滤器名称

并创建了“ filebeat- * ”索引模式,单击左侧的“ 发现 ”菜单。

“发现”菜单中的Filebeat

然后,您将从Filebeat客户端获取日志数据,如下所示。

记录CentOS 8系统。

CentOS 8系统的日志

登录到Ubuntu系统。

Ubuntu系统日志

结果,在filebeat系统模块上定义的日志数据已被传送到弹性堆栈服务器。

并且,CentOS 8上的Elastic Stack安装和配置已成功完成。

参考

转自:https://www.howtoforge.com/how-to-install-elastic-stack-on-centos-8/