dashode2

Dashode2

Usage no npm install needed!

<script type="module">
  import dashode2 from 'https://cdn.skypack.dev/dashode2';
</script>

README

dashode2

Realtime dashboard for nginx and other clf based webservers.

It was designed to debug and monitor nginx instances but it should work with anything that features a clf log.

Usage

Install

  • npm install -g dashode2
  • dashode

Env variables

  • SCENARIO - Scenario type. ("local", "server" or "collector")
  • HTTP_PORT - Dashboard server PORT. (8081)
  • COLLECTOR_PORT - Collector server PORT. (8080)
  • SERVER - Collector server. ("http://127.0.0.1:8080")
  • LOG_PATH - Log path. ("/var/log/nginx/access.log")

Scenarios

local

  • Spawns a collector server listening on port COLLECTOR_PORT (defaults to 8080)
  • Spawns a dashboard server listening on port HTTP_PORT (defaults to 8081)
  • Spawns a collector watching LOG_PATH (defaults to "/var/log/nginx/access.log") and reporting to collector server at SERVER (defaults to "http://127.0.0.1:8080")

server

  • Spawns a collector server listening on port COLLECTOR_PORT (defaults to 8080)
  • Spawns a dashboard server listening on port HTTP_PORT (defaults to 8081)

collector

  • Spawns a collector watching LOG_PATH (defaults to "/var/log/nginx/access.log") and reporting to collector server at SERVER (defaults to "http://127.0.0.1:8080")

Support

  • For all functionality use this log format:
  • log_format main '$remote_addr - $remote_user - [$time_local] "$request" ' '$status $body_bytes_sent "$host" ' '"$http_user_agent" "$http_x_forwarded_for" "$http_referer" ' '$upstream_cache_status $request_time $upstream_response_time';

Authentication

  • Dashode does not feature authentication, you should push that to a reverse proxy if you need it.
  • Collector leverage env variables USERNAME and PASSWORD.

nginx authentication example

server {
 listen 1337;
 server_name ~^(.+)$;

 location / {
   auth_basic "Restricted";
   auth_basic_user_file /var/nginx/passwd;

   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "upgrade";
   proxy_http_version 1.1;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header Host $host;

   proxy_pass http://127.0.0.1:8081/;
 }
}

License

Pedro Dias - @pedromdias

Licensed under the Apache license, version 2.0 (the "license"); You may not use this file except in compliance with the license. You may obtain a copy of the license at:

http://www.apache.org/licenses/LICENSE-2.0.html

Unless required by applicable law or agreed to in writing, software distributed under the license is distributed on an "as is" basis, without warranties or conditions of any kind, either express or implied. See the license for the specific language governing permissions and limitations under the license.