环境说明
系统:
centos7.7
docker:
19.03.11
elk:
sebp/elk latest
filebeat:
filebeat-7.2.0
备注:elk和filebeat在同一台服务器上
架构:
-
Elasticsearch
一个近乎实时查询的全文搜索引擎。Elasticsearch 的设计目标就是要能够处理和搜索巨量的日志数据。 -
Logstash
读取原始日志,并对其进行分析和过滤,然后将其转发给其他组件(比如 Elasticsearch)进行索引或存储。Logstash 支持丰富的 Input 和 Output 类型,能够处理各种应用的日志。 -
Kibana
一个基于 JavaScript 的 Web 图形界面程序,专门用于可视化 Elasticsearch 的数据。Kibana 能够查询 Elasticsearch 并通过丰富的图表展示结果。用户可以创建 Dashboard 来监控系统的日志。 -
Filebeat
引入Filebeat作为日志搜集器,主要是为了解决Logstash开销大的问题。相比Logstash,Filebeat 所占系统的 CPU 和内存几乎可以忽略不计。
日志处理流程:
Filebeat将日志发送给Logstash进行分析和过滤,然后由Logstash转发给Elasticsearch,最后由Kibana可视化Elasticsearch 的数据
安装 ELK 套件
ELK 的部署方案可以非常灵活,在规模较大的生产系统中,ELK 有自己的集群,实现了高可用和负载均衡。我们的目标是在最短的时间内学习并实践 ELK,因此将采用最小部署方案:在容器中搭建 ELK。
1.运行ELK镜像需要vm.max_map_count至少需要262144内存
echo "vm.max_map_count=262144" > /etc/sysctl.conf
sysctl -p
2.安装docker # 根据自己的情况更改docker镜像源,否则拉取镜像很慢。
yum -y install docker
systemctl start docker
systemctl enable docker
3.运行ELK镜像
docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -it --restart always --name elk sebp/elk
4.配置logstash
进入容器 sudo docker exec -it elk /bin/bash
修改02-beats-input.conf
vim /etc/logstash/conf.d/02-beats-input.conf
删除 ssl => true
删除 ssl_certificate => "/pki/tls/certs/logstash.crt"
删除 ssl_key => "/pki/tls/private/logstash.key"