Уведомлять об оповещениях: превышен крайний срок контекста (возможна проблема с прокси) - PullRequest
0 голосов
/ 14 апреля 2019

Я пытаюсь подключить сервер Alermanager в Ubuntu в EC2 AWS к Slack, но я получаю эту ошибку:

Apr 14 18:22:26 prometheus-db-v01-01a.myserver.com alertmanager[5854]: level=error ts=2019-04-14T18:22:26.658601495Z caller=dispatch.go:177 component=dispatcher msg="Notify for alerts failed" num_alerts=1 err="Post <redacted>: context deadline exceeded"

мой alertmanager.yum выглядит так:

templates:
- '/etc/alertmanager/template/slack.tmpl'

route:
  receiver: slack_general
  repeat_interval: 5m
  group_by: [alertname]
  routes:
# severity=info alerts will not try to match to any other rule
    - match:
        severity: info
      receiver: slack_general

receivers:
- name: slack_general
  slack_configs:
  - api_url: https://hooks.slack.com/services/ID
    send_resolved: true
    username: 'Prometheus-bot'
    channel: '#errors'
    title: '{{ template "slack.my.title" . }}'
    text: '{{ template "slack.my.text" . }}'

Я вижу предупреждение, запускающее мое тестовое предупреждение с:

root@prometheus-db-v01-01a:~# amtool alert --alertmanager.url=http://localhost:9093 -v
Alertname         Starts At                Summary
Cassandra_yellow  2019-04-14 18:11:56 UTC  The cassandra  cluster is in yellow state

Я запустил Prometheus с помощью systemd:

root@prometheus-db-v01-01a:~# cat /etc/systemd/system/alertmanager.service
[Unit]
Description=Prometheus Alertmanager Service
Wants=network-online.target
After=network.target

[Service]
Environment=https_proxy=http://proxy:80/
Environment=http_proxy=http://proxy:80/
User=alertmanager
Group=alertmanager
Type=simple
ExecStart=/usr/local/bin/alertmanager \
    --config.file /etc/alertmanager/alertmanager.yml \
    --storage.path /var/lib/alertmanager/data
Restart=always

[Install]
WantedBy=multi-user.target
root@prometheus-db-v01-01a:~#

Я попытался установить прокси с переменной 2 Environment,но тот же результат

Сервер использует прокси для связи со Slack, и я могу проверить его с помощью:

root@prometheus-db-v01-01a:~# curl -X POST --data-urlencode "payload={\"channel\": \"#errors\", \"username\": \"webhookbot\", \"text\": \"This is posted to #errors and comes from a bot named webhookbot.\", \"icon_emoji\": \":ghost:\"}" https://hooks.slack.com/services/ID

, который работает, в то время как

root@prometheus-db-v01-01a:~# curl -X POST --noproxy "*" --data-urlencode "payload={\"channel\": \"#errors\", \"username\": \"webhookbot\", \"text\": \"This is posted to #errors and comes from a bot named webhookbot.\", \"icon_emoji\": \":ghost:\"}" https://hooks.slack.com/services/ID
curl: (7) Failed to connect to hooks.slack.com port 443: Connection timed out

ВсеПриведенные выше команды взяты с сервера alertmanger.

Правильно ли я считаю, что это проблема с прокси?Как я могу установить это?

Заранее спасибо

1 Ответ

1 голос
/ 15 апреля 2019

Проблема решена: это был прокси, и его нужно установить в alertmanager.yml файле

templates:
- '/etc/alertmanager/template/slack.tmpl'

global:
  http_config:
    proxy_url: 'http://proxy:80/'

route:
  receiver: slack_general
  repeat_interval: 5m
  group_by: [alertname]
  routes:

    - match:
        severity: minor
      receiver: slack_general

receivers:
- name: slack_general
  slack_configs:
[...]
...