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

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.xdnf.cn/news/16869.html

相关文章:

  • JDBC核心技术与预编译SQL实战
  • 2、RabbitMQ的5种模式基本使用(Maven项目)
  • 算法竞赛阶段二-数据结构(39)数据结构栈模拟实现
  • npm ERR! code CERT_HAS_EXPIRED:解决证书过期问题
  • PHP入门及数据类型
  • Noob靶机攻略
  • AI + 云原生:正在引爆下一代应用的技术革命
  • malloc、calloc、realloc
  • deep research|从搜索引擎到搜索助手的实践(一)
  • 西门子PLC基础指令4:输出指令、立即输出指令
  • 【Bluetooth】【基础篇】第二章 关于蓝牙协议栈架构与其硬件方案架构大致概述
  • 12.Redis 主从复制
  • innoDB的buffer pool
  • 2025熵密杯 -- 初始谜题 -- Reproducibility
  • sqli-labs:Less-19关卡详细解析
  • 交互 Codeforces Round 1040 Interactive RBS
  • 网易云音乐硬刚腾讯系!起诉SM娱乐滥用市场支配地位
  • 联合索引全解析:一棵树,撑起查询的半边天
  • Anthropic:跨越生产效能拐点的AI增长飞轮
  • Linux学习--数据结构
  • 牛客 - 旋转数组的最小数字
  • MySQL 内置函数
  • Anthropic最新研究Persona vector人格向量
  • Python正则表达式使用指南:从基础到实战
  • 2025.8.2
  • VScode对Ubuntu用root账号进行SSH远程连接开发
  • 文心4.5开源测评:国产大模型的轻量化革命与全栈突破
  • 每日五个pyecharts可视化图表-bars(1)
  • SpringBoot启动项目详解
  • 详解Python标准库之命令行界面库