
У меня возникли проблемы с установкой последней версии Prometheus на свежеустановленной Ubuntu 16.04. Все руководства, которые я смог найти, предназначены для 14.04, а переход с systemV на systemd делает эти руководства несовместимыми (или, по крайней мере, неполными) при установке на 16.04.
Я могу установить Prometheus из apt, но он устанавливает версию 0.16.2, а текущая версия — 1.0.2.
Я пользуюсь официальнымруководство по установке prometheus.ioиэто руководство по Digital Ocean.
Может ли кто-нибудь помочь мне с настройкой systemd? У меня относительно большой опыт работы с Ubuntu, но изменение systemd ставит меня в тупик.
решение1
Следующий файл модуля сработал у меня при установке Prometheusсерверверсия 1.x (в отличие от экспортера).
# /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io/docs/introduction/overview/
After=network-online.target
[Service]
User=prometheus
Restart=on-failure
ExecStart=/usr/local/bin/prometheus-1.1.2.linux-amd64/prometheus \
-config.file=/etc/prometheus/prometheus.yml \
-storage.local.path=/var/lib/prometheus/data
[Install]
WantedBy=multi-user.target
Конечно, это предполагает, что вы создали пользователя Prometheus и предоставили ему необходимые разрешения.
Затем используйте команды, указанные WInfly.
$ sudo systemctl daemon-reload
$ sudo systemctl enable prometheus
$ sudo systemctl start prometheus
$ sudo systemctl status prometheus
Я нашел следующее полезным:
Прометей:https://blog.svedr.in/posts/prometheus-quick-start.html
Страницы руководства для директив файлов модулей:https://www.freedesktop.org/software/systemd/man/systemd.directives.html
решение2
Имя аргумента хранилища сервера изменилось в версии 2.x, рабочий синтаксис:
[Unit]
Description=Prometheus Server
After=network-online.target
[Service]
User=root
Restart=on-failure
ExecStart=/usr/local/bin/prometheus-2.2.1.linux-amd64/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/var/lib/prometheus/data
[Install]
WantedBy=multi-user.target
решение3
Я нашел свой ответ вЭта статья. Конкретная часть, которую я упустил, пытаясь настроить это для запуска с systemd, — это создание файла юнита. Ниже создается файл юнита для node_exporter и затем запускается как служба. Надеюсь, это поможет кому-то еще!
Создайте файл модуля:
$ sudo vim /etc/systemd/system/node_exporter.service
[Unit]
Description=Node Exporter
[Service]
User=vxx
ExecStart=/home/vxx/Prometheus/node_exporter/node_exporter
[Install]
WantedBy=default.target
Затем запустите службу после перезагрузки демона или перезагрузите сервер:
$ sudo systemctl daemon-reload
$ sudo systemctl enable node_exporter.service
$ sudo systemctl start node_exporter.service
$ sudo systemctl status node_exporter.service
решение4
Если кто-то все еще возвращается к этому вопросу, я описал установку prometheus, node_exporter и apache_exporter на основеэто учебное пособие DigitalOcean.
Мои скрипты вы можете найти здесь: https://github.com/icolwell/install_scripts
Следующие сценарии могут быть интересны:
prometheus_install.bash
prometheus_node_exporter_install.bash
prometheus_apache_exporter_install.bash
Вы можете загрузить и запустить скрипты, используя следующее:
wget https://raw.githubusercontent.com/icolwell/install_scripts/master/prometheus_install.bash
bash prometheus_install.bash
Обратите внимание, что любая существующая конфигурация Prometheus будет переопределена.