Fluent Bit
Overview
Fluent Bit is the fast, lightweight, vendor-neutral log and metrics processor and forwarder from the Fluent project (a CNCF graduated project). It collects data from many sources, parses and filters it, and routes it to dozens of destinations, all from a tiny memory footprint.
The SecureAnyCloud image installs Fluent Bit from the official Fluent Bit apt repository as /opt/fluent-bit/bin/fluent-bit. It ships a ready-to-run sample pipeline and enables the built-in HTTP monitoring server, so you can check health and metrics from the moment the VM boots. This is a headless service: the HTTP monitoring server binds to 127.0.0.1 only, so no inbound application port is needed beyond SSH.
What you get:
- Fluent Bit 5.x (Apache-2.0) from the official Fluent Bit apt repository
- The package
fluent-bit.servicesystemd unit, enabled and running on boot - A sample pipeline at
/etc/fluent-bit/fluent-bit.conf: acpuinput, arecord_modifierfilter, and two outputs (a rotating file under/var/log/fluent-bit/and stdout) - The built-in HTTP monitoring server on
127.0.0.1:2020(/api/v1/health,/api/v1/metrics,/api/v1/uptime) - 24/7 SecureAnyCloud support
Prerequisites
You need an active Azure subscription, an SSH key pair, and a VNet with a subnet in the target region. Standard_B2s (2 vCPU / 4 GiB RAM) is a good starting point.
On the network security group (NSG), allow inbound 22/tcp from your management network. No inbound application ports are required.
Step 1 - Deploy from the Azure Marketplace
Sign in to the Azure Portal, choose Create a resource, search the Marketplace for Fluent Bit by SecureAnyCloud, and select Create. On the Basics tab, pick your subscription, resource group, region and size. Under Administrator account, choose SSH public key and paste your key. Under Inbound port rules, allow SSH (22). Then select Review + create and Create.
Step 2 - Deploy from the Azure CLI
# Accept the Marketplace terms once per subscription (required before the first CLI deploy)
az vm image terms accept --urn sac1647283583153:fluent-bit-ubuntu-24-04:default:latest
az vm create \
--resource-group <your-rg> \
--name fluent-bit \
--image sac1647283583153:fluent-bit-ubuntu-24-04:default:latest \
--size Standard_B2s \
--admin-username azureuser \
--ssh-key-values ~/.ssh/id_ed25519.pub \
--vnet-name <your-vnet> --subnet <your-subnet> \
--public-ip-sku StandardStep 3 - Connect to your VM
ssh azureuser@<vm-public-ip>Step 4 - Confirm Fluent Bit is installed and running
Check the version and that the service is active:
fluent-bit --version systemctl is-active fluent-bitfluent-bit --version reports Fluent Bit v5.x, and systemctl is-active fluent-bit prints active.
Step 5 - Review the sample pipeline
The ready-to-run pipeline lives at /etc/fluent-bit/fluent-bit.conf. It enables the HTTP monitoring server, reads CPU metrics every second (a guaranteed source of records), stamps each record with the hostname, and fans the stream out to a file and to stdout:
cat /etc/fluent-bit/fluent-bit.confStep 6 - Check the HTTP monitoring server health
Fluent Bit's built-in HTTP server exposes a liveness endpoint that returns 200 ok when the engine is healthy:
curl -s http://127.0.0.1:2020/api/v1/healthIt prints ok.
Step 7 - Inspect live pipeline metrics
The /api/v1/metrics endpoint returns JSON with per-plugin record and byte counters. Watch the input, filter and output counters climb as the pipeline processes records:
curl -s http://127.0.0.1:2020/api/v1/metrics | head -c 600The input object shows the cpu plugin's records count, and the output object shows the file and stdout plugins each processing those records.
Step 8 - Watch records flow through the pipeline
The file output writes every record to /var/log/fluent-bit/records.log. Tail it to see the live stream. Each line is a CPU sample stamped with your hostname and the sac-sample pipeline tag:
tail -n 5 /var/log/fluent-bit/records.logStep 9 - Customise the pipeline
Edit /etc/fluent-bit/fluent-bit.conf to point Fluent Bit at your own sources and destinations, then restart the service. A few common building blocks:
# Tail application log files [INPUT] Name tail Path /var/log/myapp/*.log Tag myapp
# Forward to Elasticsearch / OpenSearch [OUTPUT] Name es Match * Host my-search-host Port 9200
# Forward to Loki, Kafka, S3, Azure Blob, HTTP, and many moreAfter editing, apply your changes:
sudo systemctl restart fluent-bitFluent Bit ships dozens of input, parser, filter and output plugins (tail, systemd, syslog, HTTP, Prometheus, OpenTelemetry, Elasticsearch, Loki, Kafka, S3, Azure, and more). See the Fluent Bit documentation for the full catalogue.
Maintenance
- Service: systemd manages the service. Use
systemctl status fluent-bitandjournalctl -u fluent-bit. - Configuration: The files are
/etc/fluent-bit/fluent-bit.confand/etc/fluent-bit/parsers.conf. Restart the service after edits. - Monitoring: The HTTP server on
127.0.0.1:2020exposes/api/v1/health,/api/v1/metricsand/api/v1/uptime. Scrape/api/v1/metrics/prometheusfor Prometheus. - Upgrades: The package is held at the shipped version. To upgrade, run
sudo apt-mark unhold fluent-bit && sudo apt-get update && sudo apt-get install --only-upgrade fluent-bit. - Security patches: unattended-upgrades remains enabled, so the OS continues to receive security updates automatically.
Support
SecureAnyCloud provides 24/7 expert support for this image. Contact sales@secureanycloud.com.
Fluent Bit is a trademark of the Fluent project, hosted by the Cloud Native Computing Foundation. SecureAnyCloud is not affiliated with or endorsed by the Fluent project or the CNCF.
Deploy on Azure
Launch Fluent Bit on Ubuntu 24.04 LTS on Azure with 24/7 support from SecureAnyCloud.
View this image
Need Help?
Our support team is available 24/7.
sales@secureanycloud.com
Overview
This image runs Fluent Bit, the fast, lightweight and highly scalable open-source log processor and forwarder. Fluent Bit collects logs, metrics and traces from many sources and parses and filters them through a configurable pipeline. It then routes the records to dozens of destinations, including Elasticsearch, OpenSearch, Loki, Kafka, S3, CloudWatch, Splunk and any HTTP endpoint.
The image is a ready-to-use telemetry pipeline appliance. fluent-bit.service is enabled and starts on boot, running a self-contained sample pipeline, so the service is already processing records when you connect over SSH.
What you get:
- A headless log-pipeline service with no web interface and no credentials to manage, run as a long-lived daemon driven by the configuration directory at
/etc/fluent-bit/ - The built-in HTTP monitoring server, enabled and bound to loopback only (
127.0.0.1:2020), so the health, metrics and uptime endpoints answer on the instance without ever being exposed to the network - A security group that opens port 22 only, so you open whatever ingest or forward ports your own pipeline needs
- The filesystem storage buffer and the sample file output on a dedicated, independently resizable EBS data volume mounted at
/var/lib/fluent-bit - An on-disk pipeline buffer that protects against bursts and brief output outages, and any records that the sample pipeline persists, on durable storage rather than the operating system disk
Prerequisites
Before you deploy this image, you need:
- An Amazon Web Services account where you can launch EC2 instances
- IAM permissions to launch instances, create security groups, and subscribe to AWS Marketplace products
- An EC2 key pair in the target Region for SSH access to the instance
- A VPC and subnet in the target Region, with a security group that allows inbound port 22 from your management network
- The AWS CLI (version 2) installed locally, if you plan to deploy from the command line
Launch the Instance from the AWS Marketplace
Sign in to the AWS Management Console, open the EC2 service, and select Launch instance. Under Application and OS Images, choose AWS Marketplace AMIs and search for Fluent Bit. Select the SecureAnyCloud listing, choose Select, and then choose Continue on the subscription summary.
Pick an instance type of t3.small or larger. Choose your EC2 key pair under Key pair (login). Under Network settings, select your VPC and subnet, and either create or select a security group that opens port 22 from your management network. Leave the root volume at the default size or larger.
Select Launch instance. First-boot initialisation takes a few seconds after the instance state becomes Running and the status checks pass. fluent-bit.service is already running its sample pipeline by the time you can connect.
Launch the Instance from the AWS CLI
The following command launches an instance from the SecureAnyCloud Fluent Bit Marketplace AMI into an existing subnet and security group. Replace <ami-id> with the AMI ID shown on the Marketplace listing and <key-name> with your EC2 key pair name. Replace <subnet-id> with your subnet ID and <security-group-id> with a security group that opens port 22 from your management network.
aws ec2 run-instances \
--image-id <ami-id> \
--instance-type t3.small \
--key-name <key-name> \
--subnet-id <subnet-id> \
--security-group-ids <security-group-id> \
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=fluent-bit}]'When the instance reaches the Running state and its status checks pass, note its public IP address or DNS name from the EC2 console or with aws ec2 describe-instances.
Connect to Your Instance
Connect over SSH with your key pair. For the Ubuntu 24.04 variant, the SSH login user is ubuntu.
ssh -i <key-name>.pem ubuntu@<public-ip>A welcome banner prints the most useful commands, and sudo cat /root/fluent-bit-info.txt shows the full getting-started notes: what is running, the monitoring API endpoints, where the pipeline configuration lives, and the common input, filter and output plugins.
Verify the Service
Fluent Bit runs as a system service that is enabled and started on boot. Confirm that the daemon is active:
systemctl is-active fluent-bitThat prints active. For the full unit status, including the main PID, memory use and the command line the daemon is running, use:
systemctl status fluent-bit --no-pagerConfirm the installed binary and version. This image pins Fluent Bit 5.0.7:
fluent-bit --versionYou should see Fluent Bit v5.0.7 reported. The fluent-bit binary is on the system path. The package installs it under /opt/fluent-bit/bin, and the image links it onto /usr/local/bin so it resolves from any login shell.
The Monitoring API
Fluent Bit ships with a built-in HTTP monitoring server. On this image it is enabled and bound to loopback only (127.0.0.1:2020), so the endpoints answer on the instance but are never exposed to the network. Check the health endpoint, which returns ok with HTTP 200 while the pipeline is healthy:
curl -s http://127.0.0.1:2020/api/v1/healthThe metrics endpoint returns per-plugin JSON with the record and byte counters for every input and output in the running pipeline. Pretty-print it to watch the sample pipeline flushing records:
curl -s http://127.0.0.1:2020/api/v1/metrics | python3 -m json.toolYou will see the dummy input's records counter and the cpu input's counter climbing, and the file and stdout outputs' proc_records rising with errors at 0. These counters prove that the pipeline is running and flushing, not merely loaded. The uptime endpoint reports how long the service has been running:
curl -s http://127.0.0.1:2020/api/v1/uptimeThe monitoring server emits Prometheus-format metrics at /api/v1/metrics/prometheus for scraping. To expose the API beyond loopback, change HTTP_Listen in the [SERVICE] block of the configuration and open the port in the instance security group yourself. The read-only API stays private by default.
Edit the Pipeline
Fluent Bit reads its pipeline from a simple configuration directory at /etc/fluent-bit/. The shipped configuration is a self-contained sample that needs no external dependencies:
ls /etc/fluent-bit/The main pipeline is in fluent-bit.conf, parsers are defined in parsers.conf, and external plugins are listed in plugins.conf. The sample pipeline pairs a dummy input (a steady synthetic record stream) and a cpu input (real host telemetry) with a file output that writes JSON lines to the data volume and a stdout output visible in the journal:
sed -n '13,57p' /etc/fluent-bit/fluent-bit.confTo build your own pipeline, replace the sample inputs and outputs with your own. Common input plugins collect from your sources: tail for log files, systemd for the journal, forward, syslog, tcp and http for network ingest, and cpu and mem for host metrics. Chain filter plugins to process records: parser, grep, modify, record_modifier and lua. Fan out to output plugins to ship the records: es/opensearch, loki, kafka, s3, cloudwatch, splunk, http, forward, file and stdout.
After editing the configuration, check it with a preview run, and then restart the service to apply your changes. The following commands edit and reload your pipeline:
sudo fluent-bit --dry-run --config /etc/fluent-bit/fluent-bit.conf
sudo systemctl restart fluent-bitOpen whatever ingest or forward ports your pipeline needs in the instance security group. The records that the sample file output writes appear as JSON lines on the data volume, alongside the configuration that produced them:
The Data Volume
The filesystem storage buffer (storage.path) and the sample file output both live on a dedicated EBS volume mounted at /var/lib/fluent-bit. This keeps the on-disk pipeline buffer and any persisted records off the operating system disk and lets you resize or snapshot the volume independently. Confirm the mount with:
df -h /var/lib/fluent-bitThe [SERVICE] block sets storage.path to this volume and enables filesystem storage, so when an output is briefly unavailable or a burst arrives, Fluent Bit buffers the records to disk here rather than dropping them or growing memory without bound. To grow the volume, expand the EBS volume in the AWS console. Then grow the filesystem on the instance with sudo resize2fs on the underlying device. Set storage.type filesystem on your own inputs to give them the same disk-backed buffering.
Support
SecureAnyCloud publishes and supports this image. Support covers pipeline design, input and output plugin configuration, parsers and filters, multiline log handling, buffering and backpressure, routing to your observability backend, the monitoring API, and upgrade planning. Contact SecureAnyCloud through the support channel listed on the AWS Marketplace listing.
All product and company names are trademarks or registered trademarks of their respective holders. Their use does not imply any affiliation with or endorsement by them.
Deploy on AWS
Launch Fluent Bit on AWS with 24/7 support from SecureAnyCloud.
View on Marketplace
Need Help?
Our support team is available 24/7.
sales@secureanycloud.com