diff --git a/collectd.env b/collectd.env index 2c4b4e2..7e6125b 100644 --- a/collectd.env +++ b/collectd.env @@ -1,7 +1,19 @@ TZ=Europe/Berlin -FRITZ_IP=192.168.1.1 -FRITZ_USER=collectd -FRITZ_PASSWORD=ec2ruRlOhFqpDPw0 -EP_HOST=influxdb -EP_PORT=25826 +P_NETWORK_ENABLED=true +P_NETWORK_HOST=influxdb +P_NETWORK_PORT=25826 + +P_PYTHON_ENABLED=true + +P_PYTHON_FRITZ_ENABLED=true +P_PYTHON_FRITZ_HOST=192.168.1.1 +P_PYTHON_FRITZ_PORT=49000 +P_PYTHON_FRITZ_USER=collectd +P_PYTHON_FRITZ_PASSWORD=ec2ruRlOhFqpDPw0 + +P_WGRAPHITE_ENABLED=false +P_WGRAPHITE_NODE=FritzBoxTest +P_WGRAPHITE_HOST=graphite +P_WGRAPHITE_PORT=2003 +P_WGRAPHITE_PROTO=tcp diff --git a/collectd/Dockerfile b/collectd/Dockerfile index 6e5dc7d..ab25b87 100644 --- a/collectd/Dockerfile +++ b/collectd/Dockerfile @@ -1,8 +1,15 @@ FROM alpine:latest -RUN apk --no-cache add collectd collectd-python collectd-network gettext \ - py3-pip libxslt-dev gcc musl-dev python3-dev tzdata && \ - pip3 install --no-cache-dir fritzcollectd +RUN apk --no-cache add collectd collectd-python collectd-network tzdata \ + py3-pip gettext && \ + apk add --no-cache --virtual .build-deps \ + git libxslt-dev gcc musl-dev python3-dev && \ + git clone --depth 1 https://github.com/fetzerch/fritzcollectd.git && \ + cd fritzcollectd && \ + pip3 install --no-cache-dir . && \ + apk del .build-deps && \ + rm -rf .git/ && \ + apk --no-cache add libxslt COPY ./root / diff --git a/collectd/root/entrypoint.sh b/collectd/root/entrypoint.sh index de0b499..2b8ba06 100755 --- a/collectd/root/entrypoint.sh +++ b/collectd/root/entrypoint.sh @@ -3,13 +3,42 @@ # Exit at first error set -e -mkdir -p /srv/collectd/config +CONFIG_DIR=/srv/collectd/config +TEMPLATES_DIR="/srv/collectd/templates" -# Fill the varibles in funkwhale.template and put the result in default.conf -echo "Generating '/srv/collectd/config/collectd.conf'..." -envsubst < \ - /srv/collectd/templates/collectd.conf.template > \ - /srv/collectd/config/collectd.conf +mkdir -p "${CONFIG_DIR}" +echo "Generating '/srv/collectd/templates/collectd.conf.template'..." + +cat "${TEMPLATES_DIR}/collectd.conf.template.base.part" > \ + "${TEMPLATES_DIR}/collectd.conf.template" + +if [ "${P_NETWORK_ENABLED}" = "true" ]; then + cat "${TEMPLATES_DIR}/collectd.plugin.network.part" >> \ + "${TEMPLATES_DIR}/collectd.conf.template" +fi + +if [ "${P_PYTHON_ENABLED}" = "true" ]; then + cat "${TEMPLATES_DIR}/collectd.plugin.python.start.part" >> \ + "${TEMPLATES_DIR}/collectd.conf.template" + + if [ "${P_PYTHON_FRITZ_ENABLED}" = "true" ]; then + cat "${TEMPLATES_DIR}/collectd.plugin.python.fritz.part" >> \ + "${TEMPLATES_DIR}/collectd.conf.template" + fi + + cat "${TEMPLATES_DIR}/collectd.plugin.python.end.part" >> \ + "${TEMPLATES_DIR}/collectd.conf.template" +fi + +if [ "${P_WGRAPHITE_ENABLED}" = "true" ]; then + cat "${TEMPLATES_DIR}/collectd.plugin.write_graphite.part" >> \ + "${TEMPLATES_DIR}/collectd.conf.template" +fi + +# Fill the varibles in collectd.conf.template and put the result in collectd.conf +echo "Generating '${CONFIG_DIR}/collectd.conf'..." +envsubst < /srv/collectd/templates/collectd.conf.template > \ + "${CONFIG_DIR}/collectd.conf" echo "Starting collectd..." -collectd -C /srv/collectd/config/collectd.conf -f +collectd -C "${CONFIG_DIR}/collectd.conf" -f diff --git a/collectd/root/srv/collectd/templates/collectd.conf.template b/collectd/root/srv/collectd/templates/collectd.conf.template index ede81bb..2340f60 100644 --- a/collectd/root/srv/collectd/templates/collectd.conf.template +++ b/collectd/root/srv/collectd/templates/collectd.conf.template @@ -2,41 +2,3 @@ FQDNLookup true Interval 10 Timeout 2 ReadThreads 5 - -LoadPlugin python -LoadPlugin network -LoadPlugin "write_graphite" - - - Server "${EP_HOST}" "${EP_PORT}" - - - - Import "fritzcollectd" - - - Address "${FRITZ_IP}" - Port 49000 - User "${FRITZ_USER}" - Password "${FRITZ_PASSWORD}" - Hostname "FritzBox" - Instance "1" - Verbose "False" - - - - - - Host "graphite" - Port "2003" - #Prefix "collectd." - #Postfix "" - #Protocol "udp" - #LogSendErrors false - EscapeCharacter "_" - SeparateInstances true - StoreRates false - AlwaysAppendDS false - #UseTags false - - diff --git a/collectd/root/srv/collectd/templates/collectd.conf.template.base.part b/collectd/root/srv/collectd/templates/collectd.conf.template.base.part new file mode 100644 index 0000000..2340f60 --- /dev/null +++ b/collectd/root/srv/collectd/templates/collectd.conf.template.base.part @@ -0,0 +1,4 @@ +FQDNLookup true +Interval 10 +Timeout 2 +ReadThreads 5 diff --git a/collectd/root/srv/collectd/templates/collectd.plugin.network.part b/collectd/root/srv/collectd/templates/collectd.plugin.network.part new file mode 100644 index 0000000..527dbae --- /dev/null +++ b/collectd/root/srv/collectd/templates/collectd.plugin.network.part @@ -0,0 +1,6 @@ + +LoadPlugin network + + + Server "${P_NETWORK_HOST}" "${P_NETWORK_PORT}" + diff --git a/collectd/root/srv/collectd/templates/collectd.plugin.python.end.part b/collectd/root/srv/collectd/templates/collectd.plugin.python.end.part new file mode 100644 index 0000000..25a1eed --- /dev/null +++ b/collectd/root/srv/collectd/templates/collectd.plugin.python.end.part @@ -0,0 +1 @@ + diff --git a/collectd/root/srv/collectd/templates/collectd.plugin.python.fritz.part b/collectd/root/srv/collectd/templates/collectd.plugin.python.fritz.part new file mode 100644 index 0000000..f2d7b33 --- /dev/null +++ b/collectd/root/srv/collectd/templates/collectd.plugin.python.fritz.part @@ -0,0 +1,11 @@ + Import "fritzcollectd" + + + Address "${P_PYTHON_FRITZ_HOST}" + Port "${P_PYTHON_FRITZ_PORT}" + User "${P_PYTHON_FRITZ_USER}" + Password "${P_PYTHON_FRITZ_PASSWORD}" + Hostname "FritzBox" + Instance "1" + Verbose "False" + diff --git a/collectd/root/srv/collectd/templates/collectd.plugin.python.start.part b/collectd/root/srv/collectd/templates/collectd.plugin.python.start.part new file mode 100644 index 0000000..df3f779 --- /dev/null +++ b/collectd/root/srv/collectd/templates/collectd.plugin.python.start.part @@ -0,0 +1,4 @@ + +LoadPlugin python + + diff --git a/collectd/root/srv/collectd/templates/collectd.plugin.write_graphite.part b/collectd/root/srv/collectd/templates/collectd.plugin.write_graphite.part new file mode 100644 index 0000000..8e14363 --- /dev/null +++ b/collectd/root/srv/collectd/templates/collectd.plugin.write_graphite.part @@ -0,0 +1,18 @@ + +LoadPlugin "write_graphite" + + + + Host "${P_WGRAPHITE_HOST}" + Port "${P_WGRAPHITE_PORT}" + #Prefix "collectd." + #Postfix "" + Protocol "${P_WGRAPHITE_PROTO}" + #LogSendErrors false + EscapeCharacter "_" + SeparateInstances true + StoreRates false + AlwaysAppendDS false + #UseTags false + + diff --git a/volumes/grafana/data/grafana.db b/volumes/grafana/data/grafana.db index 70ef9f0..c65682c 100644 Binary files a/volumes/grafana/data/grafana.db and b/volumes/grafana/data/grafana.db differ diff --git a/volumes/grafana/logs/grafana.log b/volumes/grafana/logs/grafana.log index f3d585d..302f425 100644 --- a/volumes/grafana/logs/grafana.log +++ b/volumes/grafana/logs/grafana.log @@ -259,3 +259,87 @@ t=2021-08-09T01:45:19+0200 lvl=warn msg="Request Origin is not authorized" logge t=2021-08-09T01:45:19+0200 lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/live/ws status=403 remote_addr=192.168.2.13 time_ms=5 size=10 referer= t=2021-08-09T01:46:19+0200 lvl=warn msg="Request Origin is not authorized" logger=live origin=http://grafana.server.lan appUrl=http://localhost:3000/ allowedOrigins= t=2021-08-09T01:46:19+0200 lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/live/ws status=403 remote_addr=192.168.2.13 time_ms=3 size=10 referer= +t=2021-08-09T16:15:09+0200 lvl=info msg="Starting Grafana" logger=server version=8.1.1 commit=90c87a52f7 branch=HEAD compiled=2021-08-09T14:53:33+0200 +t=2021-08-09T16:15:09+0200 lvl=info msg="Config loaded from" logger=settings file=/usr/share/grafana/conf/defaults.ini +t=2021-08-09T16:15:09+0200 lvl=info msg="Config loaded from" logger=settings file=/srv/grafana/config/grafana.ini +t=2021-08-09T16:15:09+0200 lvl=info msg="Config overridden from command line" logger=settings arg="default.paths.data=/srv/grafana/data" +t=2021-08-09T16:15:09+0200 lvl=info msg="Config overridden from command line" logger=settings arg="default.paths.logs=/srv/grafana/logs" +t=2021-08-09T16:15:09+0200 lvl=info msg="Config overridden from command line" logger=settings arg="default.paths.plugins=/srv/grafana/plugins" +t=2021-08-09T16:15:09+0200 lvl=info msg="Config overridden from command line" logger=settings arg="default.paths.provisioning=/srv/grafana/provisioning" +t=2021-08-09T16:15:09+0200 lvl=info msg="Config overridden from command line" logger=settings arg="default.log.mode=console" +t=2021-08-09T16:15:09+0200 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_PATHS_DATA=/srv/grafana/data" +t=2021-08-09T16:15:09+0200 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_PATHS_LOGS=/srv/grafana/logs" +t=2021-08-09T16:15:09+0200 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_PATHS_PLUGINS=/srv/grafana/plugins" +t=2021-08-09T16:15:09+0200 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_PATHS_PROVISIONING=/srv/grafana/provisioning" +t=2021-08-09T16:15:09+0200 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_ANALYTICS_REPORTING_ENABLED=false" +t=2021-08-09T16:15:09+0200 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_ANALYTICS_CHECK_FOR_UPDATES=false" +t=2021-08-09T16:15:09+0200 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_SECURITY_DISABLE_INITIAL_ADMIN_CREATION=false" +t=2021-08-09T16:15:09+0200 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_SECURITY_ADMIN_USER=admin" +t=2021-08-09T16:15:09+0200 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_SECURITY_ADMIN_PASSWORD=*********" +t=2021-08-09T16:15:09+0200 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_SECURITY_SECRET_KEY=*********" +t=2021-08-09T16:15:09+0200 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_SECURITY_DISABLE_GRAVATAR=true" +t=2021-08-09T16:15:09+0200 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_SECURITY_DISABLE_BRUTE_FORCE_LOGIN_PROTECTION=false" +t=2021-08-09T16:15:09+0200 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_SECURITY_COOKIE_SAMESITE=strict" +t=2021-08-09T16:15:09+0200 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_SECURITY_ALLOW_EMBEDDING=false" +t=2021-08-09T16:15:09+0200 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_DASHBOARDS_DEFAULT_HOME_DASHBOARD_PATH=/srv/grafana/public/home.json" +t=2021-08-09T16:15:09+0200 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_LOG_MODE=console file" +t=2021-08-09T16:15:09+0200 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_LOG_LEVEL=info" +t=2021-08-09T16:15:09+0200 lvl=info msg="Path Home" logger=settings path=/usr/share/grafana +t=2021-08-09T16:15:09+0200 lvl=info msg="Path Data" logger=settings path=/srv/grafana/data +t=2021-08-09T16:15:09+0200 lvl=info msg="Path Logs" logger=settings path=/srv/grafana/logs +t=2021-08-09T16:15:09+0200 lvl=info msg="Path Plugins" logger=settings path=/srv/grafana/plugins +t=2021-08-09T16:15:09+0200 lvl=info msg="Path Provisioning" logger=settings path=/srv/grafana/provisioning +t=2021-08-09T16:15:09+0200 lvl=info msg="App mode production" logger=settings +t=2021-08-09T16:15:09+0200 lvl=info msg="Connecting to DB" logger=sqlstore dbtype=sqlite3 +t=2021-08-09T16:15:09+0200 lvl=info msg="Starting DB migrations" logger=migrator +t=2021-08-09T16:15:09+0200 lvl=info msg="migrations completed" logger=migrator performed=0 skipped=330 duration=19.826305ms +t=2021-08-09T16:15:09+0200 lvl=info msg="Starting plugin search" logger=plugins +t=2021-08-09T16:15:13+0200 lvl=info msg="Registering plugin" logger=plugins id=input +t=2021-08-09T16:15:13+0200 lvl=info msg="deleted datasource based on configuration" logger=provisioning.datasources name=Prometheus +t=2021-08-09T16:15:13+0200 lvl=info msg="inserting datasource from configuration " logger=provisioning.datasources name=Prometheus uid= +t=2021-08-09T16:15:13+0200 lvl=info msg="Live Push Gateway initialization" logger=live.push_http +t=2021-08-09T16:15:14+0200 lvl=info msg="HTTP Server Listen" logger=http.server address=[::]:3000 protocol=http subUrl= socket= +t=2021-08-09T16:16:53+0200 lvl=warn msg="Request Origin is not authorized" logger=live origin=http://grafana.server.lan appUrl=http://localhost:3000/ allowedOrigins= +t=2021-08-09T16:16:53+0200 lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/live/ws status=403 remote_addr=192.168.2.13 time_ms=215 size=10 referer= +t=2021-08-09T16:16:55+0200 lvl=warn msg="Request Origin is not authorized" logger=live origin=http://grafana.server.lan appUrl=http://localhost:3000/ allowedOrigins= +t=2021-08-09T16:16:55+0200 lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/live/ws status=403 remote_addr=192.168.2.13 time_ms=3 size=10 referer= +t=2021-08-09T16:16:57+0200 lvl=warn msg="Request Origin is not authorized" logger=live origin=http://grafana.server.lan appUrl=http://localhost:3000/ allowedOrigins= +t=2021-08-09T16:16:57+0200 lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/live/ws status=403 remote_addr=192.168.2.13 time_ms=3 size=10 referer= +t=2021-08-09T16:17:02+0200 lvl=warn msg="Request Origin is not authorized" logger=live origin=http://grafana.server.lan appUrl=http://localhost:3000/ allowedOrigins= +t=2021-08-09T16:17:02+0200 lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/live/ws status=403 remote_addr=192.168.2.13 time_ms=4 size=10 referer= +t=2021-08-09T16:17:10+0200 lvl=warn msg="Request Origin is not authorized" logger=live origin=http://grafana.server.lan appUrl=http://localhost:3000/ allowedOrigins= +t=2021-08-09T16:17:10+0200 lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/live/ws status=403 remote_addr=192.168.2.13 time_ms=3 size=10 referer= +t=2021-08-09T16:17:21+0200 lvl=warn msg="Request Origin is not authorized" logger=live origin=http://grafana.server.lan appUrl=http://localhost:3000/ allowedOrigins= +t=2021-08-09T16:17:21+0200 lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/live/ws status=403 remote_addr=192.168.2.13 time_ms=3 size=10 referer= +t=2021-08-09T16:17:35+0200 lvl=warn msg="Request Origin is not authorized" logger=live origin=http://grafana.server.lan appUrl=http://localhost:3000/ allowedOrigins= +t=2021-08-09T16:17:35+0200 lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/live/ws status=403 remote_addr=192.168.2.13 time_ms=5 size=10 referer= +t=2021-08-09T16:17:45+0200 lvl=warn msg="Request Origin is not authorized" logger=live origin=http://grafana.server.lan appUrl=http://localhost:3000/ allowedOrigins= +t=2021-08-09T16:17:45+0200 lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/live/ws status=403 remote_addr=192.168.2.13 time_ms=5 size=10 referer= +t=2021-08-09T16:18:03+0200 lvl=warn msg="Request Origin is not authorized" logger=live origin=http://grafana.server.lan appUrl=http://localhost:3000/ allowedOrigins= +t=2021-08-09T16:18:03+0200 lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/live/ws status=403 remote_addr=192.168.2.13 time_ms=11 size=10 referer= +t=2021-08-09T16:18:16+0200 lvl=warn msg="Request Origin is not authorized" logger=live origin=http://grafana.server.lan appUrl=http://localhost:3000/ allowedOrigins= +t=2021-08-09T16:18:17+0200 lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/live/ws status=403 remote_addr=192.168.2.13 time_ms=648 size=10 referer= +t=2021-08-09T16:18:34+0200 lvl=warn msg="Request Origin is not authorized" logger=live origin=http://grafana.server.lan appUrl=http://localhost:3000/ allowedOrigins= +t=2021-08-09T16:18:34+0200 lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/live/ws status=403 remote_addr=192.168.2.13 time_ms=4 size=10 referer= +t=2021-08-09T16:18:57+0200 lvl=warn msg="Request Origin is not authorized" logger=live origin=http://grafana.server.lan appUrl=http://localhost:3000/ allowedOrigins= +t=2021-08-09T16:18:57+0200 lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/live/ws status=403 remote_addr=192.168.2.13 time_ms=4 size=10 referer= +t=2021-08-09T16:19:30+0200 lvl=warn msg="Request Origin is not authorized" logger=live origin=http://grafana.server.lan appUrl=http://localhost:3000/ allowedOrigins= +t=2021-08-09T16:19:30+0200 lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/live/ws status=403 remote_addr=192.168.2.13 time_ms=3 size=10 referer= +t=2021-08-09T16:20:08+0200 lvl=eror msg="Data proxy error" logger=data-proxy-log userId=1 orgId=1 uname=admin path=/api/datasources/proxy/15/api/v1/query_range remote_addr=192.168.2.13 referer="http://grafana.server.lan/d/jZPRfaM7k/monitor-services?orgId=1&refresh=10s" error="http: proxy error: context canceled" +t=2021-08-09T16:20:08+0200 lvl=eror msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=POST path=/api/datasources/proxy/15/api/v1/query_range status=502 remote_addr=192.168.2.13 time_ms=604 size=0 referer="http://grafana.server.lan/d/jZPRfaM7k/monitor-services?orgId=1&refresh=10s" +t=2021-08-09T16:20:08+0200 lvl=eror msg="Data proxy error" logger=data-proxy-log userId=1 orgId=1 uname=admin path=/api/datasources/proxy/15/api/v1/query_range remote_addr=192.168.2.13 referer="http://grafana.server.lan/d/jZPRfaM7k/monitor-services?orgId=1&refresh=10s" error="http: proxy error: context canceled" +t=2021-08-09T16:20:08+0200 lvl=eror msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=POST path=/api/datasources/proxy/15/api/v1/query_range status=502 remote_addr=192.168.2.13 time_ms=728 size=0 referer="http://grafana.server.lan/d/jZPRfaM7k/monitor-services?orgId=1&refresh=10s" +t=2021-08-09T16:20:08+0200 lvl=eror msg="Data proxy error" logger=data-proxy-log userId=1 orgId=1 uname=admin path=/api/datasources/proxy/15/api/v1/query_range remote_addr=192.168.2.13 referer="http://grafana.server.lan/d/jZPRfaM7k/monitor-services?orgId=1&refresh=10s" error="http: proxy error: context canceled" +t=2021-08-09T16:20:08+0200 lvl=eror msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=POST path=/api/datasources/proxy/15/api/v1/query_range status=502 remote_addr=192.168.2.13 time_ms=810 size=0 referer="http://grafana.server.lan/d/jZPRfaM7k/monitor-services?orgId=1&refresh=10s" +t=2021-08-09T16:20:08+0200 lvl=eror msg="Data proxy error" logger=data-proxy-log userId=1 orgId=1 uname=admin path=/api/datasources/proxy/15/api/v1/query_range remote_addr=192.168.2.13 referer="http://grafana.server.lan/d/jZPRfaM7k/monitor-services?orgId=1&refresh=10s" error="http: proxy error: context canceled" +t=2021-08-09T16:20:08+0200 lvl=eror msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=POST path=/api/datasources/proxy/15/api/v1/query_range status=502 remote_addr=192.168.2.13 time_ms=1186 size=0 referer="http://grafana.server.lan/d/jZPRfaM7k/monitor-services?orgId=1&refresh=10s" +t=2021-08-09T16:20:20+0200 lvl=warn msg="Request Origin is not authorized" logger=live origin=http://grafana.server.lan appUrl=http://localhost:3000/ allowedOrigins= +t=2021-08-09T16:20:20+0200 lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/live/ws status=403 remote_addr=192.168.2.13 time_ms=4 size=10 referer= +t=2021-08-09T16:21:20+0200 lvl=warn msg="Request Origin is not authorized" logger=live origin=http://grafana.server.lan appUrl=http://localhost:3000/ allowedOrigins= +t=2021-08-09T16:21:20+0200 lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/live/ws status=403 remote_addr=192.168.2.13 time_ms=3 size=10 referer= +t=2021-08-09T16:22:20+0200 lvl=warn msg="Request Origin is not authorized" logger=live origin=http://grafana.server.lan appUrl=http://localhost:3000/ allowedOrigins= +t=2021-08-09T16:22:20+0200 lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/live/ws status=403 remote_addr=192.168.2.13 time_ms=4 size=10 referer= +t=2021-08-09T16:23:20+0200 lvl=warn msg="Request Origin is not authorized" logger=live origin=http://grafana.server.lan appUrl=http://localhost:3000/ allowedOrigins= +t=2021-08-09T16:23:20+0200 lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/live/ws status=403 remote_addr=192.168.2.13 time_ms=3 size=10 referer= +t=2021-08-09T16:24:20+0200 lvl=warn msg="Request Origin is not authorized" logger=live origin=http://grafana.server.lan appUrl=http://localhost:3000/ allowedOrigins= +t=2021-08-09T16:24:20+0200 lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/live/ws status=403 remote_addr=192.168.2.13 time_ms=3 size=10 referer=