воскресенье, 7 апреля 2019 г.

Отправляем метрики из AWS Cloudwatch в Prometheus с помощью prometheus-operator в Kubernetes

Добавляем права нашему пользователю AWS для чтения метрик:
aws iam attach-group-policy \
--policy-arn arn:aws:iam::aws:policy/CloudWatchReadOnlyAccess \
--group-name kops-dev


Создаем values-файл для экспортера:
cat << EOF > values-cloudwatch-exporter.yml
service:
  annotations:
    prometheus.io/scrape: "true"
EOF


Устанавливаем экспортер:
helm install stable/prometheus-cloudwatch-exporter \
--name prometheus-cloudwatch-exporter \
--namespace kube-system \
--set aws.aws_access_key_id=${AWS_ACCESS_KEY_ID} \
--set aws.aws_secret_access_key=${AWS_SECRET_ACCESS_KEY} \
-f values-cloudwatch-exporter.yml



Создаем values-файл для оператора:
cat << EOF > values-operator.yml
prometheus:
  additionalServiceMonitors:
    - name: prometheus-operator-cloudwatch
      endpoints:
      - port: http
        path: /metrics
        interval: 30s
      namespaceSelector:
        matchNames:
          - kube-system
        selector:
          matchLabels:
            app: prometheus-cloudwatch-exporter
serviceMonitors:
  - name: ""
    namespaceSelector:
      any: true
EOF


Устанавливаем prometheus-operator с Alertmanager и Grafana:
helm install stable/prometheus-operator \
--name prometheus-operator \
--namespace monitoring \
-f values-operator.yml


Идем в дашборд прометеуса на страницу Targets и проверяем наш новый таргет:



Ну и наконец посмотрим сами метрики: