아래 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" 필터로 로그가 미친 듯이 쌓이는 것을 볼수 있다.
'Cloud & Virtualization' 카테고리의 다른 글
bash 쉘을 가진 simple-http python 컨테이너 구동 (0) | 2021.04.19 |
---|---|
Ubuntu 18.04 QEMU-KVM PCI Passthrough 설정하기 (0) | 2018.12.18 |
GCP의 Kubernetes Cluster의 Logging/Monitoring에 대한 분석 (0) | 2018.07.20 |
Google Cloud VPN과 Mikrotik 공유기간 IPSec 터널 구성하기 (0) | 2018.07.19 |
Docker Container의 Logging 구조 요약 (1) | 2018.07.12 |