Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
akin-ozer avatar

Fluentbit Generator

  • 373 installs
  • 286 repo stars
  • Updated July 26, 2026
  • akin-ozer/cc-devops-skills

fluentbit-generator is an agent skill that generates production Fluent Bit log pipeline configs for developers who need Kubernetes or host telemetry forwarded to Loki, Elasticsearch, or CloudWatch.

About

fluentbit-generator is an agent skill from akin-ozer/cc-devops-skills that generates production-ready Fluent Bit configurations with SERVICE, INPUT, FILTER, OUTPUT, and PARSER sections. The bundled generate_config.py script supports 13 named use cases including kubernetes-loki, kubernetes-elasticsearch, kubernetes-cloudwatch, kubernetes-opentelemetry, application-multiline, syslog-forward, file-tail-s3, http-kafka, multi-destination, prometheus-metrics, lua-filtering, stream-processor, and custom. The skill directory includes 19 files with example configs and parsers.conf for docker, cri, json, nginx, and multiline Java, Python, Go, and Ruby patterns. Agents gather input sources, parsing needs, filters, and destinations, then emit fluent-bit.conf with buffer limits, flush intervals, TLS, and retry settings. Pair with fluentbit-validator in the same repo to dry-run configs when the fluent-bit binary is available.

  • Produce Fluent Bit configs from requirements
  • Standardize log routing to backends
  • Reduce observability wiring mistakes
  • Support multi-source ingestion patterns
  • Speed up production logging rollout

Fluentbit Generator by the numbers

  • 373 all-time installs (skills.sh)
  • Ranked #313 of 1,435 DevOps & CI/CD skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/akin-ozer/cc-devops-skills --skill fluentbit-generator

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs373
repo stars286
Last updatedJuly 26, 2026
Repositoryakin-ozer/cc-devops-skills

How do you generate Fluent Bit configs for Kubernetes?

Generate Fluent Bit input, filter, and output configuration so services emit structured logs and metrics to observability backends with less manual YAML editing.

Who is it for?

Platform and SRE engineers standing up Kubernetes log collection to Loki, Elasticsearch, S3, Kafka, CloudWatch, or OpenTelemetry.

Skip if: Teams already standardized on a managed log agent with no Fluent Bit footprint or purely application-level unit testing work.

When should I use this skill?

A developer asks to create, generate, build, or configure Fluent Bit configs, log pipelines, or Kubernetes log forwarding.

What you get

fluent-bit.conf, parsers.conf sections, validated plugin parameters, and destination-specific log forwarding pipelines.

  • fluent-bit.conf
  • Parser definitions
  • Production pipeline configuration

By the numbers

  • generate_config.py supports 13 named Fluent Bit use cases
  • Skill bundle includes 19 files with examples, scripts, and parsers

Files

SKILL.mdMarkdownGitHub ↗

Fluent Bit Config Generator

Trigger Guidance

Use this skill when the user asks for any of the following:

  • Create or update a Fluent Bit config (fluent-bit.conf, parsers.conf)
  • Build a log pipeline (INPUT -> FILTER -> OUTPUT)
  • Configure Kubernetes logging with metadata enrichment
  • Send logs/metrics to Elasticsearch, Loki, CloudWatch, S3, Kafka, OTLP, or Prometheus remote write
  • Implement parser, multiline, lua, or stream processing behavior

Do not use this skill for pure validation-only requests; use fluentbit-validator in that case.

Execution Flow

Follow this sequence exactly. Do not skip stages.

Stage 1: Set Working Context and Preflight

Use one of these deterministic command patterns.

# Option A (recommended): run from this skill directory
cd /Users/akinozer/GolandProjects/cc-devops-skills/devops-skills-plugin/skills/fluentbit-generator
python3 scripts/generate_config.py --help
# Option B: run from any cwd with absolute paths
python3 /Users/akinozer/GolandProjects/cc-devops-skills/devops-skills-plugin/skills/fluentbit-generator/scripts/generate_config.py --help

