Prometheus: Установка с помощью Docker — Ubuntu, CentOS

Что такое Prometheus? Prometheus — это программное обеспечение для мониторинга и оповещения с открытым исходным кодом, написанное на Go.

Он собирает метрики из настроенных источников и сохраняет их в специальной локальной темпоральной (time series) базе данных.

Prometheus может применять правила к собранными данными, чтобы либо агрегировать и записывать новые временные ряды из существующих данных, либо создавать алерты.

Для визуализации собранных данных Prometheus может быть интегрирован с Grafana.

В этой статье я покажу, как установить Prometheus с помощью Docker в Ubuntu и CentOS.

Установка Docker

Чтобы запустить Prometheus в качестве Docker-контейнера, сначала необходимо установить docker и docker-compose:

  • Как установить Docker в Ubuntu-16.04
  • Как установить Docker в Ubuntu-18.04
  • Как установить Docker в CentOS-7
  • Как установить Docker Compose в Ubuntu, CentOS или MacOS
  • Установка Prometheus с помошью Docker

    Создайте директории для хранения данных и файлов конфигурации Prometheus:

    $ sudo mkdir -p /opt/prometheus/{conf,data}
    

    Измените владельца директории /opt/prometheus/data:

    $ sudo chown 65534:65534 /opt/prometheus/data
    

    Если вы не измените владельца, вы можете получить следующую ошибку:

    msg=»Opening storage failed» err=»open DB in /prometheus: open /prometheus/123456789: permission denied»

    Создайте минимальный файл конфигурации Prometheus /opt/prometheus/conf/prometheus.yml:

    scrape_configs:
      - job_name: 'prometheus'
        static_configs:
          - targets: ['$PROMETHEUS_IP:9090']
    

    Подробную информацию о параметрах конфигурации Prometheus можно найти здесь.

    Создайте Docker Compose файл /opt/prometheus/docker-compose.yml:

    version: "3"
    
    services:
      prometheus:
        image: prom/prometheus:latest
        container_name: prometheus
        volumes:
          - /opt/prometheus/conf:/etc/prometheus
          - /opt/prometheus/data:/prometheus
        command:
          - '--config.file=/etc/prometheus/prometheus.yml'
          - '--storage.tsdb.path=/prometheus'
        ports:
          - "9090:9090"
    

    Создайте файл systemd-сервиса /etc/systemd/system/prometheus.service:

    [Unit]
    Description=Prometheus monitoring docker container
    After=docker.service
    BindsTo=docker.service
    
    [Service]
    Restart=always
    WorkingDirectory=/opt/prometheus/
    # Ubuntu
    ExecStart=/usr/local/bin/docker-compose up
    ExecStop=/usr/local/bin/docker-compose down
    # CentOS
    #ExecStart=/usr/bin/docker-compose up
    #ExecStop=/usr/bin/docker-compose down
    
    [Install]
    WantedBy=multi-user.target
    

    Перезапустите systemd и настройте prometheus на автостарт при загрузке системы:

    $ sudo systemctl daemon-reload
    $ sudo systemctl enable prometheus
    

    Запустите сервис prometheus:

    $ sudo systemctl start prometheus
    

    Веб-интерфейс Мониторинга Prometheus

    Prometheus предоставляет базовый веб-интерфейс для мониторинга состояния самого себя и экспортеров, выполнения запросов и генерации графиков: http://$PROMETHEUS_IP:9090

    На данный момент наш Prometheus настроен только на сбор собственных метрик.

    В следующих статьях я покажу, как настроить Prometheus на сбор метрик из других источников с помощью node_exporte.

    Как вы можете видеть, веб-интерфейс мониторинга Prometheus слишком прост и поэтому, для чего-то более сложного, чем тестирование и отладка, рекомендуется использовать Grafana.