Показаны сообщения с ярлыком Prometheus. Показать все сообщения
Показаны сообщения с ярлыком Prometheus. Показать все сообщения

суббота, 3 февраля 2024 г.

установка prometheus-ansible роли

 Есть готовый набор ролей

https://github.com/prometheus-community/ansible.git

Можно запустить через git clone, можно поставить коллекцию:

ansible-galaxy collection install prometheus.prometheus

или

ansible-galaxy collection install git+https://github.com/prometheus-community/ansible.git
(внимание на git+, без него скажет "нет тар файла")
Можно сделать requirements.yaml
collections:
  - name: git@github.com:my_org/private_collections.git#/path/to/collection,devel
  - name: https://github.com/ansible-collections/amazon.aws.git
    type: git
    version: 8102847014fd6e7a3233df9ea998ef4677b99248
Тут есть ещё документация
https://docs.ansible.com/ansible/latest/collections_guide/collections_installing.html

вторник, 30 января 2024 г.

haproxy monitoring

 У haproxy есть как уже написанные экспортеры (archived!), так и штатный экспорт в прометей, штатным и воспользуемся:

frontend prometheus

        bind *:8405

    mode http

    http-request use-service prometheus-exporter if { path /metrics }

А вот с графаной печальнее, есть больше десятка dashboars, но из проверенных (не всех) рабочим оказался только HAProxy 2 Full (id: 12693)

Ну и всё, теперь добавляем в прометей

  - job_name: haproxy

    metrics_path: /metrics

    scrape_interval: 20s

    static_configs:

    - targets:

      - '1.1.1.1:8405'

      - '2.2.2.2:8405'

и радуемся...


пятница, 5 ноября 2021 г.

Prometheus mysqld_exporter

https://grafana.com/oss/prometheus/exporters/mysql-exporter/?tab=installation

Сначала ставим сам экспортер, в докере или прямо на машину. Если сразу на машину (под отдельным юзером, никогда не пускаем софт без особой нужды под рутом)

wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz
tar -zxvf mysqld_exporter*

вторник, 18 мая 2021 г.

Мониторинг для Kubernetes

 Если мы взяли не готовый продукт, а чистый кубер, там нет многого нужного. Сейчас рассмотрим мониторинг. Статья содержит много ссылок, потому что информации много, читать лучше в первоисточнике, и понимать все варианты. При этом не стоит читать только статьи вида "9 утилит" - нужно понимать, КАК оно будет работать, раскатываться, собирать, куда заливать... Что такое heapster, DaemonSet, operator и так далее.

пятница, 23 октября 2020 г.

nginx-vts и актуализация

 Продолжение к

https://dragonflybsd.blogspot.com/2019/02/nginx.html

https://dragonflybsd.blogspot.com/2019/03/nginx-prometheus-dashboard-grafana.html


Сам vts так и заброшен, при этом на данный момент есть 332 форка, так что проект нужен людям.

https://github.com/vozlt/nginx-module-vts/network/members

 Лучше подобрать живую замену и переключиться.

Итак. Диагностика.

Запрашиваем

curl http://localhost/status/format/json

Если ответ 501 Not Implemented - или модуль не подключен, или не активирован в настройках.

То есть убеждаемся, что:

1) модуль собран и подключен

2) настройки примерно как в доке https://github.com/vozlt/nginx-module-vts#synopsis (в частности, может быть закомментирован vhost_traffic_status_zone)

Также, при наличии прометея и nginx-vts-exporter, можно запросить статистику

# curl 127.0.0.1:9913/metrics

Если вывод только такой

# HELP nginx_vts_exporter_build_info A metric with a constant '1' value labeled by version, revision, branch, and goversion from which nginx_vts_exporter was built.

# TYPE nginx_vts_exporter_build_info gauge

nginx_vts_exporter_build_info{branch="HEAD",goversion="go1.10",revision="8aa2881c7050d9b28f2312d7ce99d93458611d04",version="0.10.3"} 1

то опять же, статистика не отдаётся, при этом в его логах будет fetchHTTP failed HTTP status 501

воскресенье, 5 мая 2019 г.

CentOS 6: ставим AlertManager

https://prometheus.io/download/
тут качаем AlertManager, распаковываем, копируем alertmanager и amtool в /usr/local/bin/, конфиг в /etc/prometheus/alertmanager.yml
Потом тут
https://gist.github.com/JoergM/86617e89d6491b42596c
инит файл под него.
Настройку опускаем, это можно делать через правку конфига или напрямую через amtool
Копируем init файл в /etc/init.d, выставляем +x на него, добавляем пользователя prometheus
groupadd prometheus
useradd -d /var/lib/prometheus -g prometheus -M -s /sbin/nologin prometheus

