Nginx
Nginx Access Log Streaming Setup Guide
Overview
Bare Metal / VM Setup
Step 1: Configure Nginx JSON Access Logs
http {
# JSON log format with all available fields
log_format json_combined escape=json '{'
'"log_type":"nginx_access",'
'"timestamp":"$time_iso8601",'
'"time_local":"$time_local",'
'"msec":"$msec",'
'"client_ip":"$remote_addr",'
'"client_port":"$remote_port",'
'"remote_user":"$remote_user",'
'"request":"$request",'
'"request_method":"$request_method",'
'"request_uri":"$request_uri",'
'"uri":"$uri",'
'"args":"$args",'
'"scheme":"$scheme",'
'"server_protocol":"$server_protocol",'
'"request_length":$request_length,'
'"request_time":$request_time,'
'"status":$status,'
'"body_bytes_sent":$body_bytes_sent,'
'"bytes_sent":$bytes_sent,'
'"host":"$host",'
'"server_addr":"$server_addr",'
'"server_port":"$server_port",'
'"server_name":"$server_name",'
'"hostname":"$hostname",'
'"nginx_version":"$nginx_version",'
'"pid":"$pid",'
'"connection":"$connection",'
'"connection_requests":"$connection_requests",'
'"pipe":"$pipe",'
'"http_host":"$http_host",'
'"http_user_agent":"$http_user_agent",'
'"http_referer":"$http_referer",'
'"http_accept":"$http_accept",'
'"http_accept_encoding":"$http_accept_encoding",'
'"http_accept_language":"$http_accept_language",'
'"http_content_type":"$http_content_type",'
'"http_content_length":"$http_content_length",'
'"http_x_forwarded_for":"$http_x_forwarded_for",'
'"http_x_forwarded_proto":"$http_x_forwarded_proto",'
'"http_x_real_ip":"$http_x_real_ip",'
'"http_x_request_id":"$http_x_request_id",'
'"sent_http_content_type":"$sent_http_content_type",'
'"sent_http_content_length":"$sent_http_content_length",'
'"upstream_addr":"$upstream_addr",'
'"upstream_status":"$upstream_status",'
'"upstream_response_time":"$upstream_response_time",'
'"upstream_response_length":"$upstream_response_length",'
'"upstream_connect_time":"$upstream_connect_time",'
'"upstream_header_time":"$upstream_header_time",'
'"upstream_cache_status":"$upstream_cache_status",'
'"ssl_protocol":"$ssl_protocol",'
'"ssl_cipher":"$ssl_cipher",'
'"ssl_session_reused":"$ssl_session_reused",'
'"ssl_server_name":"$ssl_server_name",'
'"gzip_ratio":"$gzip_ratio"'
'}';
# Use the JSON format for access logs
access_log /var/log/nginx/access.log json_combined;
# ... rest of your existing configuration
}Apply the Nginx Configuration
Step 2: Install Fluent Bit
Option A: Debian/Ubuntu
Option B: RHEL/CentOS/Amazon Linux
Option C: Docker
Step 3: Configure Fluent Bit
Replace the API Key
Step 4: Start Fluent Bit
Kubernetes Setup
Step 1: Update Nginx ConfigMap
Step 2: Create Fluent Bit Secret for API Key
Step 3: Deploy Fluent Bit ConfigMap
Step 4: Deploy Fluent Bit DaemonSet
Step 5: Apply Kubernetes Resources
Alternative: Using Helm
Verification
1. Verify Nginx is Logging in JSON Format
2. Verify Fluent Bit is Running
3. Generate Test Traffic
Troubleshooting
Nginx Configuration Errors
Fluent Bit Issues
Common Issues
Issue
Solution
Log Fields Reference
Field
Description
Support
Last updated