docker 安装 Filebeat、Logstash、Kibana

发布于 更新于
本文目录
  1. 一、什么是Beats
  2. 1、Filebeat
  3. 1.1、Filebeat介绍
  4. 1.2、Filebeat工作流程
  5. 2、docker安装Filebeat
  6. 2.1、拉取镜像
  7. 2.2、filebeat.yml
  8. 2.3、启动Filebeat
  9. 二、什么是logstash
  10. 1、安装logstash
  11. 1.1、拉去镜像
  12. 1.2、配置logstash
  13. logstash.yml
  14. lemon.conf
  15. 1.3、运行容器启动logstash
  16. 三、什么是Kibana
  17. 一张图片胜过千万行日志,下面是Kibana中的仪表盘界面
  18. 1、安装Kibana
  19. 1.1、拉去镜像
  20. 1.2、配置kibana.yml
  21. 1.3、运行容器启动logstash

技术文章性能测试

在ELK技术栈中,Logstash负责收集、解析日志,但是对内存、cpu、io等资源消耗比较高, 尤其是在需要大量处理日志的情况下, 将Logstash的部分职责外包的想法也应运而生。

一、什么是Beats

在ELK技术栈中,Logstash负责收集、解析日志,但是对内存、cpu、io等资源消耗比较高, 尤其是在需要大量处理日志的情况下, 将Logstash的部分职责外包的想法也应运而生。

Beats 是轻量级(资源高效,无依赖性,小型)和开放源代码日志发送程序的集合 ,相比Logstash,Beats所占系统的CPU和内存几乎可以忽略不计。目前Beats家族有7个主要成员:

2.png

1、Filebeat

1.1、Filebeat介绍

Filebeat是用于“转发”和“集中日志数据”的“轻量型数据采集器”。Filebeat监视您指定的日志文件路径,收集日志事件并将数据转发到ElasticSerach或Logstash、Redis等。

1.png

1.2、Filebeat工作流程

Filebeat主要包含两个组件:输入和收割机,这些组件协同工作将文件尾部最新事件数据发送到指定的输出

  • 输入(input):负责管理收割机从哪个路径查找所有可读取的资源

  • 收割机(Harvester):负责逐行读取单个文件的内容,然后将内容发送到输出。

4.png

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 地址解码出地理坐标,匿名化或排除敏感字段,并简化整体处理过程。

5.png

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输出插件

6.png

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中的仪表盘界面

21.png

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

继续阅读