Last active
January 26, 2025 14:14
-
-
Save AjayPoshak/1fc2dccb6918175f51d448ef9996e151 to your computer and use it in GitHub Desktop.
logs server compose
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# docker-compose.yml for log-server | |
services: | |
loki: | |
image: grafana/loki:2.8.0 | |
ports: | |
- "3100:3100" | |
volumes: | |
- loki-data:/loki | |
restart: unless-stopped | |
grafana: | |
image: grafana/grafana:latest | |
ports: | |
- "3000:3000" | |
volumes: | |
- grafana-data:/var/lib/grafana | |
environment: | |
- GF_SECURITY_ADMIN_PASSWORD=<your-password> | |
restart: unless-stopped | |
prometheus: | |
image: prom/prometheus:latest | |
container_name: prometheus | |
restart: unless-stopped | |
volumes: | |
- ./prometheus.yml:/etc/prometheus/prometheus.yml | |
- prometheus_data:/prometheus | |
ports: | |
- "9090:9090" | |
volumes: | |
loki-data: | |
grafana-data: | |
prometheus_data: |
prometheus.yml
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'node'
static_configs:- targets: [':9100'] # Replace with your application server's IP
- labels:
instance: 'url-shortener'
app: 'url-shortener'
env: 'production'
- job_name: 'traefik'
static_configs:- targets: [':8082'] # Replace with your application server's IP
With ability to monitor the "logs-server" node itself
docker-compose.yml
services:
loki:
image: grafana/loki:2.8.0
command: -config.file=/etc/loki/config.yml
ports:
- "3100:3100"
volumes:
- loki-data:/loki
- ./loki-config.yml:/etc/loki/config.yml
restart: unless-stopped
grafana:
image: grafana/grafana:latest
ports:
- "3000:3000"
volumes:
- grafana-data:/var/lib/grafana
environment:
- GF_SECURITY_ADMIN_PASSWORD=<your-password>
restart: unless-stopped
prometheus:
image: prom/prometheus:latest
container_name: prometheus
restart: unless-stopped
command:
- '--storage.tsdb.retention.time=7d'
- '--storage.tsdb.retention.size=2GB' # With 2GB limit, it will keep around 100-200 MB in RAM
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus_data:/prometheus
ports:
- "9090:9090"
node-exporter:
image: prom/node-exporter:latest
container_name: node-exporter
restart: unless-stopped
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
command:
- "--path.procfs=/host/proc"
- "--path.sysfs=/host/sys"
- "--path.rootfs=/rootfs"
ports:
- "9100:9100"
labels:
app: "logs-server"
environment: "production"
volumes:
loki-data:
grafana-data:
prometheus_data:
./prometheus.yml
# prometheus.yml
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['172.31.41.244:9100']
labels:
app: 'url-shortener'
env: 'production'
- job_name: 'traefik'
static_configs:
- targets: ['172.31.41.244:8082']
labels:
app: 'url-shortener'
env: 'production'
- job_name: 'logs-server'
static_configs:
- targets: ['node-exporter:9100'] # Node exporter for log server
labels:
app: 'logs-server'
component: 'infrastructure'
env: 'production'
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
labels:
app: 'logs-server'
component: 'prometheus'
env: 'production'
- job_name: 'grafana'
static_configs:
- targets: ['grafana:3000']
labels:
app: 'logs-server'
component: 'grafana'
env: 'production'
- job_name: 'loki'
static_configs:
- targets: ['loki:3100']
labels:
app: 'logs-server'
component: 'loki'
env: 'production'
./loki-config.yml
limits_config:
retention_period: 7d
ingestion_rate_mb: 4
ingestion_burst_size_mb: 6
compactor:
retention_enabled: true
table_manager:
retention_deletes_enabled: true
retention_period: 7d
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Use this command to install loki on all application servers