diff --git a/docs/assets/images/prometheusmonitoring.png b/docs/assets/images/prometheusmonitoring.png new file mode 100755 index 00000000..96c5eec6 Binary files /dev/null and b/docs/assets/images/prometheusmonitoring.png differ diff --git a/docs/genestack-components.md b/docs/genestack-components.md index 483f6a9e..ca2af722 100644 --- a/docs/genestack-components.md +++ b/docs/genestack-components.md @@ -40,23 +40,28 @@ variety of services: | OpenStack | Ironic (Helm) | Optional | Required | | OpenStack | metal3.io | Optional | Required | -Initial monitoring componets consists of the following projects +Initial monitoring components consists of the following projects -| Group | Component | OpenStack Flex | OpenStack Enterprise | -|------------|----------------------|----------------|----------------------| -| Kubernetes | Prometheus | Required | Required | -| Kubernetes | Thanos | Required | Required | -| Kubernetes | Alertmanager | Required | Required | -| Kubernetes | Grafana | Required | Required | -| Kubernetes | Node Exporter | Required | Required | -| Kubernetes | redfish Exporter | Required | Required | -| OpenStack | OpenStack Exporter | Required | Required | +| Group | Component | OpenStack Flex | OpenStack Enterprise | +|------------|--------------------|----------------|----------------------| +| Kubernetes | Prometheus | Required | Required | +| Kubernetes | Alertmanager | Required | Required | +| Kubernetes | Grafana | Required | Required | +| Kubernetes | Node Exporter | Required | Required | +| Kubernetes | Kube State Metrics | Required | Required | +| Kubernetes | redfish Exporter | Required | Required | +| OpenStack | OpenStack Exporter | Required | Required | +| OpenStack | RabbitMQ Exporter | Required | Required | +| OpenStack | Mysql Exporter | Required | Required | +| OpenStack | Memcached Exporter | Required | Required | +| OpenStack | Postgres Exporter | Required | Required | At a later stage these components will be added -| Group | Component | OpenStack Flex | OpenStack Enterprise | -|-----------|----------------------|----------------|----------------------| -| OpenStack | MongoDB | Optional | Required | -| OpenStack | Aodh (Helm) | Optional | Required | -| OpenStack | Ceilometer (Helm) | Optional | Required | -| OpenStack | Masakari (Helm) | Optional | Required | +| Group | Component | OpenStack Flex | OpenStack Enterprise | +|------------|-------------------|----------------|----------------------| +| Kubernetes | Thanos | Optional | Required | +| OpenStack | MongoDB | Optional | Required | +| OpenStack | Aodh (Helm) | Optional | Required | +| OpenStack | Ceilometer (Helm) | Optional | Required | +| OpenStack | Masakari (Helm) | Optional | Required | diff --git a/docs/infrastructure-memcached.md b/docs/infrastructure-memcached.md index a963897d..af99aa73 100644 --- a/docs/infrastructure-memcached.md +++ b/docs/infrastructure-memcached.md @@ -12,9 +12,7 @@ kubectl kustomize --enable-helm /opt/genestack/kustomize/memcached/base | kubect ### Alternative - Deploy the Memcached Cluster With Monitoring Enabled -``` shell -kubectl kustomize --enable-helm /opt/genestack/kustomize/memcached/base-monitoring | kubectl apply --namespace openstack -f - -``` +View the [memcached exporter](prometheus-memcached-exporter.md) instructions to install a HA ready memcached cluster with monitoring and metric collection enabled. !!! note diff --git a/docs/prometheus-memcached-exporter.md b/docs/prometheus-memcached-exporter.md new file mode 100644 index 00000000..cb655f03 --- /dev/null +++ b/docs/prometheus-memcached-exporter.md @@ -0,0 +1,24 @@ +# Memcached Exporter + +Memcached Exporter is used to expose metrics from a running Memcached deployment. + +!!! note + + To deploy metric exporters you will first need to deploy the Prometheus Operator, see: ([Deploy Prometheus](prometheus.md)). + +## Installation + +Install the Memcached Exporter + +!!! note + + Following this installation step will also deploy [memcached](infrastructure-memcached.md) in a HA production ready cluster that includes monitoring via the metric exporters. If memcached is already installed running this will simply enable the exporters which allows Prometheus to begin scraping the memcached service. + +### Deploy the Memcached Cluster With Monitoring Enabled + +``` shell +kubectl kustomize --enable-helm /opt/genestack/kustomize/memcached/base-monitoring | kubectl apply --namespace openstack -f - +``` + +!!! success + If the installation is successful, you should see the exporter pod in the openstack namespace. diff --git a/docs/prometheus-monitoring-overview.md b/docs/prometheus-monitoring-overview.md new file mode 100644 index 00000000..dece4d47 --- /dev/null +++ b/docs/prometheus-monitoring-overview.md @@ -0,0 +1,8 @@ +# Prometheus Monitoring Overview + +Genestack utilizes Prometheus for monitoring and metrics collection. To read more about Prometheus please take a look at the [upstream docs](https://prometheus.io). + + +A high level visual of Prometheus and the various monitoring and alerting components inside Genestack + +![Genestack Architecture Diagram](assets/images/diagram-genestack.png) diff --git a/docs/prometheus-mysql-exporter.md b/docs/prometheus-mysql-exporter.md index 8352ced3..5886f3f7 100644 --- a/docs/prometheus-mysql-exporter.md +++ b/docs/prometheus-mysql-exporter.md @@ -3,6 +3,11 @@ Mysql Exporter is used to expose metrics from a running mysql/mariadb server. The type of metrics exposed is controlled by the exporter and expressed in values.yaml file. +!!! note + + To deploy metric exporters you will first need to deploy the Prometheus Operator, see: ([Deploy Prometheus](prometheus.md)). + + ## Installation First create secret containing password for monitoring user @@ -22,4 +27,5 @@ kubectl kustomize --enable-helm /opt/genestack/kustomize/prometheus-mysql-export kubectl -n openstack apply --server-side -f - ``` -If the installation is successful, you should see the exporter pod in openstack namespace. +!!! success + If the installation is successful, you should see the exporter pod in the openstack namespace. diff --git a/docs/prometheus-openstack-metrics-exporter.md b/docs/prometheus-openstack-metrics-exporter.md index acdbe795..c79d7929 100644 --- a/docs/prometheus-openstack-metrics-exporter.md +++ b/docs/prometheus-openstack-metrics-exporter.md @@ -1,9 +1,13 @@ -# Openstack MetricsExporter +# Openstack Exporter -We are using Prometheus for monitoring and metrics collection backend along with the openstack exporter to gather openstack resource metrics -For more information see: https://prometheus.io and https://github.com/openstack-exporter/openstack-exporter +We are using Prometheus for monitoring and metrics collection along with the openstack exporter to gather openstack specific resource metrics. +For more information see: [Prometheus docs](https://prometheus.io) and [Openstack Exporter](https://github.com/openstack-exporter/openstack-exporter) -## Deploy the Prometheus Openstack Exporter +## Deploy the Openstack Exporter + +!!! note + + To deploy metric exporters you will first need to deploy the Prometheus Operator, see: [Deploy Prometheus](prometheus.md). ### Create clouds-yaml secret @@ -29,3 +33,6 @@ helm upgrade --install os-metrics ./prometheus-openstack-exporter \ -f /opt/genestack/helm-configs/monitoring/openstack-metrics-exporter/openstack-metrics-exporter-helm-overrides.yaml \ --set clouds_yaml_config="$(kubectl get secret clouds-yaml-secret -o jsonpath='{.data.clouds-yaml}' | base64 -d)" ``` + +!!! success + If the installation is successful, you should see the related exporter pods in the openstack namespace. diff --git a/docs/prometheus-rabbitmq-exporter.md b/docs/prometheus-rabbitmq-exporter.md index 7d69bc2a..bcec5324 100644 --- a/docs/prometheus-rabbitmq-exporter.md +++ b/docs/prometheus-rabbitmq-exporter.md @@ -1,6 +1,10 @@ # RabbitMQ Exporter -RabbitMQ Exporter is used to expose metrics from a running rabbitMQ deployment. +RabbitMQ Exporter is used to expose metrics from a running RabbitMQ deployment. + +!!! note + + To deploy metric exporters you will first need to deploy the Prometheus Operator, see: ([Deploy Prometheus](prometheus.md)). ## Installation @@ -11,4 +15,5 @@ kubectl kustomize --enable-helm /opt/genestack/kustomize/prometheus-rabbitmq-exp kubectl -n openstack apply --server-side -f - ``` -If the installation is successful, you should see the exporter pod in openstack namespace. +!!! success + If the installation is successful, you should see the exporter pod in the openstack namespace. diff --git a/docs/prometheus.md b/docs/prometheus.md index d63b22da..f2745c18 100644 --- a/docs/prometheus.md +++ b/docs/prometheus.md @@ -1,9 +1,12 @@ # Prometheus -We are using Prometheus for monitoring and metrics collection backend. To read more about Prometheus using the [upstream docs](https://prometheus.io). +We are taking advantage of the prometheus community kube-prometheus-stack as well as other various components for monitoring and alerting. For more information take a look at [Prometheus Kube Stack](https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack) -#### Install kube-prometheus helm chart +#### Install kube-prometheus-stack helm chart ``` shell kubectl kustomize --enable-helm /opt/genestack/kustomize/prometheus | kubectl apply --server-side -f - ``` + +!!! success + If the installation is successful, you should see the related exporter pods in the prometheus namespace. diff --git a/mkdocs.yml b/mkdocs.yml index a57f1160..a7ab999a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -143,8 +143,6 @@ nav: - Ceph External: storage-ceph-rook-external.md - NFS External: storage-nfs-external.md - TopoLVM: storage-topolvm.md - - Monitoring: - - Monitoring Overview: prometheus.md - Secrets: - vault.md - Vault Operator: vault-secrets-operator.md @@ -154,11 +152,9 @@ nav: - Ingress: infrastructure-ingress.md - MariaDB: - infrastructure-mariadb.md - - MySQL Exporter: prometheus-mysql-exporter.md - PostgreSQL: infrastructure-postgresql.md - RabbitMQ: - infrastructure-rabbitmq.md - - RabbitMQ Exporter: prometheus-rabbitmq-exporter.md - Memcached: infrastructure-memcached.md - Libvirt: infrastructure-libvirt.md - OVN: @@ -180,7 +176,13 @@ nav: - skyline: openstack-skyline.md - Octavia: openstack-octavia.md - Gnocchi: openstack-gnocchi.md - - Openstack Exporter: prometheus-openstack-metrics-exporter.md + - Monitoring: + - Monitoring Overview: prometheus-monitoring-overview.md + - Prometheus: prometheus.md + - MySQL Exporter: prometheus-mysql-exporter.md + - RabbitMQ Exporter: prometheus-rabbitmq-exporter.md + - Memcached Exporter: prometheus-memcached-exporter.md + - Postgres Exporter: prometheus-openstack-metrics-exporter.md - Operational Guide: - Running Genestack Upgrade: genestack-upgrade.md - Running Kubespray Upgrade: k8s-kubespray-upgrade.md