1.4.8 • Published 2 years ago

kubernetes-monitoring-collector v1.4.8

Weekly downloads
-
License
Creative Commons ...
Repository
github
Last release
2 years ago

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.