一、什么是Beats
在ELK技术栈中,Logstash
负责收集、解析日志,但是对内存、cpu、io等资源消耗比较高, 尤其是在需要大量处理日志的情况下, 将Logstash
的部分职责外包的想法也应运而生。
Beats
是轻量级(资源高效,无依赖性,小型)和开放源代码日志发送程序的集合 ,相比Logstash
,Beats
所占系统的CPU和内存几乎可以忽略不计。目前Beats
家族有7个主要成员:
1、Filebeat
1.1、Filebeat介绍
Filebeat
是用于“转发”和“集中日志数据”的“轻量型数据采集器”。Filebeat
监视您指定的日志文件路径,收集日志事件并将数据转发到ElasticSerach
或Logstash
、Redis
等。
1.2、Filebeat工作流程
Filebeat
主要包含两个组件:输入和收割机,这些组件协同工作将文件尾部最新事件数据发送到指定的输出
- 输入(input):负责管理收割机从哪个路径查找所有可读取的资源
- 收割机(Harvester):负责逐行读取单个文件的内容,然后将内容发送到输出。
2、docker安装Filebeat
2.1、拉取镜像
docker pull docker.elastic.co/beats/filebeat:7.1.1
2.2、filebeat.yml
setup.ilm.enabled: false
setup.template.name: "filebeat-161"
setup.template.pattern: "filebeat-161-*"
setup.template.settings:
index.number_of_shards: 5
index.number_of_replicas: 0
index.codec: best_compression
filebeat.inputs:
- type: log ##文本日志
paths:
- /var/log/filebeat/lemon.log ##日志文件修改权限到666
output:
elasticsearch: #输出到elasticsearch,也可以输出到logstash
hosts: ["192.168.232.160:9200"] #elasticsearch地址,
index: "filebeat-161-%{+yyyy.MM.dd}"
2.3、启动Filebeat
docker run -d \
--name=my-filebeat-2 \
-v /mydata/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml \
-v /mydata/filebeat/log:/var/log/filebeat/ \
0bd69a03e199
二、什么是logstash
logstash
能够集中、转换和存储数据, 动态地采集、转换和传输数据,不受格式或复杂度的影响。利用 Grok 从非结构化数据中派生出结构,从 IP 地址解码出地理坐标,匿名化或排除敏感字段,并简化整体处理过程。
1、安装logstash
1.1、拉去镜像
docker pull logstash:7.1.1
1.2、配置logstash
logstash.yml
path.config: /usr/share/logstash/conf.d/*.conf
path.logs: /var/log/logstash
lemon.conf
配置数据来源,过滤器,输出
input {
file{
path => ["/var/log/logstash/lemon.log"]
start_position => "beginning"
}
}
filter {
split {
field => "message"
terminator => "|"
}
}
output {
elasticsearch {
hosts => ["192.168.232.160:9200"]
index => "logstash-161-%{+yyyy.MM.dd}"
}
}
logstash提供了不同的input输入插件,Filter过滤器插件,Output输出插件
1.3、运行容器启动logstash
docker run -p 5044:5044 --name my-logstash \
-v /mydata/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml \
-v /mydata/logstash/conf.d/:/usr/share/logstash/conf.d/ \
-v /mydata/logstash/log:/var/log/logstash b0cb1543380d
三、什么是Kibana
Kibana
是一个免费且开放的用户界面,能够让您对Elasticsearch
数据进行可视化,并让您在 Elastic Stack 中进行导航。您可以进行各种操作,从跟踪查询负载,到理解请求如何流经您的整个应用,都能轻松完成。
一张图片胜过千万行日志,下面是Kibana中的仪表盘界面
1、安装Kibana
1.1、拉去镜像
docker pull kibana:7.1.1
1.2、配置kibana.yml
server.name: kibana #服务名称
server.host: "0" #服务地址,0代表本机
elasticsearch.hosts: [ "http://192.168.232.160:9200" ] #elasticsearch地址
xpack.monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN" #中文汉化
1.3、运行容器启动logstash
docker run -d --name my-kibana -p 5601:5601 -v /mydata/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml 67f17df6ca3e
欢迎来到testingpai.com!
注册 关于