Skip to content

Latest commit

 

History

History

app

Kubernetes Monitoring Collector

This "Kubernetes Monitoring Collector" should run in your Kubernetes cluster to read out information, logs, metrics.

By default data is sent to a Kubernetes Monitor service API. There you can configure a web dashboard and configure alarms (missing data, pod or container error status) and send notifications (E-Mail and/or Webhook per namespace) to your DevOps teams.

Web Dashboard

Usage

const collector = require( 'kubernetes-monitoring-collector' )
collector.start()

Configuration

Set via environment or config package files variables:

  • DATA_INTERVAL: in ms, default value is 30000
  • LOG_INTERVAL: in ms, default value is 10000
  • SKIP_METRICS: set this, if you don't want to read out CPU/memory usage from metric server

Configure Logging

See https://www.npmjs.com/package/npmlog

Install as Pod from Docker Hub

You need to generate credentials for a "Monitoring Dashboard" per cluster: https://www.kubernetes-monitor.com/

Install the "collector" pod:

kubectl create namespace monitoring 
kubectl apply -f mon-collector-rbac.yml -n monitoring 
kubectl create secret generic monitoring-secret -n monitoring \
      --from-literal=id="$MONITORING_ID" \
      --from-literal=key="$MONITORING_KEY" 
kubectl apply -f mon-collector.yml -n monitoring 

Set Up Own API Server

Data is posted in JSON format to the following endpoints:

  • /mon/dta
    • response should return e.g.
    • { "ms":[ <array od service names, which logs should be send> ] }
  • /mon/logs
  • /mon/access-stats

HTTP Header contain monid and key (from env vars "EKOSYS_ID" and "EKOSYS_KEY") to identify the clusters in a multi-tenant environment.