Есть Docker Compose файл, который запускает Prometheus стек.
Рабочий каталог Prometheus — /opt/prometheus
, в котором находится Compose файл prometheus-compose.yml
.
Для управления им через systemd
— создаём файл /etc/systemd/system/prometheus.service
:
[Unit] Description=Prometheus stack Requires=docker.service After=docker.service [Service] Restart=always WorkingDirectory=/opt/prometheus ExecStart=/usr/local/bin/docker-compose -f prometheus-compose.yml up ExecStop=/usr/local/bin/docker-compose -f prometheus-compose.yml down [Install] WantedBy=multi-user.target
Проверяем.
Запускаем:
systemctl start prometheus.service
Проверяем контейнер:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
da348d05d494 prom/prometheus:v1.8.2 "/bin/prometheus -co…" 1 second ago Up Less than a second 0.0.0.0:9090->9090/tcp prometheus_prometheus-server_1
Статус процесса:
systemctl status prometheus.service
● prometheus.service - Prometheus stack
Loaded: loaded (/etc/systemd/system/prometheus.service; disabled; vendor preset: enabled)
Active: active (running) since Wed 2018-06-13 16:43:56 EEST; 38s ago
Main PID: 9164 (docker-compose)
Tasks: 3 (limit: 4915)
Memory: 29.1M
CPU: 392ms
CGroup: /system.slice/prometheus.service
└─9164 /usr/bin/python /usr/local/bin/docker-compose -f prometheus-compose.yml up
Jun 13 16:43:57 monitonrig-dev docker-compose[9164]: [105B blob data]
Jun 13 16:43:57 monitonrig-dev docker-compose[9164]: prometheus-server_1 | time="2018-06-13T13:43:57Z" level=info msg="Starting prometheus (version=1.8.2, branch=HEAD, revision=5211b96d4d1291c3dd1a569f711d3b301b635ecb)" source="
Jun 13 16:43:57 monitonrig-dev docker-compose[9164]: prometheus-server_1 | time="2018-06-13T13:43:57Z" level=info msg="Build context (go=go1.9.2, user=root@1412e937e4ad, date=20171104-16:09:14)" source="main.go:88"
Jun 13 16:43:57 monitonrig-dev docker-compose[9164]: prometheus-server_1 | time="2018-06-13T13:43:57Z" level=info msg="Host details (Linux 4.9.0-6-amd64 #1 SMP Debian 4.9.88-1 (2018-04-29) x86_64 da348d05d494 (none))" source="ma
Jun 13 16:43:57 monitonrig-dev docker-compose[9164]: prometheus-server_1 | time="2018-06-13T13:43:57Z" level=info msg="Loading configuration file /etc/prometheus.yml" source="main.go:254"
Jun 13 16:43:57 monitonrig-dev docker-compose[9164]: prometheus-server_1 | time="2018-06-13T13:43:57Z" level=info msg="Listening on :9090" source="web.go:341"
Jun 13 16:43:57 monitonrig-dev docker-compose[9164]: prometheus-server_1 | time="2018-06-13T13:43:57Z" level=info msg="Loading series map and head chunks..." source="storage.go:428"
Jun 13 16:43:57 monitonrig-dev docker-compose[9164]: prometheus-server_1 | time="2018-06-13T13:43:57Z" level=info msg="582 series loaded." source="storage.go:439"
Jun 13 16:43:57 monitonrig-dev docker-compose[9164]: prometheus-server_1 | time="2018-06-13T13:43:57Z" level=info msg="Server is Ready to receive requests." source="main.go:230"
Jun 13 16:43:57 monitonrig-dev docker-compose[9164]: prometheus-server_1 | time="2018-06-13T13:43:57Z" level=info msg="Starting target manager..." source="targetmanager.go:63"
При именениях в файле сервиса — не забываем сделать reload
:
systemctl daemon-reload
Готово.