更新时间:2023-07-24 GMT+08:00
分享

部署Filebeat和ELK

部署Filebeat

  1. 登录SHUBAO组件所在节点,切换root用户。
  2. 执行以下命令对filebeat.yml文件进行授权。
    cd /filebeat
    sudo chown root filebeat.yml
  3. 执行以下命令启动Filebeat。
    docker-compose up -d

部署ELK

  1. 登录ELK所部署的服务器,切换root用户。
  2. 执行以下命令启动ELK。
    cd /ELK
    docker-compose up -d
  3. 执行以下命令,判断ElasticSearch是否启动成功。
    curl localhost:9200

    其中9200为修改ELK配置中设置的ElasticSearch对外开放端口号。

    • 如果启动成功,会返回鉴权失败信息“missing authentication credentials for REST request”。
    • 如果启动失败,会返回连接拒绝信息“connection refused”。
  4. 为ElasticSearch设置密码校验。
    1. ElasticSearch成功启动后,执行以下命令进入ElasticSearch容器内部。
      docker exec -it elasticsearch bash

      进入容器内部后处于/usr/share/elasticsearch路径下。

    2. 执行以下命令为ElasticSearch生成节点证书。
      bin/elasticsearch-certutil ca -out config/elastic-certificates.p12 pass ""

      若要求输入密码,则输入与修改ELK配置时设置的密码一致。

    3. 执行以下命令新增用户。
      bin/elasticsearch-users useradd username

      其中,username设置为与修改ELK配置时设置的用户名一致。

      在新增用户后,会自动提示设置密码,密码设置为与修改ELK配置时设置的密码一致。

    4. 执行以下命令为新增的用户授权,用于Logstash和Kibana访问ElasticSearch。
      bin/elasticsearch-users roles -a superuser username
      bin/elasticsearch-users roles -a kibana_system username

      其中,username为步骤4.c新增的用户。

    5. 执行以下命令查看用户授权。
      bin/elasticsearch-users roles -v username

      其中,username为步骤4.c新增的用户。

      • 如果授权正确,则返回如下信息。
        username: kibana_system,superuser
      • 如果授权错误,则执行以下命令删除授权,并重新为该用户授权。
        bin/elasticsearch-users roles -r auth_name username

        其中,auth_name为查询到授权错误的权限名称。

    6. 执行以下命令退出ElasticSearch容器。
      exit
    7. 执行以下命令验证ElasticSearch用户是否配置正确。
      curl -X GET "http://localhost:9200" -u username

      其中,username为步骤4.c新增的用户。执行命令后,按提示输入步骤4.c设置的密码。

      • 如果配置成功,则返回如下信息。
        {
          "name" : "xxx",
          "cluster_name" : "elasticsearch",
          "cluster_uuid" : "xxx",
          "version" : {
            "number" : "8.7.1",
            "build_flavor" : "default",
            "build_type" : "docker",
            "build_hash" : "xxx",
            "build_date" : "xxx",
            "build_snapshot" : xxx,
            "lucene_version" : "xxx",
            "minimum_wire_compatibility_version" : "xxx",
            "minimum_index_compatibility_version" : "xxx"
          },
          "tagline" : "You Know, for Search"
        }
      • 如果配置失败,则返回如下错误信息。
        {"error":{"root_cause":[{"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":["Basic realm=\"security\" charset=\"UTF-8\"","ApiKey"]}}],"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":["Basic realm=\"security\" charset=\"UTF-8\"","ApiKey"]}},"status":401}
  5. 执行以下命令修改logstash.conf文件中userpassword的值,修改为与步骤4.c中设置的用户名密码一致。
    vim /ELK/logstash/logstash.conf
  6. 执行以下命令修改kibana.yml文件中elasticsearch.usernameelasticsearch.password的值,修改为与步骤4.c中设置的用户名密码一致。
    vim /ELK/kibana/kibana.yml
  7. 执行以下命令重启Logstash和Kibana。
    docker restart logstash
    docker restart kibana

相关文档