当前位置: 首页 > news >正文

K8S部署ELK(四):部署logstash

目录

1. Logstash 简介

1.1 主要功能

1.2 核心组件

1.3 主要特点

1.4 典型应用场景

2. 部署logstash

2.1 创建Namespace

2.2 创建ConfigMap

2.3 创建Service

2.4 创建Deployment

2.5 部署所有资源

2.6 检查Logstash Pod状态


1. Logstash 简介

Logstash 是一个开源的数据收集引擎,具有实时管道处理能力,属于 Elastic Stack(原 ELK Stack)的一部分,常与 Elasticsearch 和 Kibana 配合使用。

1.1 主要功能

  1. 数据收集:从各种来源(日志文件、数据库、消息队列等)采集数据

  2. 数据处理:过滤、解析和转换数据

  3. 数据输出:将处理后的数据发送到目标存储或分析系统

1.2 核心组件

Logstash 处理管道包含三个主要部分:

  1. Input(输入插件):负责接收数据

    • 常见输入源:文件、syslog、Redis、Beats、Kafka、JDBC 等

  2. Filter(过滤插件):负责处理数据

    • 常用过滤器:Grok(模式匹配)、Mutate(字段操作)、Date(日期处理)、GeoIP(地理位置)等

  3. Output(输出插件):负责发送数据

    • 常见输出目标:Elasticsearch、文件、Email、TCP、HTTP 等

1.3 主要特点

  • 插件化架构:丰富的插件生态系统

  • 可扩展性:能够处理高吞吐量的数据

  • 灵活性:支持多种数据格式和协议

  • 实时处理:数据采集和处理几乎实时完成

1.4 典型应用场景

  1. 日志收集与分析

  2. 事件监控和告警

  3. 数据转换和规范化

  4. 作为数据管道连接不同系统

2. 部署logstash

2.1 创建Namespace

kubectl create namespace elk

2.2 创建ConfigMap

vim logstash-configmap.yaml
---
apiVersion: v1
kind: ConfigMap
metadata:namespace: elkname: logstash-configlabels:app: logstash
data:logstash.conf: |-input {kafka {bootstrap_servers => "kafka-0.kafka-headless.elk.svc.cluster.local:9092"topics => ["k8s-outlog"]group_id => "logstash-consumer-group"codec => "json"consumer_threads => 1decorate_events => truesecurity_protocol => "PLAINTEXT"  }}
​filter {if [fields][logformat] == "json" {json {source => "message"target => "message"}}}
​output {if [fields][logtype] =~ "k8s-outlog.*" { elasticsearch {hosts => ["http://elasticsearch-0.elasticsearch-cluster.elk.svc.cluster.local:9200"]index => "k8s-outlog-%{+YYYY.MM.dd}" }}if [fields][logtype] =~ "k8s-messagelog.*" { elasticsearch {hosts => ["http://elasticsearch-0.elasticsearch-cluster.elk.svc.cluster.local:9200"]index => "k8s-messagelog-%{+YYYY.MM.dd}" }}}

2.3 创建Service

vim logstash-service.yaml
apiVersion: v1
kind: Service
metadata:name: logstashnamespace: elklabels:app: logstash
spec:selector:app: logstashports:- protocol: TCPport: 5044 targetPort: 5044type: ClusterIP

2.4 创建Deployment

vim logstash-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: logstashnamespace: elk
spec:replicas: 1selector:matchLabels:app: logstashtemplate:metadata:labels:app: logstashspec:containers:- name: logstashimage: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.elastic.co/logstash/logstash:7.17.3env:- name: "PIPELINE_WORKERS"value: "2"- name: "PIPELINE_BATCH_SIZE"value: "5000"- name: "PIPELINE_BATCH_DELAY"value: "2"- name: "LS_JAVA_OPTS"value: "-Xms512m -Xmx1g"- name: "path.config"value: "/usr/share/logstash/pipeline"- name: "xpack.monitoring.elasticsearch.hosts"value: "http://elasticsearch-0.elasticsearch-cluster.elk.svc.cluster.local:9200"volumeMounts:- name: configmountPath: /usr/share/logstash/pipeline/logstash.confreadOnly: truesubPath: logstash.conf- mountPath: /etc/localtimereadOnly: true name: tz-configvolumes: - name: configconfigMap:name: logstash-config- name: tz-config hostPath: path: /etc/localtime

2.5 部署所有资源

[root@master1 Logstash]# ls
logstash-configmap.yaml  logstash-deployment.yaml  logstash-service.yaml
[root@master1 Logstash]# kubectl apply -f ./
configmap/logstash-config created
deployment.apps/logstash created
service/logstash created

2.6 检查Logstash Pod状态

[root@master1 Logstash]# kubectl get pod -n elk 
NAME                        READY   STATUS    RESTARTS      AGE
elasticsearch-0             1/1     Running   1 (29m ago)   21h
filebeat-6db9l              1/1     Running   1 (29m ago)   22h
filebeat-qllxg              1/1     Running   1 (29m ago)   22h
filebeat-r5hw7              1/1     Running   1 (29m ago)   22h
kafka-0                     1/1     Running   1 (30m ago)   21h
logstash-6d88fd886d-2cg9p   1/1     Running   0             65s
http://www.lryc.cn/news/608590.html

相关文章:

  • MATLAB小波分析工具包进行时间序列的小波功率谱分析
  • 后端研发转型爬虫实战:Scrapy 二开爬虫框架的避坑指南
  • 量子物理学的前沿意义虚无、形式混乱
  • 0803 思维导图+小项目
  • Python爬虫实战:研究awesome-python工具,构建技术资源采集系统
  • uniapp 跨端开发
  • 机器学习——下采样(UnderSampling),解决类别不平衡问题,案例:逻辑回归 信用卡欺诈检测
  • 什么是shebang
  • Java基础:代码块/内部类/Lambda函数/常用API/GUI编程
  • JavaEE初阶第十三期:解锁多线程,从 “单车道” 到 “高速公路” 的编程升级(十一)
  • 自动驾驶中的传感器技术20——Camera(11)
  • 【MATLAB】(六)多项式的创建与四则运算
  • TCP-单线程版本
  • pytorch 安装
  • 2025年渗透测试面试题总结-2025年HW(护网面试) 76-1(题目+回答)
  • cmd怎么取消关机命令
  • 麦肯锡咨询公司PEI经典面试题目汇总
  • 【一天一个知识点】RAG遇见推理
  • Piriority_queue
  • sifu mod制作 相关经验
  • Linux性能监控与调优全攻略
  • 轻量级鼠标右键增强工具 MousePlus
  • 轨道追逃博弈仿真
  • FreeRTOS源码分析二:task启动(RISCV架构)
  • 断路器瞬时跳闸曲线数据获取方式
  • Codeforces Round 1039 (Div. 2) A-C
  • 搜索引擎评估革命:用户行为模型如何颠覆传统指标?
  • Pytorch-02数据集和数据加载器的基本原理和基本操作
  • Node.js 路由与中间件
  • DyWA:用于可推广的非抓握操作的动态自适应世界动作模型