Table of Contents

Установка Grafana и Loki

Продукты: МоиОтчеты Корпоративный Сервер

Grafana это компонент аналитики и интерактивной визуализации для мониторинга состояния кластера. Это необязательный компонент для разворачивания сервера отчётов, но он может быть полезен для контроля состояния сервера.

Loki это агрегатор логов, который используется совместно с Grafana.

Создание пространства имён для компонентов мониторинга

kubectl create namespace monitoring

Обновление чартов для установки компонентов мониторинга

helm repo add loki https://grafana.github.io/loki/charts
helm repo update

Установка Loki

helm upgrade \
  --install loki loki/loki \
  --namespace=monitoring \
  --set persistence.enabled=true \
  --set persistence.storageClassName=hcloud-volumes

helm upgrade \
  --install promtail loki/promtail \
  --namespace=monitoring \
  --set loki.serviceName=loki.monitoring

Установка Grafana

Не забудьте установить переменную SERVER_DOMAIN_NAME.

export SERVER_DOMAIN_NAME="<доменное имя сервера>"

helm upgrade \
  --install grafana stable/grafana \
  --namespace=monitoring \
  --set persistence.enabled=true \
  --set persistence.storageClassName=hcloud-volumes \
  --set 'grafana\.ini'.server.serve_from_sub_path=true \
  --set 'grafana\.ini'.server.root_url=https://$SERVER_DOMAIN_NAME/grafana/ \
  --set 'grafana\.ini'.server.domain=$SERVER_DOMAIN_NAME \
  --set readinessProbe.httpGet.path=/grafana/api/health \
  --set livenessProbe.httpGet.path=/grafana/api/health \

Получение пароля от Grafana

kubectl get secret --namespace monitoring grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo

admin
********

Добавление ingress

Этот блок конфигурации позволяет расположить Grafana на том же самом сетевом интерфейсе, что и сервер отчётов и обращаться к ней по ссылке вида: https://my.server-server.ru/grafana

cat <<EOF | kubectl apply -f -
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: fastreport.cloud-grafana
  namespace: monitoring
  annotations:
    kubernetes.io/ingress.class: "nginx"    
    ingress.kubernetes.io/ssl-redirect: "true"
spec:  
  tls:
  - hosts:
    - $SERVER_DOMAIN_NAME
    secretName: fr-corporate-tls
  rules:
  - host: $SERVER_DOMAIN_NAME
    http:
      paths:      
      - path: /grafana
        backend:
          serviceName: grafana
          servicePort: 80
EOF

Для завершения конфигурации Grafana необходимо зайти на её страницу, авторизоваться и добавить ссылку на Loki http://loki.monitoring:3100