本文描述如何搭建一套具备用户名和密码安全认证的 Elastic Stack 系统,并开始使用 Filebeat 的基础模块实现分布式的日志收集。
为了使你也获得与我一致的安装和测试体验,请先下载并浏览相本文所使用的代码库:https://github.com/martinliu/elastic-labs
本文所使用相关软件以及版本。
注意事项:
启动测试环境。
vagrant up
vagrant status
SSH 登录测试虚拟机。
vagrant ssh
执行 RPM 安装命令,安装 elasticsearch 服务器。
cd /vagrant/rpm
sudo rpm -ivh ./elasticsearch-7.6.1-x86_64.rpm
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service
sudo systemctl status elasticsearch.service
测试 Elasticsearch 服务是否功能正常 【 Dry run 】
curl localhost:9200
期待的输出类似下面。
{
"name" : "elk-master",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "X4V2Yvc-SJ6ccjWbXQ5OmQ",
"version" : {
"number" : "7.6.1",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "aa751e09be0a5072e8570670309b1f12348f023b",
"build_date" : "2020-02-29T00:15:25.529771Z",
"build_snapshot" : false,
"lucene_version" : "8.4.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
浏览和学习 Elasticsearch 默认的配置文件。
sudo cat /etc/elasticsearch/elasticsearch.yml
使用 Elasticsearch 的精简版目标测试配置文件。
sudo cp /vagrant/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml
sudo systemctl restart elasticsearch.service
sudo systemctl status elasticsearch.service
手工查看 Elasticsearch 服务器的日志,并确认服务启动正常。
sudo tail -f /var/log/elasticsearch/my-elk.log
Ctl + c 终止以上日志查看,再次测试 Elasticsearch 服务。
curl localhost:9200
替换为 IP 地址测试。
curl http://192.168.50.10:9200/
停止 Elasticsearch 服务。
sudo systemctl stop elasticsearch.service
cd /usr/share/elasticsearch
sudo bin/elasticsearch-certutil cert -out /etc/elasticsearch/elastic-certificates.p12 -pass ""
sudo chmod 660 /etc/elasticsearch/elastic-certificates.p12
手工打开 Elasticsearch 配置文件。
sudo vi /etc/elasticsearch/elasticsearch.yml
在配置文件的末端增加下面的配置段落。
# ------------------------------- TLS and Cert ---------------------------------
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
重新启动配置 Elasticsearch 服务。
sudo systemctl restart elasticsearch.service
sudo systemctl status elasticsearch.service
确认服务已经正常启动。
sudo tail -f /var/log/elasticsearch/my-elk.log
运行 Elasticsearch 的密码配置工具,为各种内置用户生成随机的密码。
sudo cd /usr/share/elasticsearch
sudo bin/elasticsearch-setup-passwords auto
将生成的密码信息妥善保存备用。
Changed password for user apm_system
PASSWORD apm_system = AHyg5HzJRZg8Fiva0buW
Changed password for user kibana
PASSWORD kibana = Kt72IXkiarlGr7do02Yp
Changed password for user logstash_system
PASSWORD logstash_system = Q9nnlOdf6V9kyPbbhqN7
Changed password for user beats_system
PASSWORD beats_system = bLNrZDggPKRSKc35EG32
Changed password for user remote_monitoring_user
PASSWORD remote_monitoring_user = o1pi2yTDnhrKBGcS6xqP
Changed password for user elastic
PASSWORD elastic = RO11xymgXTCD16ivTP33
在浏览器中访问http://192.168.50.10:9200/ ,测试并确认上面的 elastic 用户的密码。
执行 Kibana 安装命令
cd /vagrant/rpm/
sudo rpm -ivh kibana-7.6.1-x86_64.rpm
查看并学习 Kibana 默认配置文件
sudo cat /etc/kibana/kibana.yml
更新默认配置文件,准备好 elastic 用户的密码,将其更新到 Kibana 配置文件中。
sudo cp /vagrant/kibana/kibna.yml /etc/kibana/kibana.yml
sudo systemctl start kibana.service
sudo systemctl status kibana.service
查看重启的服务是否工作正常。
sudo tail -f /var/log/messages
在浏览器里测试登录 Kibana http://192.168.50.10:5601 ,使用 elastic 的用户名和密码。
执行 Filebeat 安装包。
cd /vagrant/rpm
sudo rpm -ivh ./filebeat-7.6.1-x86_64.rpm
查看默认的 Filebeat 配置文件。
sudo cat /etc/filebeat/filebeat.yml
更新默认配置文件,准备好 elastic 用户的密码,将其更新到 Kibana 配置文件中。
sudo cp /vagrant/filebeat/filebeat.yml /etc/filebeat/filebeat.yml
查看 Filebeat 的默认日志监控模块。
sudo filebeat modules list
启用 Filebeat 的 System 和 Auditd 模块,监控系统日志和基础的操作系统安全信息。
sudo filebeat modules enable system auditd
查看 Filebeat 监控模块的配置文件。
sudo cd /etc/filebeat
sudo ls -l modules.d/
建议查看以上启用的 System 和 Auditd 模块的配置文件。
运行 Filebeat 在后台的初始化命令,在后台创建 Filebeat 所需要的索引 filebeat-* ,并导入所有模块相关的 Dashboard 等 Kibana 日志可视化分析工具。
sudo filebeat setup
在浏览器中登录 http://192.168.50.10:5601 Kibana 后,点击左侧的 Dashboard 图标,查看所有刚才导入的内容,搜索并打开 System 关键字的 Dasboard。
在启动日志收集代理 Filebeat 服务前,运行一下命令测试 Filebeat 配置文件的正确性。
sudo filebeat test config
启动 Filebeat 服务,开始对这台操作系统的日志进行监控。
sudo systemctl start filebeat
sudo systemctl status filebeat
参考文档: https://www.elastic.co/guide/en/elasticsearch/reference/current/setting-system-settings.html