Как отслеживать сервисы докеров с помощью эластичного стека - PullRequest
0 голосов
/ 06 мая 2019

У меня есть док-рой, управляющий несколькими службами.Я использую эластичный стек (kibana, эластичный, filebeat и т. Д.) Для мониторинга.
Для бизнес-логики я пишу журналы и использую filebeat для перемещения их в logstash и анализа данных в kibana.

Но у меня проблемы с мониторингом работоспособности моих докеров.некоторые из них развернуты глобально (например, filebeat), а некоторые имеют несколько реплик.Я не хочу видеть в kibana, что количество запущенных контейнеров равно количеству, которое должен иметь сервис.Я пытаюсь использовать metricbeat с модулем Docker , самый полезный набор метрик, который я нашел, это container, но, похоже, он не содержит достаточно информации для отображенияили проанализируйте количество экземпляров службы.

Буду признателен за любой совет, как этого добиться.

Конфигурация metricbeat

metricbeat.autodiscover:
  providers:
    - type: docker
      hits.enabled: true

metricbeat.modules:
  - module: docker
    enabled: true
    metricsets:
      - container
      - healthcheck
      - info
    period: 10s
    hosts: [ "unix:///var/run/docker.sock" ]

processors:
  - add_docker_metadata: ~
  - add_locale:
      format: offset

output.logstash:
  hosts: [ "mylogstash.com" ]

Метрический container данные журнала (соответствующая часть докера)

...
"docker" : {
  "container": {
    "id": "60983ad304e13cb0245a589ce843100da82c5fv9e093aad68abb439cdc2f3044"
    "status": "Up 3 weeks",
    "command": "./entrypoint.sh",
    "image": "registry.com/myimage",
    "created": "2019-04-08T11:38:10.000Z",
    "name": "mystack_myservice.wuiqep73p99hcbto2kgv6vhr2.mufs70y24k5388jxv782in18f",
    "ip_addresses": [ "10.0.0.148" ]
    "labels" : {
       "com_dokcer_swarm_node_id": "wuiqep73p99hcbto2kgv6vhr2",
       "com_docker_swarm_task_name": "stack_service.wuiqep73p99hcbto2kgv6vhr2.mufs70y24k5388jxv782in18f",
       "com_docker_swarm_service_id": "kxm5dk43yzyzpemcbz23s21xo",
       "com_docker_swarn_task_id":  "mufs70y24k5388jxv782in18f",
       "com_docker_swarm_task" : "",
       "com_docker_stack_namespace": "mystack",
       "com_docker_swarm_service_name": "mystack_myservice"
     },
     "size": {
        "rw": 0,
        "root_fs": 0
     }
  }
}
...

1 Ответ

0 голосов
/ 20 мая 2019

Для дальнейшего использования:

Я написал bash-скрипт, который запускается по интервалу и записывает журнал json для каждого из сервисов роя. Скрипт обернут в изображение Docker Service Logger

...