前言

大家好,我是佳佳,最近在玩 ELK 日志平台,它是 Elastic 公司推出的一整套日志收集、分析和展示的解决方案。

只有学习了,操作了才能算真正的学会使用了,虽然看起来简单,但是里面的流程步骤还是很多的,将步骤和遇到的问

题记录和总结下,今天主要分享下在Docker环境下部署 logstash 日志收集工具。

# 从零到一搭建ELK日志,在Docker环境下部署 Elasticsearch 数据库

# 从零到一搭建ELK日志,在Docker环境下部署 Kibana 可视化工具

# 从零到一搭建ELK日志,在Docker环境下部署 Filebeat 日志收集工具

什么是 logstash?

Logstash是具有实时流水线能力的开源的数据收集引擎。Logstash可以动态统一不同来源的数据,并将数据标准化到您选择的目标输出。它提供了大量插件,可帮助我们解析,丰富,转换和缓冲任何类型的数据。

工作方式

管道(Logstash Pipeline)是Logstash中独立的运行单元,每个管道都包含两个必须的元素输入(input)和输出(output),和一个可选的元素过滤器(filter),事件处理管道负责协调它们的执行。

输入和输出支持编解码器,使您可以在数据进入或退出管道时对其进行编码或解码,而不必使用单独的过滤器。如:json、multiline等

inputs(输入阶段):

Logstash 支持各种输入选择,可以同时从众多常用来源捕捉事件。

包括:file、kafka、beats等

filters(筛选阶段):

数据从源传输到存储库的过程中,Logstash 筛选器能够解析各个事件,识别已命名的字段以构建结构,并将它们转换成通用格式,以便进行更强大的分析和实现商业价值。

包括:

  • 利用 Grok 从非结构化数据中派生出结构
  • 简化整体处理,不受数据源、格式或架构的影响等

outputs(输出阶段):

将事件数据发送到特定的目的地,完成了所以输出处理,改事件就完成了执行。

如:elasticsearch、file、redis等

Codecs(解码器):

基本上是流过滤器,作为输入和输出的一部分进行操作,可以轻松地将消息的传输与序列化过程分开。

扩展

Logstash 采用可插拔框架,拥有 200 多个插件。您可以将不同的输入选择、筛选器和输出选择混合搭配、精心安排,让它们在管道中和谐地运行。

部署 logstash 日志收集工具

logstash的部署方式有很多种,一般情况下我们可以采用下载 logstash 安装包的方式去启动。

但是官方为我们提供了Docker的部署方式,我比较倾向于利用Docker来进行管理。

  1. 安装Logstash镜像
docker pull docker.elastic.co/logstash/logstash:7.7.1
复制代码
  1. 创建文件目录和配置文件

创建文件夹

mkdir -p /data/elk/logstash/configmkdir -p /data/elk/logstash/pipeline
复制代码

创建配置文件

logstash.yml 放在/data/elk/logstash/config

touch logstash.ymlvi logstash.ymlconfig:reload:automatic: trueinterval: 3s
xpack:management.enabled: falsemonitoring.enabled: false
复制代码

配置文件 pipelines.yml

放在/data/elk/logstash/config

在这里我们可以配置多个管道信息,来收集不同的信息

touch pipelines.ymlvi pipelines.yml- pipeline.id: logstash_devpath.config: /usr/share/logstash/pipeline/logstash_dev.conf
复制代码

配置文件 logstash_dev.conf

放在
/data/elk/logstash/pipeline下

