Ошибка при настройке Containerized Sensu-сервера и клиента для мониторинга Docker

Я пытаюсь настроить sensu-server для мониторинга моих док-контейнеров, следуя инструкциям на этот пост.

Демон Docker работает на том же хосте, что и sensu-server и sensu-clients (localhost).

Файл check-docker содержит запись для вызова скрипта load-docker-metrics.sh.

проверка-docker.sh

{
  "checks": {
    "load_docker_metrics": {
      "type": "metric",
      "command": "load-docker-metrics.sh",
      "subscribers": [
        "docker"
      ],
      "interval": 10
    }
  }
}

загрузить-докер-metrics.sh

#!/bin/bash
set -e

# Count all running containers
running_containers=$(echo -e "GET /containers/json HTTP/1.0\r\n" | nc -U /var/run/docker.sock \
    | tail -n +5                                                           \
    | python -m json.tool                                                  \
    | grep \"Id\"                                                          \
    | wc -l)
# Count all containers
total_containers=$(echo -e "GET /containers/json?all=1 HTTP/1.0\r\n" | nc -U /var/run/docker.sock \
 | tail -n +5 \
 | python -m json.tool \
 | grep \"Id\" \
 | wc -l)

# Count all images
total_images=$(echo -e "GET /images/json HTTP/1.0\r\n" | nc -U /var/run/docker.sock \
 | tail -n +5 \
 | python -m json.tool \
 | grep \"Id\" \
 | wc -l)

echo "docker.invismac.running_containers ${running_containers}"
echo "docker.invismac.total_containers ${total_containers}"
echo "docker.invismac.total_images ${total_images}"

if [ ${running_containers} -lt 3 ]; then
    exit 1;
fi

load-docker-metrics в основном делает несколько вызовов API-интерфейса докера и извлекает несколько метрик. Если я запускаю этот скрипт на своем хосте (invismac), он дает мне точный результат:

docker.invismac.running_containers 7
docker.invismac.total_containers 8
docker.invismac.total_images 15

Я запускаю контейнер sensu-server с помощью этой команды:

docker run -d --name sensu-server \ -p 3000:3000 \ -p 4567:4567 \ -p 5671:5671 \ -p 15672:15672 \ -v $PWD/check-docker.json:/etc/sensu /conf.d/check-docker.json \ hiroakis/docker-sensu-server

После этого я могу правильно получить доступ к панели управления uchima через порт 3000.

Затем я запускаю клиент с помощью этой команды:

docker run --name sensu-client --привилегированный \ -v $PWD/load-docker-metrics.sh:/etc/sensu/plugins/load-docker-metrics.sh \ -v /var/run/docker.sock :/var/run/docker.sock \ usman/sensu-client localhost пароль sensu CLIENT-1 localhost

Предполагается, что клиент связывается с RabbitMQ и регистрируется в uchima, но ничего не происходит. Я вошел в контейнер, который запускает клиент, и, посмотрев журнал, похоже, произошла ошибка с rabbitMQ:

"отметка времени": "2016-04-15T15:18:50.768594+0000", "уровень": "ошибка", "сообщение": "[amqp] Обнаружен сбой соединения TCP"}

Rabbitmq запущен, и я могу получить доступ к его конечной точке здесь:

http://localhost:15672

Приборная панель дает мне некоторую информацию: у меня есть 2 подключения, 2 канала, 2 пользователя.

Кроме того, если я зайду в контейнер sensu-master, я могу проверить, что у rabbitmq есть этот пользователь:

сенсу [администратор]

Со всеми разрешениями:

/сенсу .* .* .*

Есть идеи, почему sensu-client не может общаться с RabbitMQ? Какая-то другая проверка, которую я мог бы попробовать? Я передаю какие-то неправильные значения в конфигурации сервера или клиента? нельзя ли иметь сервер и клиент на одном хосте?

Dmesg на клиенте также выдает мне это сообщение (я не знаю, может ли это быть связано)

[29252.322147] аудит: тип = 1400 аудит (1460734746.650:975): apparmor="DENIED" operation="ptrace" profile="docker-default" pid=27531 comm="ps" required_mask="trace" disabled_mask="trace" одноранговый = "неограниченный"

Панель управления Учима


person doublebyte    schedule 15.04.2016    source источник


Ответы (1)


У меня та же проблема. Делал все по этой инструкции, очень похоже на вашу. Единственный способ решить проблему - запустить серверную и клиентскую части на разных машинах с разными IP.

После этого у вас будет 3 подключения в RabitMQ, никаких ошибок ampq в журнале sensu-client и успешно добавленный клиент в Uchiwa.

Вот как это выглядит.

person Alex.K    schedule 11.08.2016