bitnamicharts/logstashLogstash 是一款开源数据处理引擎,能够实时从多个来源摄入数据、进行转换处理并将结果输出到指定目的地。作为 ELK (Elasticsearch, Logstash, Kibana) 技术栈的核心组件,它主要用于日志聚合、数据转换和实时数据流处理。Bitnami 提供的 Logstash 镜像经过优化,支持在 Kubernetes 环境中通过 Helm 包管理器快速部署,同时提供安全加固选项和灵活的配置能力。
Logstash 官方概述
商标说明:本软件列表由 Bitnami 打包,所提及的商标归各自公司所有,使用不意味着任何关联或认可。
consolehelm install my-release oci://registry-1.docker.io/bitnamicharts/logstash
生产环境建议使用 VMware Tanzu Application Catalog(Bitnami 目录商业版)获取长期支持。
自 2025 年 8 月 28 日起,Bitnami 将启动 Bitnami Secure Images 计划,对公共镜像目录进行重大调整:
docker.io/bitnami 迁移至 docker.io/bitnamilegacy 仓库,且不再更新更多详情参见 Bitnami Secure Images 公告。
使用以下命令安装默认配置的 Logstash Chart,发布名称为 my-release:
consolehelm install my-release oci://REGISTRY_NAME/REPOSITORY_NAME/logstash
替换占位符:
REGISTRY_NAME为镜像仓库(如registry-1.docker.io),REPOSITORY_NAME为存储库(如bitnamicharts)。
console# 列出 Helm 发布 helm list # 检查 Pod 状态 kubectl get pods -l app.kubernetes.io/name=logstash # 查看 Logstash 日志 kubectl logs -f <logstash-pod-name>
通过 resources 参数设置容器资源请求和限制,生产环境建议显式配置:
yamlresources: requests: cpu: 500m memory: 512Mi limits: cpu: 1000m memory: 1Gi
也可使用
resourcesPreset参数选择预设配置(仅推荐开发环境)。
支持多种服务暴露方式,通过 service.type 配置:
ClusterIP(默认):仅集群内访问
yamlservice: type: ClusterIP port: 8080
NodePort:节点端口暴露
yamlservice: type: NodePort nodePort: 30080
Load***:云厂商负载均衡器
yamlservice: type: Load*** load***IP: "x.y.z.w"
Ingress:HTTP/HTTPS 路由
yamlingress: enabled: true hostname: logstash.example.com tls: true
通过 input、filter 和 output 参数直接定义处理流程:
yamlinput: | beats { port => 5044 } filter: | grok { match => { "message" => "%{COMBINEDAPACHELOG}" } } output: | elasticsearch { hosts => ["elasticsearch:9200"] index => "logstash-%{+YYYY.MM.dd}" } stdout { codec => rubydebug }
使用现有 ConfigMap 挂载配置(优先级高于上述参数):
yamlexistingConfiguration: "my-logstash-config"
ConfigMap 需包含 Logstash 配置文件(如 logstash.conf):
bashkubectl create configmap my-logstash-config --from-file=logstash.conf
启用多管道支持需设置 enableMultiplePipelines: true 并提供 pipelines.yml 配置:
创建包含多管道配置的 ConfigMap:
bash# 创建配置文件 cat > pipelines.yml <<EOF - pipeline.id: access_logs path.config: "/opt/bitnami/logstash/config/access.conf" - pipeline.id: error_logs path.config: "/opt/bitnami/logstash/config/error.conf" EOF cat > access.conf <<EOF input { tcp { port => 5000 } } output { elasticsearch { index => "access-%{+YYYY.MM.dd}" } } EOF cat > error.conf <<EOF input { tcp { port => 5001 } } output { elasticsearch { index => "error-%{+YYYY.MM.dd}" } } EOF # 创建 ConfigMap kubectl create cm logstash-multipipeline --from-file=pipelines.yml --from-file=access.conf --from-file=error.conf
部署启用多管道:
bashhelm install logstash bitnamicharts/logstash \ --set enableMultiplePipelines=true \ --set existingConfiguration=logstash-multipipeline
通过以下方式注入环境变量:
直接定义:
yamlextraEnvVars: - name: ELASTICSEARCH_USER value: "logstash_user"
从 Secret 注入:
yamlextraEnvVarsSecret: "logstash-secrets" # 包含 ELASTICSEARCH_PASSWORD 等密钥
从 ConfigMap 注入:
yamlextraEnvVarsCM: "logstash-env" # 包含非敏感配置
Logstash 数据默认存储在 /bitnami/logstash/data,通过 PVC 持久化:
yamlpersistence: enabled: true storageClass: "standard" size: 10Gi path: "/bitnami/logstash/data"
设置
persistence.enabled: false可禁用持久化(仅推荐开发环境)。
| 参数名称 | 描述 | 默认值 |
|---|---|---|
global.imageRegistry | 全局镜像仓库地址 | "" |
global.imagePullSecrets | 镜像拉取密钥数组 | [] |
global.defaultStorageClass | 默认存储类 | "" |
global.security.allowInsecureImages | 允许不安全镜像 | false |
| 参数名称 | 描述 | 默认值 |
|---|---|---|
image.registry | 镜像仓库 | docker.io |
image.repository | 镜像名称 | bitnami/logstash |
image.tag | 镜像标签 | latest |
image.pullPolicy | 镜像拉取策略 | IfNotPresent |
enableMonitoringAPI | 启用监控 API | true |
monitoringAPIPort | 监控 API 端口 | 9600 |
input | 输入插件配置 | "" |
filter | 过滤插件配置 | "" |
output | 输出插件配置 | "" |
enableMultiplePipelines | 启用多管道支持 | false |
existingConfiguration | 外部配置 ConfigMap 名称 | "" |
| 参数名称 | 描述 | 默认值 |
|---|---|---|
resources.requests.cpu | CPU 请求 | 250m |
resources.requests.memory | 内存请求 | 256Mi |
service.type | 服务类型 | ClusterIP |
service.port | 服务端口 | 8080 |
ingress.enabled | 启用 Ingress | false |
| 参数名称 | 描述 | 默认值 |
|---|---|---|
persistence.enabled | 启用持久化 | true |
persistence.storageClass | 存储类 | "" |
persistence.size | 存储大小 | 8Gi |
persistence.path | 数据存储路径 | /bitnami/logstash/data |
使用 Velero 工具进行备份和恢复:
bashvelero backup create logstash-backup --include-resources=pvc,pv --selector app.kubernetes.io/name=logstash
bashvelero restore create --from-backup logstash-backup
详细步骤参见 Bitnami 备份指南
docker.io/bitnamilegacy 仓库,不再更新logstash -t 验证配置语法正确性完整文档参见 Bitnami Logstash Chart 仓库



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务