아래 JSON 형태의 로그 /var/log/logmaker.log 파일에 미치듯이 발생시키는 로그 생성기


{

  "hostname": "log-maker.c.PROJECT_ID.internal", <= GCE의 metadata를 쿼리해서 hostname을 가져옴

  "deviceid": "device84", <=1~100 랜덤

  "temp": 31, <=랜덤

  "lat": 41.727, <=랜덤

  "lng": 30.457, <=랜덤

  "vol": 59, <=랜덤

  "hum": 11, <=랜덤

  "ill": 917, <=랜덤

  "generatetime": "2018-07-31T08:24:00.773975672Z" <=생성 시점 타임 스탬프

}



쉘 스크립트


 #!/bin/bash


host=`curl "http://metadata.google.internal/computeMetadata/v1/instance/hostname" -H "Metadata-Flavor: Google"`

while true;

do

        echo "{\"hostname\": \"$host\", \"deviceid\": \"device$((RANDOM%100+1))\", \"temp\": $((RANDOM%20+20)), \"lat\": $((RANDOM%3+40)).$((RANDOM%1000+1)), \"lng\": $((RANDOM%3+30)).$((RANDOM%1000+1)),\"vol\": $((RANDOM%20+50)),\"hum\":$((RANDOM%80+1)), \"ill\":$((RANDOM%900+300)), \"generatetime\": \"`date +%Y-%m-%dT%H:%M:%S.%NZ`\"}" >> /var/log/logmaker.log 

done



미친듯이 로그 파일용량이 커지므로 logrotate를 통해 파일을 계속 지워버림

/etc/logrotate.d/logmaker 설정 파일 생성

/var/log/logmaker.log {

  daily

  rotate 1 

  compress

  delaycompress

  notifempty

  size +300M

  create 644 root root

  copytruncate

  sharedscripts

}



/etc/crontab 에 10분 간격으로 logrotate 강재 실행하는 라인 추가

 */10 * * * * root logrotate -f /etc/logrotate.d/logmaker



Fluentd 설정 파일 추가

/etc/google-fluentd/config.d/logmaker.conf

<source>

  @type tail

  format json

  path /var/log/logmaker.log

  pos_file /var/lib/google-fluentd/pos/logmaker.pos

  read_from_head true

  tag logmaker

</source>



위 구성을 마치고 해당 쉘스크립트를 Startup 스크립트로 등록한 인스턴스 그룹을 찍어내자. 

Stackdriver logging 콘솔에서 logName="projects/[PROJECT_ID]/logs/logmaker2" 필터로 로그가 미친 듯이 쌓이는 것을 볼수 있다.