部署Filebeat和ELK
部署Filebeat
- 登录SHUBAO组件所在节点,切换root用户。
- 执行以下命令对filebeat.yml文件进行授权。
    cd /filebeat sudo chown root filebeat.yml 
- 执行以下命令启动Filebeat。
    docker-compose up -d 
部署ELK
- 登录ELK所部署的服务器,切换root用户。
- 执行以下命令启动ELK。
    cd /ELK docker-compose up -d 
- 执行以下命令,判断ElasticSearch是否启动成功。
    curl localhost:9200 其中9200为修改ELK配置中设置的ElasticSearch对外开放端口号。 - 如果启动成功,会返回鉴权失败信息“missing authentication credentials for REST request”。
- 如果启动失败,会返回连接拒绝信息“connection refused”。
 
- 为ElasticSearch设置密码校验。
    - ElasticSearch成功启动后,执行以下命令进入ElasticSearch容器内部。
      docker exec -it elasticsearch bash 进入容器内部后处于/usr/share/elasticsearch路径下。 
- 执行以下命令为ElasticSearch生成节点证书。
      bin/elasticsearch-certutil ca -out config/elastic-certificates.p12 pass "" 若要求输入密码,则输入与修改ELK配置时设置的密码一致。 
- 执行以下命令新增用户。
      bin/elasticsearch-users useradd username 其中,username设置为与修改ELK配置时设置的用户名一致。 在新增用户后,会自动提示设置密码,密码设置为与修改ELK配置时设置的密码一致。 
- 执行以下命令为新增的用户授权,用于Logstash和Kibana访问ElasticSearch。
      bin/elasticsearch-users roles -a superuser username bin/elasticsearch-users roles -a kibana_system username 其中,username为步骤4.c新增的用户。 
- 执行以下命令查看用户授权。
      bin/elasticsearch-users roles -v username 其中,username为步骤4.c新增的用户。 - 如果授权正确,则返回如下信息。
        username: kibana_system,superuser 
- 如果授权错误,则执行以下命令删除授权,并重新为该用户授权。
        bin/elasticsearch-users roles -r auth_name username 其中,auth_name为查询到授权错误的权限名称。 
 
- 如果授权正确,则返回如下信息。
        
- 执行以下命令退出ElasticSearch容器。
      exit 
- 执行以下命令验证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}
 
- 如果配置成功,则返回如下信息。
        
 
- ElasticSearch成功启动后,执行以下命令进入ElasticSearch容器内部。
      
- 执行以下命令修改logstash.conf文件中user和password的值,修改为与步骤4.c中设置的用户名密码一致。
    vim /ELK/logstash/logstash.conf 
- 执行以下命令修改kibana.yml文件中elasticsearch.username和elasticsearch.password的值,修改为与步骤4.c中设置的用户名密码一致。
    vim /ELK/kibana/kibana.yml 
- 执行以下命令重启Logstash和Kibana。
    docker restart logstash docker restart kibana 
 
  