快速產生 log 的 tool - flog

Kanglin WuKanglin Wu
1 min read

Background

之前為了要在自己本機測試 filebeat 的功能,但是因為沒有可以測試的 log 而煩惱,後來在網路上找到這個由 mingrammer 所建立的 image,十分地強大,可以用 go / homebrew 及 docker 來安裝,我打算用這篇筆記來記錄我用這資源建立一個不斷產生假資料的 docker container。


Run by docker-compose

1. Create docker-compose.yaml

Based on command args,當我們建立這個 container 時,會不斷的寫入位於 /var/log/generated.log,一次 50 筆,每一秒寫一次。

version: '3'
services:
  log-generator:
    image: mingrammer/flog
    container_name: log-generator
    command:
      - --loop
      - --format=json
      - --number=50 # number of log lines to generate per second
      - --delay=1000ms # delay between log lines
      - --output=/var/log/generated.log
      - --overwrite
      - --type=log
    volumes:
      - /var/log/flog:/var/log/
    user: "1000:1000"

2. Ensure that the folder ( /var/log/flog/ ) exists also with appropriate permissions

我有嘗試給 755 但是 run 起來後 docker container 會停止並顯示 open /var/log/generated.log: permission denied

mkdir /var/log/flog
sudo chmod -R 777 /var/log/flog

3. Run it

很基本還是提醒一下,這指令要 run 在存放於 1. 的 docker-compose.yaml folder 裡。

docker-compose pull & docker-compose up -d

4. Verify it

# check the docker container exist and the status is running.
docker ps | grep log-generator

# 確認 generated.log 是不是有不斷被寫入 log
tail -f /var/log/flog/generated.log

Screenshot


結語

實際上在 command args 裡有一些可以微調的細節,這部分有需要可以直接參考作者給的 usage。而且看了一下該專案的最後編輯時間是 4 年前,但是我到現在還是用的很開心,感謝作者。


主要參考

https://hub.docker.com/r/mingrammer/flog

https://www.jianshu.com/p/533f9a25e91d

0
Subscribe to my newsletter

Read articles from Kanglin Wu directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Kanglin Wu
Kanglin Wu