'InfluxDB'에 해당되는 글 1건

fluent-bit , influxDB

Prometheus 2024. 7. 19. 15:23

 

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
블로그 이미지

iesay

,