touch logstash_dev.confvi logstash_dev.confinput {beats {port => 9900}
}filter {grok {match => { "message" => "%{COMBINEDAPACHELOG}" }}mutate {convert => {"bytes" => "integer"}}geoip {source => "clientip"}useragent {source => "user_agent"target => "useragent"}date {match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"]}
}output {stdout { }elasticsearch {hosts => ["127.0.0.1:9200"]index => "xiaoguo_test_example"}
}
复制代码

注意了,在这里我们可以配置索引的名称,以方便我们后面在查看

  1. 启动容器

最重要的一个环节来了,成败在此一举

docker run -d -it --restart=always  --privileged=true  --name=logstash -p 5047:5047 -p 9600:9600 -v /data/elk/logstash/pipeline/:/usr/share/logstash/pipeline/      -v /data/elk/logstash/config/:/usr/share/logstash/config/ docker.elastic.co/logstash/logstash:7.7.1
复制代码

指令可能存在换行的问题,可以先复制出来去掉换行

启动结果:

  1. 验证是否启动成功

通过docker logs id 来看logstash是否启动成功

看到Successfully就表示成功了

  1. 修改 filebeat 配置文件

在前面的文章中我们已经将FlieBeat + Es + Kibana 的合并操作

我们只需要修改 filebeat 配置文件 filebeat.yml

将输出地址更改为我们部署的 logstash 地址

filebeat.inputs:
- type: logenabled: truepaths:- /usr/share/filebeat/logs/*output.logstash:hosts: ["ip:9900"]
复制代码
  1. 查询是否生成索引
curl http://localhost:9200/_cat/indices?v
复制代码

看到自定义名称的那个索引,就表示成功了

  1. 上Kibana查看

总结

我们主要完成在Docker环境下部署 logstash 日志收集工具,他是搭建ELK日志非常重要的一部分,上一篇文章Filebeat日志收集完成之后,将数据写入 Elasticsearch 后用 Kibana 进行可视化展示,现在我们已经完成了

Filebeat 收集数据写入 logstash处理,再将数据写入 Elasticsearch 后 Kibana 进行可视化展示的全过程。

欢迎大家评论、点赞、收藏~

如有不对的地方欢迎指出!

不得不学,从零到一搭建ELK日志,Docker环境下部署 logstash工具相关推荐

  1. 搭建ELK日志分析平台(上)—— ELK介绍及搭建 Elasticsearch 分布式集群

    笔记内容:搭建ELK日志分析平台(上)-- ELK介绍及搭建 Elasticsearch 分布式集群 笔记日期:2018-03-02 27.1 ELK介绍 27.2 ELK安装准备工作 27.3 安装 ...

  2. 搭建ELK日志分析系统详解

    日志分析是运维工程师解决系统故障.发现问题的主要手段.日志包含多种类型,包括程序日志.系统日志以及安全日志等.通过对日志的分析,既可以做到未雨绸缪.预防故障的发生,又可以在故障发生时,寻找蛛丝马迹.快 ...

  3. 搭建ELK日志分析平台(下)—— 搭建kibana和logstash服务器

    27.6 安装kibana 27.7 安装logstash 27.8 配置logstash 27.9 kibana上查看日志 27.10 收集nginx日志 27.11 使用beats采集日志 本文是 ...

  4. springcloud搭建elk日志管理

    对于java项目查看日志方法很多,由于项目需要,查看日志需要命令查看,为方便后端开发人员查看错误日志,项目要求搭建elk日志管理 此次是springcloud搭建elk,spirngboot亦可如此 ...

  5. 搭建ELK日志服务器

    实验名称:搭建ELK日志分析服务器 实验要求:搭建ELK日志分析系统并进行验证 实验环境: 一台centos7操作系统虚拟机,IP地址192.168.22.100,CUP核心数2,4G运行内存,作为E ...

  6. Docker搭建 Nginx+PHP+MySQL 环境并部署WordPress实践

    本文给大家分享的是作者基于Docker搭建 Nginx+PHP+MySQL 环境并部署WordPress的详细过程,非常的全面,有需要的小伙伴可以参考下 Docker基于LXC实现了把软件封装到一个完 ...

  7. 本机php环境搭建教程:windows环境下wampserver的配置教程——超级详细

    转载自:http://youchunyan5.blog.163.com/blog/static/5896062020123474456352/ 本机php环境搭建教程:windows环境下wampse ...

  8. ELK 日志分析系统和部署

    目录 前言 一.日志分析 1.1  我们需要收集哪些日志 1.2  日志收集后,如何展示(可视化) 1.3   日志收集展示出来后,怎么使用 1.4  我们要怎么收集日志 二.ELK 日志分析系统简介 ...

  9. ELK 日志分析系统的部署

    文章目录 一.ELK前言 1.1 需要收集的日志 1.2 日志收集后,如何可视化 1.3 日志收集可视化后,怎么使用 1.4 要怎么收集日志 二.ELK简介 2.1 ElasticSearch介绍 2 ...

  10. docker环境下docker-compose一键式搭建skywalking链路追踪服务

    前言 本节内容我们使用docker-compose一键式搭建一套skywalking链路追踪服务,实现docker环境下的微服务链路追踪监控,在开始本节内容之前,我们需要提前安装好docker和doc ...

最新文章

  1. Android listView 去掉header和footer中的分割线
  2. 获取分辨率函数是什么_深度学习应用“Zero Shot”超分辨率重构图像
  3. import javax.servlet.http.HttpServletRequest 提示错误
  4. AMD迎接变革:加速OpenCL的未来
  5. python基础教程菜鸟教程-Python 基础教程
  6. 10. CSS 文本
  7. 动态新增表字段_动态称重检测系统助力智慧治超
  8. 省市区三级联动 mysql_javaweb--json--ajax--mysql实现省市区三级联动(附三级联动数据库)...
  9. 金毅泓:10.6美元持续上涨,金价萎靡关注晚间ADP数据
  10. 现代操作系统(原书第四版)课后题答案 —— 第二章 进程与线程
  11. r语言和pythonjava_python和R语言有什么区别?
  12. 计算机联锁控制系统的软件应具备信号操作功能,N6_计算机联锁控制系统原理-软件原理.ppt...
  13. loadrunner server压力测试 sql_LoadRunner压力测试实例 - 随风而逝 - 博客园
  14. 输入一个字符串,内有数字和非数字字符,例如: A123x456 17960? 302tab5876 将其中连续的数字作为一个整数,依次存放到一数组a中。例如,123存放在a[0],456放在a[1]中
  15. C#中取得日期的英文缩写
  16. 直击网易人工智能事业部:闷声发大财的新面孔
  17. Macbook Pro的Type-c接口失灵了如何解决?
  18. 如何实现windows命令提示符的tab补全
  19. Centos8 磁力链BT地址
  20. 面向微服务架构与传统架构、SOA对比,以及云化对比

热门文章

  1. 计算机开机最快,电脑开机速度,最快几秒?
  2. CSS的特殊性 (specificity)
  3. Excel中RATE函数的Java实现欢迎加入我的星球
  4. 2018.06~7 阅读随笔
  5. 随笔 2021-11-23
  6. php函数 chm,php函数手册 chm格式_PHP教程_源雷技术空间
  7. php for iis express,iis10.0完整安装包
  8. office 2019 word鼠标点击反应慢要等一下
  9. 小红书心灵捕手招募令,百亿流量扶持优质情感主播!
  10. 关于Unity中unitypackage文件的图标显示及打开方式异常问题的解决