docker-compose.yml
version: "3.9" services: fluent-bit: image: fluent/fluent-bit:latest container_name: fluent-bit privileged: true user : root volumes: - /var/lib/docker/containers/:/docker-logs/:ro - ./fluent-bit.conf:/fluent-bit/etc/fluent-bit.conf - /home/ubuntu/fluent/output:/home/ubuntu/fluent/output |
Docker Container Log 정확한 위치
fluent-bit.conf
[INPUT] name tail Tag node_metrics path /docker-logs/*.log path_key path multiline.parser docker, cri Parser docker Docker_Mode On [SERVICE] Flush 1 Parsers_File parsers.conf [OUTPUT] Name influxdb Match * Host 호스트주소 Port 8086 Bucket 버킷명 Org 조직아이디 0232313aaaa HTTP_Token influxdb 토큰 |
OUTPUT influxDB에 던지는 방법이다.
서버에 대한 부하도 굉장히 적다.
parsers.conf
[PARSER] Name springboot Format regex Regex (?<time>\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2}.\d{1,3}) (?<level>[^ ]*) (?<number>\d*) --- (?<thread>\[[^ ]*) (?<logger>[^ ]*) *: (?<message>[^ ].*)$ Time_Key time Time_Format %Y-%m-%d %H:%M:%S.%L [PARSER] Name docker Format json Time_Key time Time_Format %Y-%m-%dT%H:%M:%S.%L Time_Keep On # Command | Decoder | Field | Optional Action # =============|==================|================= Decode_Field_As escaped log [MULTILINE_PARSER] name multiline-regex-test type regex flush_timeout 1000 # # Regex rules for multiline parsing # --------------------------------- # # configuration hints: # # - first state always has the name: start_state # - every field in the rule must be inside double quotes # # rules | state name | regex pattern | next state # ------|---------------|-------------------------------------------- rule "start_state" "/([a-zA-Z]+ \d+ \d+\:\d+\:\d+)(.*)/" "cont" rule "cont" "/^\s+at.*/" "cont" [PARSER] Name named-capture-test Format regex Regex /^(?<date>[a-zA-Z]+ \d+ \d+\:\d+\:\d+) (?<message>.*)/m |
한 디렉토리에 3개 파일 만들고 도커 컴포저 실행시키면 된다.
Agent 마다 각각 설치
Agent : node -expoter , fluent
그라파나 : Prometheus , 그라파나, influxdb
node -expoter Prometheus 수집
fluent(docker log) influxdb 수집
둘다 그라파나에서 대쉬보드에서 보여준다.
influxdb 2 버전이상으로 해야지 관리자 페이지가 보인다.
docker-compose.yml
version: '3' services: influxdb: image: influxdb:2.7.7 container_name: influx ports: - '8086:8086' environment: - INFLUXDB_ADMIN_ENABLED=true - INFLUXDB_ADMIN_USER=admin - INFLUXDB_ADMIN_PASSWORD=초기패스워드 tty: true stdin_open: true volumes: - ./influx/config:/etc/influxdb - ./influxdb:/var/lib/influxdb |
정규식으로 차차 분석 하면 될듯
'Prometheus' 카테고리의 다른 글
신규 설치 error (0) | 2024.04.18 |
---|---|
Grafana 기초1 (0) | 2021.11.10 |