在 Linux 上使用 Docker 安裝 Loki 和 Grafana,完成日誌採集和分析的步驟如下:
步驟 1:安裝 Docker
確保你已經安裝並配置好 Docker。如果還沒有,請參考前面的安裝步驟。
步驟 2:安裝 Docker Compose
為了簡化 Loki 和 Grafana 的安裝和配置,建議使用 Docker Compose。以下是在 Ubuntu 上安裝 Docker Compose 的步驟:
1 sudo apt-get update 2 sudo apt-get install -y curl 3 sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 4 sudo chmod +x /usr/local/bin/docker-compose
步驟 3:建立 Docker Compose 檔案
建立一個名為 docker-compose.yml 的檔案,並新增以下內容:
1 version: '3.7' 2 3 services: 4 loki: 5 image: grafana/loki:2.4.1 6 ports: 7 - "3100:3100" 8 command: -config.file=/etc/loki/local-config.yaml 9 volumes: 10 - ./loki-config.yaml:/etc/loki/local-config.yaml 11 12 promtail: 13 image: grafana/promtail:2.4.1 14 volumes: 15 - /var/log:/var/log 16 - ./promtail-config.yaml:/etc/promtail/promtail-config.yaml 17 command: -config.file=/etc/promtail/promtail-config.yaml 18 19 grafana: 20 image: grafana/grafana:latest 21 ports: 22 - "3000:3000" 23 environment: 24 - GF_SECURITY_ADMIN_PASSWORD=admin 25 volumes: 26 - grafana-storage:/var/lib/grafana 27 28 volumes: 29 grafana-storage:
步驟 4:配置 Loki 和 Promtail
建立 loki-config.yaml 和 promtail-config.yaml 檔案,配置 Loki 和 Promtail。
loki-config.yaml
1 auth_enabled: false 2 3 server: 4 http_listen_port: 3100 5 grpc_listen_port: 9095 6 7 ingester: 8 lifecycler: 9 ring: 10 kvstore: 11 store: inmemory 12 replication_factor: 1 13 chunk_idle_period: 5m 14 chunk_retain_period: 30s 15 max_transfer_retries: 0 16 17 schema_config: 18 configs: 19 - from: 2020-10-24 20 store: boltdb 21 object_store: filesystem 22 schema: v11 23 index: 24 prefix: index_ 25 period: 24h 26 27 storage_config: 28 boltdb: 29 directory: /loki/index 30 31 filesystem: 32 directory: /loki/chunks 33 34 limits_config: 35 enforce_metric_name: false 36 reject_old_samples: true 37 reject_old_samples_max_age: 168h 38 39 chunk_store_config: 40 max_look_back_period: 0s 41 42 table_manager: 43 retention_deletes_enabled: false 44 retention_period: 0s 45 46 promtail-config.yaml 47 server: 48 http_listen_port: 9080 49 grpc_listen_port: 0 50 51 positions: 52 filename: /tmp/positions.yaml 53 54 clients: 55 - url:
promtail-config.yaml
1 server: 2 http_listen_port: 9080 3 grpc_listen_port: 0 4 5 positions: 6 filename: /tmp/positions.yaml 7 8 clients: 9 - url: http://loki:3100/loki/api/v1/push 10 11 scrape_configs: 12 - job_name: system 13 static_configs: 14 - targets: 15 - localhost 16 labels: 17 job: varlogs 18 __path__: /var/log/**/*.log
步驟 5:啟動 Loki 和 Grafana
在包含 docker-compose.yml 檔案的目錄中,執行以下命令啟動 Loki 和 Grafana:
1 sudo docker-compose up -d
步驟 6:配置 Grafana
- 開啟瀏覽器並訪問
http://<your_server_ip>:3000,使用預設使用者名稱 admin 和密碼 admin 登入。
- 在 Grafana 儀表板中,新增 Loki 資料來源:
- 轉到“Configuration” -> “Data Sources”
- 點選“Add data source”
- 選擇“Loki”
- 配置 URL 為 http://loki:3100
- 點選“Save & Test”
- 建立新的儀表板並新增皮膚,透過 Loki 查詢日誌資料。
注意事項
1. 確保 Promtail 的 path 配置正確,能夠匹配到你想要收集的日誌檔案路徑。
2. 如果使用的 Docker 版本或 Docker Compose 版本較舊,可能需要調整配置檔案語法。
3. 可以根據需求調整 Loki 和 Promtail 的配置檔案,以適應不同的日誌源和儲存需求。
4. 透過上述步驟,你可以在 Linux 上使用 Docker 安裝 Loki 和 Grafana,完成日誌採集和分析。