Giter Club home page Giter Club logo

fury-kubernetes-monitoring's Introduction

Fury Kubernetes Monitoring

This repository contains all components necessary to deploy monitoring tools on top of Kubernetes. We use Prometheus, a very popular open source monitoring and alerting toolkit for cloud-native applications. You can monitor both cluster itself and applications deployed on cluster via Prometheus. Alertmanager which makes part of Prometheus stack, handles alerts sent by Prometheus server and let you manage alerts flexibly and route them through receiver integrations such as email, Slack or PagerDuty. Thanks to the components in the Fury Kubernetes Monitoring stack, you're going to have full control on your cluster. On Kubernetes we use Prometheus Operator to deploy, configure and manage Prometheus instances and to manage service monitoring and alerts. This repository contains a package to deploy Prometheus Operator and other packages to deploy Prometheus instances, rules, alerts and exporters. Packages with -operated postfix are deployed via Operator's CRD, therefore you need Prometheus Operator up and running to be able to deploy them.

Monitoring Packages

Following packages are included in Fury Kubernetes Monitoring katalog. All resources in these repositories are going to be deployed in monitoring namespace in your Kubernetes cluster.

  • prometheus-operator: Operator to deploy and manage Prometheus and related resources. Version: 0.37.0
  • prometheus-operated: Prometheus instance deployed with Prometheus Operator's CRD. Version: 2.16.0
  • alertmanager-operated: Alertmanager instance deployed with Prometheus Operator's CRD, pay attention to change the config as needed. Version: 0.20.0
  • grafana: Grafana deployment to query and visualize metrics collected by Prometheus. Version: 6.6.2
  • goldpinger: Goldpinger makes calls between its instances for visibility and alertings. Version: 2.0.0
  • aks-sm: Service Monitor to collect Kubernetes components metrics from AKS
  • gke-sm: Service Monitor to collect Kubernetes components metrics from GKE
  • kubeadm-sm: Service Monitors, Prometheus rules and alerts for Kubernetes components of unmanaged/on-promise clusters.
  • kube-state-metrics: Service Monitor for Kubernetes objects such as Deployments, Nodes and Pods. Version: 1.9.4
  • node-exporter: Service Monitor for hardware and OS metrics exposed by *NIX kernels. Version: 0.18.1
  • metrics-server: Resource metrics collection from kubelet and exposition through Metrics API. Version: 0.3.6

You can click on each package to see its documentation.

Requirements

All packages in this repository have following dependencies, for package specific dependencies please visit the single package's documentation:

Compatibility

Module Version / Kubernetes Version 1.14.X 1.15.X 1.16.X
v1.0.0
v1.1.0
v1.2.0
v1.3.0
v1.4.0
v1.4.1
v1.5.0
v1.6.0
v1.6.1
  • ✅ Compatible
  • ⚠️ Has issues
  • ❌ Incompatible

Deployment

To start using Fury Kubernetes Monitoring, you need to use furyctl and create a Furyfile.yml with the list of all the packages that you want to download.

You can download the packages for a full monitoring stack including Prometheus Operator, Prometheus, Alertmanager, node-exporter, kube-state-metrics and Grafana using the following Furyfile.yml :

bases:
  - name: monitoring/prometheus-operator
    version: vversion: v1.6.1
  - name: monitoring/prometheus-operated
    version: vversion: v1.6.1
  - name: monitoring/alertmanager-operated
    version: vversion: v1.6.1
  - name: monitoring/node-exporter
    version: vversion: v1.6.1
  - name: monitoring/kube-state-metrics
    version: vversion: v1.6.1
  - name: monitoring/grafana
    version: vversion: v1.6.1
  - name: monitoring/goldpinger
    version: vversion: v1.6.1

and execute

$ furyctl vendor

to download the packages under ./vendor/katalog/monitoring.

See furyctl documentation for details about Furyfile.yml format.

To deploy the packages to your cluster, define a kustomization.yaml with the following content:

bases:
- ./vendor/katalog/monitoring/prometheus-operator

and execute

$ kustomize build . | kubectl apply -f -

to deploy Prometheus Operator and create the Custom Resource Definitions needed by the other packages.

Now you can add the other packages to kustomization.yaml, the final file will have the following content:

bases:
- ./vendor/katalog/monitoring/prometheus-operator
- ./vendor/katalog/monitoring/prometheus-operated
- ./vendor/katalog/monitoring/alertmanager-operated
- ./vendor/katalog/monitoring/node-exporter
- ./vendor/katalog/monitoring/kube-state-metrics
- ./vendor/katalog/monitoring/grafana
- ./vendor/katalog/monitoring/goldpinger

See kustomize documentation for details about kustomization.yaml format.

To deploy all the packages to your cluster, execute the following command:

$ kustomize build . | kubectl apply -f -

The following cluster architectures are supported to obtain metrics from Kubernetes components:

  • on-premise or unmanaged cloud clusters
  • Google Kubernetes Engine (GKE)
  • Azure Kubernetes Service (AKS)

On-premise or unmanaged cloud clusters

  • Add monitoring/kubeadm-sm to Furyfile.yml.
  • Download package with furyctl vendor
  • Add ./vendor/katalog/monitoring/kubeadm-sm to kustomization.yaml.
  • Deploy package with kustomize build . | kubectl apply -f -

Google Kubernetes Engine (GKE)

  • Add monitoring/gke-sm to Furyfile.yml.
  • Download package with furyctl vendor
  • Add ./vendor/katalog/monitoring/gke-sm to kustomization.yaml.
  • Deploy package with kustomize build . | kubectl apply -f -

Azure Kubernetes Service (AKS)

  • Add monitoring/aks-sm to Furyfile.yml.
  • Download package with furyctl vendor
  • Add ./vendor/katalog/monitoring/aks-sm to kustomization.yaml.
  • Deploy package with kustomize build . | kubectl apply -f -

If you need to customize our packages you can do it with kustomize. It lets you create customized Kubernetes resources based on other Kubernetes resource files, leaving the original YAML untouched and usable as is. To learn how to create you customization layer with it please see the kustomize repository.

For further details please refer to the single package directories in this repository.

Examples

To see examples on how to customize Fury Kubernetes Monitoring packages please go to examples directory.

License

For license details please see LICENSE

fury-kubernetes-monitoring's People

Contributors

phisco avatar beratio avatar lnovara avatar angelbarrera92 avatar gitirabassi avatar ralgozino avatar jnardiello avatar kandros avatar simonemex avatar valecontenti avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.