Category: Grafana

  • Public dashboard via reverse proxy

    docker run -d -p 3000:3000 --name=grafana \
      -e "GF_SERVER_DOMAIN=sensor.welovedoctor.com" \
      -e "GF_SERVER_ROOT_URL=https://sensor.welovedoctor.com/" \
      -e "GF_PUBLIC_DASHBOARDS_ENABLED=true" \
      --user "$(id -u)" \
      --volume "/home/byun1114/grafana_data:/var/lib/grafana" \
      --network work \
      --restart always \
      grafana/grafana-enterprise

    컨테이너를 이용해서 grafana를 사용하고, public dashboard를 이용하려면 위와 같이 -e 옵션으로 환경 변수를 추가해 준다.

    nginx 에서는 다음처럼 수정하면 된다.

    server {
    	server_name sensor.welovedoctor.com;
    	listen 443 ssl http2;
    	include snippets/ssl-welovedoctor.conf;
    	location / {
    		proxy_pass http://sweet.home:3000/;
    		proxy_set_header Host $host;
    		proxy_set_header X-Real-IP $remote_addr;
    		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    		proxy_set_header X-Forwarded-Proto $scheme;
    		proxy_http_version 1.1;
    		proxy_set_header Upgrade $http_upgrade;
    		proxy_set_header Connection "upgrade";
    	}
    }
    
  • grafana 12.3.2

    그동안 컨테이너에서 deb을 설치해서 운영했다. 오류 메세지가 있어도 잘 동작했는데 이번부터는 안된다. 업무용 grafana 설정을 이렇게 날려먹은 이후에 제대로 시작하기 위하여 정석대로 해보았다.

    Grafana 설정 파일은 /var/lib/grafana 폴더에 있다. 이것을 컨테이너 밖으로 복사한다.

    Grafana에서 알려준 방법을 참고했다.

    docker run -d -p 3000:3000 --name=grafana \
      --user "$(id -u)" \
      --volume "/home/byun1114/grafana_data:/var/lib/grafana" \
      --network work \
      grafana/grafana-enterprise

  • Under reverse proxy

    예전에 시도했을 때에는 잘 안되었다. 이번에는 성공했다.

    내가 시도한 환경은 도커 컨테이너에서 Grafana와 PostgreSQL, NGINX를 이용하여 80번 포트로 접속하도록 하는 것이다. 다른 경우로 사용할 것을 대비하여 subfolder에 연결되도록 했다.

    /etc/grafana/grafana.ini 파일에서 [server] 부분을 수정한다.

    [server]
    domain = dorm.welovedoctor.com
    root_url = http://dorm.welovedoctor.com/grafana/
    serve_from_sub_path = true

    /etc/nginx/sites-available/default 파일에서 다음과 같이 수정한다.

    map $http_upgrade $connection_upgrade {
      default upgrade;
      '' close;
    }
    
    upstream grafana {
      server localhost:3000;
    }
    
    server {
      listen 80 default_server;
      listen [::]:80 default_server;
      root /var/www/html;
      server_name dorm.welovedoctor.com;
      location /grafana/ {
        proxy_set_header Host $host;
        proxy_pass http://grafana;
      }
    
      location /grafana/api/live/ {
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_set_header Host $host;
        proxy_pass http://grafana;
      }
    
    }
  • Rename fields by regex

    Grafana에서 InfluxDB 자료를 시각화 할 때 legend는 위와 같이 나온다. 간결하게 보이게 하고 싶었다.

    Trasformation의 rename fields by regex 를 이용하면 된다.

    ^.*{.*device="([^"]+)".*, location="([^"]+)"}.*$

    코파일럿의 도움으로 이런 정규식을 작성했다.

    이렇게 출력된다. 나중에는 ‘_$1’도 삭제하면 될 것 같다.