项目作者: tomarv2

项目描述 :
Kubernetes monitoring automation using Prometheus, BlackBox, Elastalert.
高级语言: Python
项目地址: git://github.com/tomarv2/kumauto.git
创建时间: 2020-04-12T05:11:52Z
项目社区:https://github.com/tomarv2/kumauto

开源协议:

下载


Monitoring automation project for Prometheus and ecosystem (in-progress)

One of the main problem that we face with microservices deployment is how to configure monitoring.
With deployment being so dynamic its hard to make changes.

As you can see in the blog: @tomarv2/jenkins-shared-libraries-ab64f7acac68"">https://medium.com/@tomarv2/jenkins-shared-libraries-ab64f7acac68. I discussed how can
repos can be arranged and how monitoring jobs at scale can be configured. Most of the work of adding projects to monitoring and alerting was manual.

In this project we are trying to offload the management of monitoring and alerting. When a new project is added,
user adds/updates user_input.yaml and it will be picked up by CICD (in this case Jenkins).

#



#

Where will the monitoring be configured:

  • Prometheus
  • Blackbox
  • Elastalert
  • Pushgateway
  • Pagerduty
  • Email
  • Slack

Pre-reqs:

  • Running Elastalert
  • Running Alertmanager
  • Running Prometheus Monitoring
  • Running Pushgateway
  • Pagerduty account
  • Slack account
  • Kafka/Zookeper (when we wrote this project, we had a requirement to cleanup Kafka/Zookeeper)

Note:

  • Docker image should have ssh keys to connect to git.

How to begin:

To create dummy data for testing:

verify if static-files directory exists:

  1. DIR_NAME=demo1
  2. BASE_PATH='/Users/varun.tomar/Documents/personal_github'
  3. mkdir -p $BASE_PATH/mauto/$DIR_NAME/demo-data/monitoring/static-files

verify if alertmanager config file exists:

  1. mkdir -p $BASE_PATH/mauto/$DIR_NAME/demo-data/alertmanager
  2. cp $BASE_PATH/mauto/data/demo-data/alertmanager/config.yaml $BASE_PATH/mauto/$DIR_NAME/demo-data/alertmanager/config.yaml

verify if prometheus config file exists:

  1. mkdir -p $BASE_PATH/mauto/junk/demo-data/monitoring/
  2. cp $BASE_PATH/mauto/data/demo-data/monitoring/config.yaml $BASE_PATH/mauto/junk/demo-data/monitoring/

verify .env file exists:

Copy the example.env and create a .env file

Update src/automation/config.yaml

How to use?

  • run pip install mauto
  • run muato for available options

Note:

  1. Trying to make it modular or plug and play type so new components can be added easily.

  2. I am using click to create python cli.

  3. Python 3.6 and above is required