Preflight checks:

  • Confirm python3 is available.
  • Confirm script help loads without errors.
  • If using relative output paths, run from the intended target cwd.

Fallback:

  • If python3 or script execution is unavailable, switch to manual generation flow (Stage 4) using examples/ templates.

Stage 2: Clarification Questionnaire (Explicit Template)

Collect these fields before generation.

Required questions: 1. Primary use case: kubernetes, application logs, syslog, http ingest, metrics, or custom? 2. Inputs: which sources and paths/ports (for example tail /var/log/containers/*.log)? 3. Outputs: destination plugin(s) and endpoint(s) (host, port, uri/topic/index/bucket)? 4. Reliability/security requirements: TLS on/off, retry expectations, buffering limits? 5. Environment context: cluster name, environment name, cloud region (if applicable)?

Optional but important: 1. Expected log format: json, regex, cri, docker, multiline stack traces? 2. Throughput profile: low/medium/high and acceptable latency? 3. Constraints: offline environment, missing binaries, read-only filesystem?

If any required answer is missing, ask focused follow-up questions before generating.

Stage 3: Decide Script vs Manual Generation

Use this decision table.

ConditionPath
Request matches a built-in use case and only needs supported flagsScript path (Stage 5)
Request needs uncommon plugin options not represented by script flagsManual path (Stage 4)
Complex multi-filter chain, custom parser/lua logic, or specialized plugin tuningManual path (Stage 4)
Script cannot run in environment (missing Python/permissions)Manual path (Stage 4)
User explicitly requests hand-crafted configManual path (Stage 4)

Supported script use cases:

  • kubernetes-elasticsearch
  • kubernetes-loki
  • kubernetes-cloudwatch
  • kubernetes-opentelemetry
  • application-multiline
  • syslog-forward
  • file-tail-s3
  • http-kafka
  • multi-destination
  • prometheus-metrics
  • lua-filtering
  • stream-processor
  • custom

Always state the decision explicitly, including why the other path was not used.

Stage 4: Manual Generation (When Script Is Not the Best Fit)

1. Read the closest template in examples/ first. 2. Read examples/parsers.conf before defining new parsers. 3. Assemble config in this order:

  • [SERVICE]
  • [INPUT]
  • [FILTER]
  • [OUTPUT]
  • parser definitions (if needed)

4. Reuse known-good sections from examples and only customize required parameters. 5. Keep tags and parser references consistent across sections.

Required local template selection:

  • Kubernetes + Elasticsearch: examples/kubernetes-elasticsearch.conf
  • Kubernetes + Loki: examples/kubernetes-loki.conf
  • Kubernetes + CloudWatch: examples/cloudwatch.conf
  • Kubernetes + OpenTelemetry: examples/kubernetes-opentelemetry.conf
  • App multiline: examples/application-multiline.conf
  • Syslog forward: examples/syslog-forward.conf
  • File to S3: examples/file-tail-s3.conf
  • HTTP to Kafka: examples/http-input-kafka.conf
  • Multi destination: examples/multi-destination.conf
  • Metrics: examples/prometheus-metrics.conf
  • Lua filtering: examples/lua-filtering.conf
  • Stream processor: examples/stream-processor.conf
  • Parsers: examples/parsers.conf

Fallback:

  • If no matching example exists, start from scripts/generate_config.py --use-case custom output shape and extend manually.

Stage 5: Script Generation Commands (Deterministic Examples)

Run from skill directory unless output path is absolute.

cd /Users/akinozer/GolandProjects/cc-devops-skills/devops-skills-plugin/skills/fluentbit-generator

# Kubernetes -> Elasticsearch
python3 scripts/generate_config.py \
  --use-case kubernetes-elasticsearch \
  --cluster-name prod-cluster \
  --environment production \
  --es-host elasticsearch.logging.svc \
  --es-port 9200 \
  --output output/fluent-bit.conf

# Kubernetes -> OpenTelemetry
python3 scripts/generate_config.py \
  --use-case kubernetes-opentelemetry \
  --cluster-name prod-cluster \
  --environment production \
  --otlp-endpoint otel-collector.observability.svc:4318 \
  --output output/fluent-bit-otlp.conf

# File tail -> S3
python3 scripts/generate_config.py \
  --use-case file-tail-s3 \
  --log-path /var/log/app/*.log \
  --s3-bucket my-logs-bucket \
  --s3-region us-east-1 \
  --output output/fluent-bit-s3.conf

Fallback:

  • If a required option is unsupported by the script, document that gap and switch to Stage 4.

Stage 6: Plugin Documentation Lookup Fallback Chain

Use this strict order when plugin behavior or parameters are uncertain.

1. Context7 (first choice)

  • Resolve library id for Fluent Bit docs.
  • Query plugin-specific configuration details.

2. Official Fluent Bit docs (second choice)

  • Use https://docs.fluentbit.io/manual and plugin-specific pages.
  • Prefer official plugin reference sections over blogs.

3. Web search (last choice)

  • Use only when Context7 and official docs are unavailable/incomplete.
  • Prioritize sources that quote or link official docs.

When to stop escalating:

  • Stop as soon as required parameters and one validated example are found.
  • If all sources are unavailable, proceed with local examples/ and clearly mark assumptions.

Stage 7: Validation and Fallback Behavior

Primary validation path:

  • Invoke fluentbit-validator after generation.

If validator is unavailable, run local fallback checks:

# Syntax/format smoke check when fluent-bit is installed
fluent-bit -c <generated-config> --dry-run

# Optional execution test
fluent-bit -c <generated-config>

If fluent-bit binary is missing:

  • Perform static checks manually:
  • section headers are valid ([SERVICE], [INPUT], [FILTER], [OUTPUT])
  • required plugin keys exist
  • tag/match patterns align
  • parser names/files referenced correctly
  • no hardcoded credentials
  • Report that runtime validation was skipped and why.

Stage 8: Response Contract

Always return: 1. Generation path used (script or manual) and reason. 2. Produced file(s) and key plugin choices. 3. Validation results (or explicit skip reason with fallback checks performed). 4. Assumptions, open risks, and what to customize next.

Done Criteria

This skill execution is complete only when all are true:

  • Trigger fit was explicitly confirmed.
  • Clarification questionnaire captured required fields or documented assumptions.
  • Script-vs-manual decision was explicit and justified.
  • Plugin lookup used deterministic chain: Context7 -> official docs -> web (as needed).
  • Commands were provided with cwd-safe examples.
  • Fallback behavior was applied for any missing tools/docs/network constraints.
  • Validation was executed (or skipped with explicit reason and fallback static checks).
  • Final response included generated artifacts, validation outcome, and next customization points.

Local Resources

  • Script: scripts/generate_config.py
  • Templates: examples/*.conf
  • Parsers baseline: examples/parsers.conf
  • Sample output directory: output/

Use these resources first before introducing new structure.

Related skills

How it compares

Pick fluentbit-generator over hand-edited snippets when you need tested Kubernetes-to-Loki or multiline parsing templates with validation hooks.

FAQ

Which Fluent Bit use cases does fluentbit-generator script support?

fluentbit-generator's generate_config.py supports 13 use cases including kubernetes-loki, kubernetes-elasticsearch, kubernetes-cloudwatch, kubernetes-opentelemetry, application-multiline, syslog-forward, file-tail-s3, http-kafka, multi-destination, prometheus-metrics, lua-filteri

What outputs can fluentbit-generator configure?

fluentbit-generator configures Fluent Bit outputs to Elasticsearch, Grafana Loki, AWS S3, CloudWatch, Kafka, HTTP endpoints, stdout, forward protocol, and OpenTelemetry collectors with TLS, retry, and buffer tuning.

DevOps & CI/CDmonitoringinfradeploy

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.