部署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