ข้ามไปยังเนื้อหา

This is the Stable version of the documentation. The latest version is experimental and under active development. You can use the version selector in the top-right menu to switch versions for this specific page, or click here to go to the latest version's homepage.

Grafana Health Checks for Opstella Installation

เนื้อหานี้ยังไม่มีในภาษาของคุณ

Grafana Health Checks for Opstella will be installed on 🟢 Management Kubernetes Cluster

Expose /ready Path from Mimir, Loki, and Tempo (All in Distributed Deployment Mode) for Opstella to Check for their Health through Ingress.

Re-using Grafana Dashboard Domain and separate traffic with query paths as the following,

Grafana Mimir:

  • $GRAFANA_DASHBOARD_DOMAIN/mimir/read/ready - Check querier service
  • $GRAFANA_DASHBOARD_DOMAIN/mimir/write/ready - Check distributor service
  • $GRAFANA_DASHBOARD_DOMAIN/mimir/backend/ready - Check ingester service

Optionally Learn More about sub-components (Micro-Services) from Grafana Mimir Architecture

Grafana Loki:

  • $GRAFANA_DASHBOARD_DOMAIN/loki/read/ready - Check querier service
  • $GRAFANA_DASHBOARD_DOMAIN/loki/write/ready - Check distributor service
  • $GRAFANA_DASHBOARD_DOMAIN/loki/backend/ready - Check ingester service

Optionally Learn More about sub-components (Micro-Services) from Grafana Loki Architecture

Grafana Tempo:

  • $GRAFANA_DASHBOARD_DOMAIN/tempo/read/ready - Check querier service
  • $GRAFANA_DASHBOARD_DOMAIN/tempo/write/ready - Check distributor service
  • $GRAFANA_DASHBOARD_DOMAIN/tempo/backend/ready - Check ingester service

Optionally Learn More about sub-components (Micro-Services) from Grafana Tempo Architecture

  • 📥Ingress Service provided as Kubernetes Ingress Class (IngressClass)
  • 🛡️TLS Certificate for Grafana Dashboard provided as Kubernetes Secret
    • Grafana Dashboard will be exposed as HTTPS with Kubernetes Ingress.
  • 🛡️TLS Certificate for Grafana Health Checks for Opstella
    • Grafana Health Checks for Opstella will be exposed through Web with HTTPS with Kubernetes Ingress configured with TLS Certificate located within Kubernetes Cluster.
  1. Connect to 🟢 Management Kubernetes Cluster ; i.e w/ Kubeconfig File

    Ensure you have defined and loaded your Global Shell Variables as described in Shell Variables.

    Terminal window
    source $HOME/opstella-installation/shell-values/kubernetes/management_cluster.vars.sh
    Terminal window
    export KUBECONFIG="$HOME/opstella-installation/kubeconfigs/management_cluster.yaml"
  2. Create Kubernetes Secret for TLS Certificate in Namespace observability-system. (If you not have it done.)

    Kubernetes Ingress for DefectDojo will associate TLS Certificate with Kubernetes Secret named wildcard-${BASE_DOMAIN}-tls.

    Ensure K8S_INGRESS_TLS_CERTIFICATE_SECRET_NAME is defined.

    If not, create one using from .crt and .key file.

    Terminal window
    kubectl create secret tls $K8S_INGRESS_TLS_CERTIFICATE_SECRET_NAME \
    --cert=/path/to/cert/file --key=/path/to/key/file \
    --namespace observability-system
  3. Prepare 🟢 Management Kubernetes Cluster Information

    Ensure GRAFANA_DASHBOARD_DOMAIN, K8S_INGRESSCLASS_NAME, K8S_INGRESS_TLS_CERTIFICATE_SECRET_NAME are defined as per the Shell Variables guide.

  1. Create Kubernetes Manifest Configuration

    Terminal window
    cat <<EOF >> $HOME/opstella-installation/kubernetes-manifests/grafana-ltm-healthcheck-ingress.yaml
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
    name: grafana-ltm-healthcheck
    namespace: observability-system
    annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /ready
    spec:
    ingressClassName: ${K8S_INGRESSCLASS_NAME}
    tls:
    - secretName: ${K8S_INGRESS_TLS_CERTIFICATE_SECRET_NAME}
    hosts:
    - ${GRAFANA_DASHBOARD_DOMAIN}
    rules:
    - host: ${GRAFANA_DASHBOARD_DOMAIN}
    http:
    paths:
    ## LOKI
    - path: /loki/read/ready
    pathType: Prefix
    backend:
    service:
    name: grafana-loki-querier
    port:
    number: 3100
    - path: /loki/write/ready
    pathType: Prefix
    backend:
    service:
    name: grafana-loki-distributor
    port:
    number: 3100
    - path: /loki/backend/ready
    pathType: Prefix
    backend:
    service:
    name: grafana-loki-ingester
    port:
    number: 3100
    ## MIMIR
    - path: /mimir/read/ready
    pathType: Prefix
    backend:
    service:
    name: grafana-mimir-querier
    port:
    number: 8080
    - path: /mimir/write/ready
    pathType: Prefix
    backend:
    service:
    name: grafana-mimir-distributor
    port:
    number: 8080
    - path: /mimir/backend/ready
    pathType: Prefix
    backend:
    service:
    name: grafana-mimir-ingester
    port:
    number: 8080
    ## TEMPO
    - path: /tempo/read/ready
    pathType: Prefix
    backend:
    service:
    name: grafana-tempo-querier
    port:
    number: 3200
    - path: /tempo/write/ready
    pathType: Prefix
    backend:
    service:
    name: grafana-tempo-distributor
    port:
    number: 3200
    - path: /tempo/backend/ready
    pathType: Prefix
    backend:
    service:
    name: grafana-tempo-ingester
    port:
    number: 3200
    EOF
  1. Apply Kubernetes Manifests

    Terminal window
    kubectl apply --namespace observability-system \
    -f $HOME/opstella-installation/kubernetes-manifests/grafana-ltm-healthcheck-ingress.yaml

Finished?

Use the below navigation to proceed