grafana

grafana 구성

image

  graph TB
  subgraph gvp6nx1a
  A1[loki] -- http --> B[grafana]
  A2[postgresql] -- tcp --> B
  A3[prometheus] -- http --> B
  A4[postgres-exporter] -- http --> A3
  A2 -- tcp --> A4
  E1[promtail] -- http --> A1
  E2[node-exporter] -- http --> A3
  C[nginx] <-- http --> B
  end
  E3[node-exporter] -- https --> A3
  E4[promtail] -- https --> A1
  D[client] <-- https --> C

container 구성

docker-compose.yml

network bridge 구성이어도 host를 허용하도록 구성

vi /opt/grafana/docker-compose.yml
services:
  grafana:
    image: grafana/grafana:11.2.1
    container_name: grafana
    networks:
      - dev
    ports:
      - 3000/tcp
    extra_hosts:
      - "host.docker.internal:host-gateway"
    user: 0:0
    environment:
      - TZ=Asia/Seoul
    volumes:
      - /opt/grafana/config/grafana.ini:/etc/grafana/grafana.ini:rw
      - /opt/grafana/config/init_script.sh:/init_script.sh:rw
      - /opt/grafana/data:/var/lib/grafana:rw
    entrypoint: /init_script.sh
    restart: unless-stopped
networks:
  dev:
    external: true

grafana 공통

변경할 구성 host에 mount

sudo docker cp grafana:/etc/grafana/grafana.ini /opt/grafana/config/grafana.ini

로그인 없이 view 허용 1

vi /opt/grafana/config/grafana.ini
...
[auth.anonymous]
enabled = true
org_name = fhy8vp3u
org_role = Viewer
hide_version = false

[security]
cookie_samesite = lax
allow_embedding = true
...

데모 페이지

nginx 2

nginx access 로그 시각화 (loki 3 + promtail 4)

image

바로 가기

logs 5

selinux, ssh, nginx access 로그 시각화 (loki 3 + promtail 4)

image

바로 가기

postgres 6

postgresql DB 상태 시각화 (postgres-exporter 7 + prometheus 8)

image

바로 가기

ssh 9

ssh 로그 시각화 (loki 3 + promtail 4)

image

바로 가기

node-rhel 10

RHEL 메트릭 시각화 (node-exporter 11 + prometheus 8)

image

바로 가기

node-owrt 12

openwrt 메트릭 시각화 (node-exporter-lua 11 + prometheus 8)

image

바로 가기

License

상업적 이용 제한 없음

  • grafana v8+: AGPL v3 13

Troubleshooting