Прометей 1.8 / 2.2.1 очистка выдает ошибку «без токена» - Promtool показывает только несколько предупреждений - PullRequest
0 голосов
/ 08 мая 2018

У меня нет вариантов здесь. У меня установлен экспортер Confluence Prometheus, который работал месяцами. Теперь, когда я переходил на Prometheus 2.x, я заметил, что он не работает (но он также делает это сейчас на 1.8, так что это не связано с миграцией). Я не знаю о каких-либо изменениях в целевой системе.

Вещи, которые я проверял до сих пор:

  • Правильный URL-адрес (https) и его можно получить
  • Показатели проверки Promtool дают некоторые предупреждения, но без ошибок (метрика счетчика confluence_cluster_panic_count должна иметь суффикс "_total")
  • ответ не имеет спецификации
  • другие цели https удаляются без проблем
  • дважды проверил конфигурацию
  • включен --log.level = отладка, но без дополнительного вывода

Как я могу получить больше информации для отладки? Вот что я получаю в логе Прометея:

May  8 10:38:59 prometheus-2-test prometheus[3404]: level=warn ts=2018-05-08T10:38:59.038653969Z caller=scrape.go:697 component="scrape manager" scrape_pool=confluence-prod target="https://myserver:443/plugins/servlet/prometheus/metrics?token=feakingSecurityToken" msg="append failed" err="no token found"

Я думаю, что соответствующие строки в scarpe.go:

        // A failed scrape is the same as an empty scrape,
    // we still call sl.append to trigger stale markers.
    total, added, appErr := sl.append(b, start)
    if appErr != nil {
        level.Warn(sl.l).Log("msg", "append failed", "err", appErr)
        // The append failed, probably due to a parse error or sample limit.
        // Call sl.append again with an empty scrape to trigger stale markers.
        if _, _, err := sl.append([]byte{}, start); err != nil {
            level.Warn(sl.l).Log("msg", "append failed", "err", err)
        }
    }

1 Ответ

0 голосов
/ 11 июня 2018

Пересмотрел это после обновления до новой версии экспортера. Тем не менее та же самая ошибка "без токена" на идеально тонкой целевой URL.

URL-адрес находится за обратным прокси-сервером Apache 2.4, который выполняет завершение SSL (Confluence размещает конечную точку с Tomcat). Apache имеет типичную настройку HTTPS (RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent] and on 443 vhost RequestHeader set X-Forwarded-Proto "https").

Мы заметили, что при временном удалении перенаправления HTTPS в Apache и использовании схемы HTTP Прометей очистил цель.

Решением, которое мы нашли в конце, было сохранение URL-адреса очистки в Prometheus как HTTP и предоставление Apache возможности перенаправлять на HTTPS.

...