微服务框架(二十八)Logstash 使用文档

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。本文为Logstash 使用文档

  此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。

  本文为Logstash 使用文档

本系列文章中所使用的框架版本为Spring Boot 2.0.3-RELEASE,Spring 5.0.7-RELEASE,Dubbo 2.6.2。

Logstash

Logstash 是开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到存储库中。(ELK套件中存储库为ES)

Logstash 启动

pipelines目录下存放了logstash所有的数据处理管道配置文件,故会启动所有流水线

--config.reload.automatic参数,自动重载配置

nohup ./bin/logstash --config.reload.automatic -f ./pipelines/ &

!> 目前为nohup实现后台启动,后续可考虑统一至supervisor管理

Logstash input

为了接收到日志信息,需要配置input插件

tcp

若日志信息为json格式,则codecjson,文本为plain

input {
  tcp {
    host => "172.16.7.7"
    port => "5045"
    codec => "json"
  }
}

beat

input{
  beats {
    host => "172.16.7.7"
    port => "5044"
    add_field => ["log_channel", "nginx"]
  }
}

Logstash filter

Logstash filter插件在事件执行的中间过程进行相关的数据处理,通常根据事件的特征选择性地使用相应的过滤器。

Filter插件列表详见Logstash Filter

grok

简述

Grok可以将非结构化日志数据解析为结构化和可查询的内容。

此工具非常适用于syslog日志,apache和其他Web服务器日志,mysql日志,以及通常为人类而非计算机使用而编写的任何日志格式。

Logstash默认提供约120种模式。详见grok原生正则,亦可在patterns_dir参数使用自定义的正则模式串

工作原理

Grok的工作原理是将文本模式组合成与日志匹配的内容。grok模式的语法是 %{SYNTAX:SEMANTIC}

示例

55.3.244.1 GET /index.html 15824 0.043

上述HTTP日志可使用以下模式匹配

%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}

对应Logstash文件为

input {
  file {
    path => "/var/log/http.log"
  }
}
filter {
  grok {
    match => { "message" => "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}" }
  }
}

经过grok过滤后,日志事件解析为以下字段

  • client: 55.3.244.1
  • method: GET
  • request: /index.html
  • bytes: 15824
  • duration: 0.043

json

  • skip_on_invalid_json:允许对无效json不进行过滤操作
  • source:进行json转换的字段
  • remove_field:删除字段(可用于剔除转换前的字段)
 json {
    skip_on_invalid_json => true
    source => "message"
    remove_field => ["message"]
 }

详细配置见Json filter plugin

geoip

geoip过滤器根据Maxmind geolite2数据库的数据,转换相应IP地址地理位置的信息。

geoip {
    source => "client_ip"
}

详细配置见Geoip filter plugin