Запускаем.
mkdir /var/log/prometheus/
chown prometheus /var/log/prometheus/
mkdir /var/lib/prometheus/alertmanager
chown prometheus: /var/lib/prometheus/alertmanager

Вносим правки в инит файл: нужно к -config добавить минус чтобы получилось --, удалить часть про silences, и добавить --storage.path=/var/lib/prometheus/alertmanager
Конфиг - расширение меняем на .yml
/etc/init.d/alertmanager start

По настройке есть например тут
https://prometheus.io/docs/alerting/configuration/

Чуть подробнее про особенности 2.0+ версии есть тут
https://ealebed.github.io/posts/2017/prometheus-%D0%BC%D0%B8%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%BD%D0%B0-%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D1%8E-2.0/

пятница, 29 марта 2019 г.

Prometheus

Prometheus - "мониторинг нового поколения".
Prometheus' main distinguishing features as compared to other monitoring systems are:

a multi-dimensional data model (timeseries defined by metric name and set of key/value dimensions)
a flexible query language to leverage this dimensionality
no dependency on distributed storage; single server nodes are autonomous
timeseries collection happens via a pull model over HTTP
pushing timeseries is supported via an intermediary gateway
targets are discovered via service discovery or static configuration
multiple modes of graphing and dashboarding support
support for hierarchical and horizontal federation

Prometheus после nagios или zabbix может сначала очень сильно запутать, как ставить, как запускать... Если с тем же заббиксом - поставили, прошли по быстрой настройке, и вот у нас есть база, есть веб, есть ядро системы, ставим агенты где надо и пишем правила что мониторить, то тут может поначалу пухнуть голова.
Ставить можно прямо на хост, можно в докере, но после базовой установки получаем систему которая сама ничего не умеет опрашивать, не умеет оповещать, да и графики там так себе. И тут начинается.
  • Где хранить?
  • Как получать?
  • Как выводить?
  • Как оповещать?
  • Как масштабировать?

Помимо самого прометея, есть ещё
push gateway для работы с кратковременными процессами (когда сервис работает слишком мало времени, что бы Prometheus имел возможность выполнять к нему запросы для получения метрик)
exporters для сбора метрик из сторонних сервисом (и таких экспортёров – миллион, и имя им легион). В частности, большой список есть тут https://prometheus.io/docs/instrumenting/exporters/
alertmanager – менеджер уведомлений (умеет Slack, почту и т.д.)

А также..
  1. дашборды (dashboards), где будем настраивать всякие красивые графики;
  2. Системы сбора, обработки метрик;
  3. Базы, где метрики будут храниться;
1. Grafana
2. StatsD, telegraf, carbon
3. graphite, influxdb, whisper, prometheus...

четверг, 28 марта 2019 г.

Мониторим nginx статистику (коды ответов итд) через prometheus, подключаем dashboard в grafana

Базовый (не Plus) nginx выдаёт крайне скупую статистику - сколько коннектов сейчас, сколько обработано. Чтобы получать больше информации, нужно или парсить access логи, или ставить модуль vts - их есть 2 вида
1) https://github.com/vozlt/nginx-module-vts
собирается динамическим модулем для nginx, причём версии nginx и модуля должны совпадать

2) https://github.com/knyar/nginx-lua-prometheus
требует lua, то есть или нужен nginx plus или openresty

Поставим первый модуль и подключим к нему экспортер vts в json
https://github.com/hnlq715/nginx-vts-exporter
UP: больше не нужно, nginx-vts научился экспортировать prometheus и json сам. Просто пишем server например на порт 9913 "как было" и всё. И там сразу
    location /metrics {
        vhost_traffic_status_display;
        vhost_traffic_status_display_format prometheus;
        vhost_traffic_status_bypass_stats on;
    }

Сборку и установку динамического модуля опустим (подробнее есть тут), только проверим что по адресу http://localhost/status есть отдача статистики модуля (а чтобы она появилась, читаем тут).
Теперь подключаем экспортер, и по адресу http://localhost:9913/metrics смотрим что появилась информация.
А теперь само подключение дашборда.
http://docs.grafana.org/reference/export_import/#importing-a-dashboard
Читаем как подключать, там достаточно просто id вставить и заполнить data source (prometheus), брать например тут
Nginx VTS Stats

Теперь переходим на http://(server):3000/dashboard/import и в Grafana.com Dashboard вставляем нужный нам id.

PS
Обращаю внимание, есть такой шлак
https://github.com/nginxinc/nginx-prometheus-exporter
Почему шлак? Потому что для чистого nginx он просто экспортирует stub_status, тот самый мизер.