如何在 CentOS 8 上安装 Elastic Stack(Elasticsearch、Logstash 和 Kibana)如何在 CentOS 8 上安装 Elastic Stack(Elasticsearch、Logstash 和 Kibana)如何在 CentOS 8 上安装 Elastic Stack(Elasticsearch、Logstash 和 Kibana)如何在 CentOS 8 上安装 Elastic Stack(Elasticsearch、Logstash 和 Kibana)
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

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

本教程适用于这些操作系统版本

  • 中央操作系统 8
  • 中央操作系统 7

在此页

  1. 第 1 步 - 添加弹性存储库
  2. 第 2 步 - 安装和配置 Elasticsearch
  3. 第 3 步 - 安装和配置 Kibana 仪表板
  4. 第 4 步 - 将 Nginx 设置为 Kibana 的反向代理
  5. 第 5 步 - 安装和配置 Logstash
  6. 第 6 步 - 在客户端上安装 Filebeat
    1. - 在 CentOS 8 上安装 Filebeat
    2. - 在 Ubuntu 18.04 上安装 Filebeat
    3. - 配置 Filebeat

    Elasticsearch 是一个基于 Lucene 的开源搜索引擎,用 Java 开发。它通过 HTTP 仪表板 Web 界面 (Kibana) 提供分布式和多租户全文搜索引擎。使用 JSON 文档方案查询、检索和存储数据。 Elasticsearch 是一个可扩展的搜索引擎,可用于搜索各种文本文档,包括日志文件。 Elasticsearch 是 Elastic Stack 或 ELK Stack 的核心。

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

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

    在本教程中,我们将逐步向您展示在 CentOS 8 服务器上安装和配置 Elastic Stack。我们将安装和设置 Elasticsearch、Logstash 和 Kibana。然后在客户端Ubuntu和CentOS系统上设置Beats filebeat。

    先决条件

    • CentOS 8 64 位,4GB RAM - elk-master
    • CentOS 8 64 位,1 GB RAM - client01
    • Ubuntu 18.04 64 位,1GB RAM - client02

    我们将要做什么:

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

    第 1 步 - 添加弹性存储库

    首先,我们要将 Elasticsearch 密钥和存储库添加到 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 存储库。

    因此,您可以安装 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 管理器配置并将 elasticsearch 服务添加到启动时间。

    sudo systemctl daemon-reload
    sudo systemctl enable elasticsearch

    然后启动elasticsearch服务。

    sudo systemctl start elasticsearch

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

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

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

    以下是您将获得的结果。

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

    安装elasticsearch后,我们将在CentOS 8服务器上安装和配置Kibana Dashboard。

    使用下面的 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 服务已经在 CentOS 8 服务器上启动并运行,使用以下命令检查它。

    systemctl status kibana
    netstat -plntu

    你会得到如下结果。

    因此,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

    至此,作为Kibana Dashboard反向代理的Nginx安装配置就完成了。

    第 5 步 - 安装和配置 Logstash

    在此步骤中,我们将安装和配置日志传送器 logstash。我们将安装 logstash,设置输入节拍,使用名为 grok 的 logstash 插件设置系统日志过滤,然后设置到 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 目录并为 beats 输入创建名为 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 服务已启动并正在运行,使用以下命令进行检查。

    systemctl status logstash
    netstat -plntu

    你会得到如下结果。

    结果,logstash 日志发送器在默认 TCP 端口 5044 的 CentOS 8 服务器上启动并运行。基本的 Elastic Stack 安装已经完成,准备好发送和监控我们的日志到 Elastic (ELK Stack)服务器。

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

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

    - 在 CentOS 8 上安装 Filebeat

    使用以下命令将elasticsearch key添加到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 安装完成。

    - 在 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 安装完成。

    - 配置文件拍

    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

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

    使用 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 服务器的结果。

    以下是来自 Ubuntu Server 18.04。

    至此,elastic stack服务器IP地址10.5.5.12上的filebeat和logstash服务的连接已经建立。

    第 7 步 - 测试

    打开 Web 浏览器并在地址栏中输入 Elastic Stack 安装域名。

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

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

    现在连接到 filebeat 连接到 logstash 后自动创建的 elasticsearch 索引数据。单击连接到您的 Elasticsearch 索引链接。

    创建 filebeat-* 索引模式并单击 Next step 按钮。

    对于过滤器名称,选择@timestamp 过滤器并单击Create index pattern。

    并且filebeat-*索引模式已经创建,点击左侧的Discover菜单。

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

    CentOS 8 系统日志。

    登录Ubuntu系统。

    因此,filebeat 系统模块上定义的日志数据已被传送到 Elastic Stack 服务器。

    至此Elastic Stack 在CentOS 8 上的安装配置已经成功完成。

    参考

    • https://www.elastic.co/guide/index.html

©2015-2025 艾丽卡 support@alaica.com