2015-08-10 3 views
1

Я пытаюсь настроить экспортера мезоса на моем кластере DCOS кластера мезосферы. Ссылка, на которую я имею в виду, - https://github.com/prometheus/mesos_exporter. Файл JSON я использовал это:Конфигурирование prometheus mesos-exporter работает на мезосфере DCOS

{ 
     "id": "/mesosexporter", 
     "instances": 6, 
     "cpus": 0.1, 
     "mem": 25, 
     "constraints": [["hostname", "UNIQUE"]], 
     "acceptedResourceRoles": ["slave_public","*"], 
     "container": { 
      "type": "DOCKER", 
      "docker": { 
       "image": "prom/mesos-exporter", 
       "network": "BRIDGE", 
       "portMappings": [ 
        { 
         "containerPort": 9105, 
         "hostPort": 9105, 
         "protocol": "tcp" 
        } 
       ] 
      } 
      }, 
     "healthChecks": [{ 
      "protocol": "TCP", 
      "gracePeriodSeconds": 600, 
      "intervalSeconds": 30, 
      "portIndex": 0, 
      "timeoutSeconds": 10, 
      "maxConsecutiveFailures": 2 
     }] 
    } 

Но только метр подвергается Прометея «mesos_exporter_slave_scrape_errors_total». Каковы другие метры, которые экспортер мезоса предоставляет для Прометей. Readme из github мезо-экспортера говорит, что нам нужно предоставить флаги командной строки, но если я хочу запустить экспортер мезоса в качестве контейнера докеров, как мне указать конфигурацию?

EDIT - метр «mesos_exporter_slave_scrape_errors_total» дает отличное от нуля значение, указывающее на то, что во время царапины произошли ошибки.

EDIT - После добавления параметра '' примитивно мой файл JSON выглядит следующим образом:

{ 
    "id": "/mesosexporter", 
    "instances": 1, 
    "cpus": 0.1, 
    "mem": 25, 
    "constraints": [["hostname", "UNIQUE"]], 
    "acceptedResourceRoles": ["slave_public"], 
    "container": { 
     "type": "DOCKER", 
     "docker": { 
        "image": "prom/mesos-exporter", 
        "network": "BRIDGE", 
        "portMappings": [ 
            { 
             "containerPort": 9105, 
             "hostPort": 9105, 
             "protocol": "tcp" 
            } 
            ], 
        "privileged": true, 
        "parameters": [ 
            { "key": "-exporter.discovery", "value": "true" }, 
            { "key": "-exporter.discovery.master-url", 
             "value": "http://mymasterDNS.amazonaws.com:5050" } 
           ] 
       } 
    }, 
    "healthChecks": [{ 
     "protocol": "TCP", 
     "gracePeriodSeconds": 600, 
     "intervalSeconds": 30, 
     "portIndex": 0, 
     "timeoutSeconds": 10, 
     "maxConsecutiveFailures": 2 
    }] 
} 

Mesos версия: 0.22.1

Marathon версия: 0.8.2-SNAPSHOT

приложение остается в состоянии «развертывания» после использования этого JSON

ответ

2

Использование примитива args решило проблему. Эквивалентная команда докера: docker run -p 9105: 9105 prom/mesos-exporter -exporter.discovery = true -exporter.discovery.master-url = "mymasternodeDNS: 5050" -log.level = debug Как параметры " exporter.discovery ',' exporter.discovery.master-url 'и' log.level 'предназначены для точки входа изображения, а не для «запуска докеров», «args» должен использоваться.

Формат «аргументы», как добавил в рабочем формате JSON является:

"args": [ 
     "-exporter.discovery=true", 
     "-exporter.discovery.master-url=http://mymasternodeDNS:5050", 
     "-log.level=debug"] 
+0

Рад видеть, что это сработало в конце. Было ли ваше намерение иметь возможность запуска контейнера-посредника-посредника Prometheus каждый раз, когда он не удался? Я использовал его с опцией '--restart = always' команды' docker run'. – Dharmit

2

Но только измерительный прибор, выставленный Prometheus, является «mesos_expo» rter_slave_scrape_errors_total. Каковы другие метры, которые экспортер мезоса предоставляет для Прометей.

Если Mesos-экспортер прослушивает порт 9100, вы можете проверить http://<hostname>:9100/metrics знать, какие показатели подвергаются действию. Я имею в виду prom/node-exporter, который у меня установлен на одной из систем.

, но если я хочу запустить экспортер мезоса в качестве контейнера докера, как мне указать конфигурацию?

Я предполагаю, что вы отправили этот JSON-файл в Marathon REST API для запуска контейнеров Docker. Если это действительно так, вы можете указать дополнительные параметры, используя директиву JSON parameters. Более подробную информацию можно найти на Marathon docs по разделу Привилегированный режим и произвольные параметры докера.

Надеюсь, что это поможет!

+1

Права, вы должны передать правильные параметры к Mesos exporter.If вы планируете работать только один экспортер, вам, вероятно, для установки параметров в '[" -exporter.discovery "," -exporter.discovery.master-url "," hostname-of-master "]' –

+0

@fish являются "-exporter.discovery", "-exporter.discovery.master-url "," hostname-of-master ", принятый в качестве параметров для команды запуска docker, поскольку я запускаю mesos-exportorter с использованием файла docker image prom/mesos-exportorter. –

+0

На самом деле я просто проверил документы и правый параметр marathon json для использования будет «args». Что-то вроде этого должно это сделать: https://gist.github.com/discordianfish/2b53f3b08a9b33cbfc2f –

Смежные вопросы