FAQ

  1. 数据处理管道配置文件会在启动时自动merge,注意各pipeline中的操作会应用在所有流水线中
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
5天前
|
存储 消息中间件 API
“论微服务架构及其应用”写作框架,软考高级,系统架构设计师
论微服务架构及其应用近年来,随着互联网行业的迅猛发展,公司或组织业务的不断扩张,需求的快速变化以及用户量的不断增加,传统的单块(Monolithic)软件架构面临着越来越多的挑战,已逐渐无法适应互联网时代对软件的要求。在这一背景下,微服务架构模式(MicroserviceArchitecturePattern)逐渐流行,它强调将单一业务功能开发成微服务的形式,每个微服务运行在一个进程中;采用HTTP等通用协议和轻量级API实现微服务之间的协作与通信。这些微服务可以使用不同的开发语言以及不同数据存储技术,能够通过自动化部署工具独立发布,并保持最低限制的集中式管理。
|
14天前
|
Cloud Native Java API
Java一分钟之-Micronaut:轻量级微服务框架
【6月更文挑战第16天】Micronaut是面向JVM的微服务框架,以其快速启动、低内存占用著称。文章探讨了配置管理、注解理解和AOT编译的挑战,提供了解决方案,并通过一个简单的HTTP服务示例展示了如何创建控制器和应用启动类。通过克服这些问题,开发者能更好地利用Micronaut构建高效微服务。
40 8
|
10天前
|
开发框架 移动开发 JavaScript
SpringCloud微服务实战——搭建企业级开发框架(四十七):【移动开发】整合uni-app搭建移动端快速开发框架-添加Axios并实现登录功能
在uni-app中,使用axios实现网络请求和登录功能涉及以下几个关键步骤: 1. **安装axios和axios-auth-refresh**: 在项目的`package.json`中添加axios和axios-auth-refresh依赖,可以通过HBuilderX的终端窗口运行`yarn add axios axios-auth-refresh`命令来安装。 2. **配置自定义常量**: 创建`project.config.js`文件,配置全局常量,如API基础URL、TenantId、APP_CLIENT_ID和APP_CLIENT_SECRET等。
|
1月前
|
存储 Java Nacos
谈谈Nacos Stream 作为微服务异步消息框架相关特性
【5月更文挑战第21天】在本篇技术文章中,我们将深入探讨 Nacos Stream 作为微服务异步消息框架的关键特性,包括服务发现与健康监测、动态配置服务的概念、原理以及如何在实际应用中利用这些功能。
43 6
|
1月前
|
监控 Java Nacos
Java微服务框架面试总结(全面,实时更新)
Java微服务框架面试总结(全面,实时更新)
|
19天前
|
监控 PHP Docker
PHP框架如何应对微服务与容器化趋势
这篇文档讨论了PHP框架如何适应微服务和容器化趋势。主要内容包括:1) 微服务支持,如服务拆分与通信、服务发现与注册、数据持久化与缓存及安全与认证;2) 容器化支持,涉及轻量级与可移植性、自动化构建与部署、环境变量配置及日志与监控。文中通过代码示例展示了如何使用Laravel框架构建微服务和Docker容器化部署。最后,提到了扩展性和容错性在微服务架构中的重要性,并指出实践中还需考虑版本控制、灰度发布等高级功能。
23 0
|
1月前
|
开发框架 移动开发 JavaScript
SpringCloud微服务实战——搭建企业级开发框架(四十六):【移动开发】整合uni-app搭建移动端快速开发框架-环境搭建
正如优秀的软件设计一样,uni-app把一些移动端常用的功能做成了独立的服务或者插件,我们在使用的时候只需要选择使用即可。但是在使用这些服务或者插件时一定要区分其提供的各种服务和插件的使用场景,例如其提供的【uni-starter快速开发项目模版】几乎集成了移动端所需的所有基础功能,使用非常方便,但是其许可协议只允许对接其uniCloud的JS开发服务端,不允许对接自己的php、java等其他后台系统。
185 4
|
1天前
|
缓存 监控 负载均衡
探索微服务架构中的API网关模式
在现代软件开发领域,微服务架构因其灵活性和可扩展性而备受青睐。本文将深入探讨微服务架构中至关重要的组件——API网关。通过分析API网关的核心功能、设计原则以及实际应用案例,我们旨在揭示其在提高系统性能、增强安全性及简化客户端与服务间通信中的重要作用。结合最新研究和实际开发经验,本文将为读者提供关于如何有效实施API网关的深刻见解。
|
1天前
|
存储 负载均衡 云计算
微服务架构中的服务发现与注册机制
在分布式系统设计中,微服务架构因其灵活性和可伸缩性而受到青睐。本文深入探讨了微服务架构下的服务发现与注册机制,通过分析Eureka、Consul和Zookeeper等工具的原理与实践,揭示了这些机制如何优化服务间的通信和故障转移。文章结合最新研究和案例,提供了对微服务架构中关键组件的深刻见解,并讨论了其在不同场景下的应用效果。
|
1天前
|
Kubernetes Java 测试技术
探索微服务架构的演变与实践
【6月更文挑战第28天】在数字化时代,软件架构不断演进以应对复杂多变的业务需求。本文将深入探讨微服务架构从概念到实践的发展过程,分析其设计原则、技术选型及实施策略,并结合作者亲身经验,阐述在微服务转型过程中的挑战与解决之道。