不得不学,从零到一搭建ELK日志,Docker环境下部署 logstash工具
前言
大家好,我是佳佳,最近在玩 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来进行管理。
- 安装Logstash镜像
docker pull docker.elastic.co/logstash/logstash:7.7.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"}
}
复制代码
注意了,在这里我们可以配置索引的名称,以方便我们后面在查看
- 启动容器
最重要的一个环节来了,成败在此一举
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
复制代码
指令可能存在换行的问题,可以先复制出来去掉换行
启动结果:
- 验证是否启动成功
通过docker logs id 来看logstash是否启动成功
看到Successfully就表示成功了
- 修改 filebeat 配置文件
在前面的文章中我们已经将FlieBeat + Es + Kibana 的合并操作
我们只需要修改 filebeat 配置文件 filebeat.yml
将输出地址更改为我们部署的 logstash 地址
filebeat.inputs:
- type: logenabled: truepaths:- /usr/share/filebeat/logs/*output.logstash:hosts: ["ip:9900"]
复制代码
- 查询是否生成索引
curl http://localhost:9200/_cat/indices?v
复制代码
看到自定义名称的那个索引,就表示成功了
上Kibana查看
总结
我们主要完成在Docker环境下部署 logstash 日志收集工具,他是搭建ELK日志非常重要的一部分,上一篇文章Filebeat日志收集完成之后,将数据写入 Elasticsearch 后用 Kibana 进行可视化展示,现在我们已经完成了
Filebeat 收集数据写入 logstash处理,再将数据写入 Elasticsearch 后 Kibana 进行可视化展示的全过程。
欢迎大家评论、点赞、收藏~
如有不对的地方欢迎指出!
不得不学,从零到一搭建ELK日志,Docker环境下部署 logstash工具相关推荐
- 搭建ELK日志分析平台(上)—— ELK介绍及搭建 Elasticsearch 分布式集群
笔记内容:搭建ELK日志分析平台(上)-- ELK介绍及搭建 Elasticsearch 分布式集群 笔记日期:2018-03-02 27.1 ELK介绍 27.2 ELK安装准备工作 27.3 安装 ...
- 搭建ELK日志分析系统详解
日志分析是运维工程师解决系统故障.发现问题的主要手段.日志包含多种类型,包括程序日志.系统日志以及安全日志等.通过对日志的分析,既可以做到未雨绸缪.预防故障的发生,又可以在故障发生时,寻找蛛丝马迹.快 ...
- 搭建ELK日志分析平台(下)—— 搭建kibana和logstash服务器
27.6 安装kibana 27.7 安装logstash 27.8 配置logstash 27.9 kibana上查看日志 27.10 收集nginx日志 27.11 使用beats采集日志 本文是 ...
- springcloud搭建elk日志管理
对于java项目查看日志方法很多,由于项目需要,查看日志需要命令查看,为方便后端开发人员查看错误日志,项目要求搭建elk日志管理 此次是springcloud搭建elk,spirngboot亦可如此 ...
- 搭建ELK日志服务器
实验名称:搭建ELK日志分析服务器 实验要求:搭建ELK日志分析系统并进行验证 实验环境: 一台centos7操作系统虚拟机,IP地址192.168.22.100,CUP核心数2,4G运行内存,作为E ...
- Docker搭建 Nginx+PHP+MySQL 环境并部署WordPress实践
本文给大家分享的是作者基于Docker搭建 Nginx+PHP+MySQL 环境并部署WordPress的详细过程,非常的全面,有需要的小伙伴可以参考下 Docker基于LXC实现了把软件封装到一个完 ...
- 本机php环境搭建教程:windows环境下wampserver的配置教程——超级详细
转载自:http://youchunyan5.blog.163.com/blog/static/5896062020123474456352/ 本机php环境搭建教程:windows环境下wampse ...
- ELK 日志分析系统和部署
目录 前言 一.日志分析 1.1 我们需要收集哪些日志 1.2 日志收集后,如何展示(可视化) 1.3 日志收集展示出来后,怎么使用 1.4 我们要怎么收集日志 二.ELK 日志分析系统简介 ...
- ELK 日志分析系统的部署
文章目录 一.ELK前言 1.1 需要收集的日志 1.2 日志收集后,如何可视化 1.3 日志收集可视化后,怎么使用 1.4 要怎么收集日志 二.ELK简介 2.1 ElasticSearch介绍 2 ...
- docker环境下docker-compose一键式搭建skywalking链路追踪服务
前言 本节内容我们使用docker-compose一键式搭建一套skywalking链路追踪服务,实现docker环境下的微服务链路追踪监控,在开始本节内容之前,我们需要提前安装好docker和doc ...
最新文章
- Android listView 去掉header和footer中的分割线
- 获取分辨率函数是什么_深度学习应用“Zero Shot”超分辨率重构图像
- import javax.servlet.http.HttpServletRequest 提示错误
- AMD迎接变革:加速OpenCL的未来
- python基础教程菜鸟教程-Python 基础教程
- 10. CSS 文本
- 动态新增表字段_动态称重检测系统助力智慧治超
- 省市区三级联动 mysql_javaweb--json--ajax--mysql实现省市区三级联动(附三级联动数据库)...
- 金毅泓:10.6美元持续上涨,金价萎靡关注晚间ADP数据
- 现代操作系统(原书第四版)课后题答案 —— 第二章 进程与线程
- r语言和pythonjava_python和R语言有什么区别?
- 计算机联锁控制系统的软件应具备信号操作功能,N6_计算机联锁控制系统原理-软件原理.ppt...
- loadrunner server压力测试 sql_LoadRunner压力测试实例 - 随风而逝 - 博客园
- 输入一个字符串,内有数字和非数字字符,例如: A123x456 17960? 302tab5876 将其中连续的数字作为一个整数,依次存放到一数组a中。例如,123存放在a[0],456放在a[1]中
- C#中取得日期的英文缩写
- 直击网易人工智能事业部:闷声发大财的新面孔
- Macbook Pro的Type-c接口失灵了如何解决?
- 如何实现windows命令提示符的tab补全
- Centos8 磁力链BT地址
- 面向微服务架构与传统架构、SOA对比,以及云化对比
热门文章
- 计算机开机最快,电脑开机速度,最快几秒?
- CSS的特殊性 (specificity)
- Excel中RATE函数的Java实现欢迎加入我的星球
- 2018.06~7 阅读随笔
- 随笔 2021-11-23
- php函数 chm,php函数手册 chm格式_PHP教程_源雷技术空间
- php for iis express,iis10.0完整安装包
- office 2019 word鼠标点击反应慢要等一下
- 小红书心灵捕手招募令,百亿流量扶持优质情感主播!
- 关于Unity中unitypackage文件的图标显示及打开方式异常问题的解决