Это руководство для Ubuntu Server 22.04 и того, что я называю Promstack (Grafana, Prometheus и snmp_exporter). У вас должен быть установлен и обновлён Ubuntu 18.04 или новее (лучше 22.04). Подготовка к установке Prometheus: sudo apt update && sudo apt dist-upgrade -y
sudo groupadd --system prometheus
sudo useradd -s /sbin/nologin --system -g prometheus prometheus
sudo mkdir /var/lib/prometheus
для i в rules rules.d files_sd; делать sudo mkdir -p /etc/prometheus/${i}; done
sudo apt update
sudo apt -y install wget curl
----------------------------------------------------------------------------------------
Установка Prometheus:
mkdir -p /tmp/prometheus && cd /tmp/prometheus
curl -s | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -
tar xvf prometheus*version*.tar.gz (например prometheus-2.18.0)
cd prometheus*version*/
sudo mv prometheus promtool /usr/local/bin/
prometheus --version
sudo mv prometheus.yml /etc/prometheus/prometheus.yml
sudo mv consoles/ console_libraries/ /etc/prometheus/
----------------------------------------------------------------------------------------
Создаём файл сервиса Prometheus
sudo nano /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/docs/introduction/overview/
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=prometheus
Group=prometheus
#ExecReload=/bin/kill -HUP \$MAINPID
ExecStart=/usr/local/bin/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/var/lib/prometheus \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries \
--web.listen-address=0.0.0.0:9090 \
--web.external-url=
SyslogIdentifier=prometheus
Restart=always
[Install]
WantedBy=multi-user.target
Настраиваем права на папки:
для i в rules rules.d files_sd; делать sudo chown -R prometheus:prometheus /etc/prometheus/${i}; done
для i в rules rules.d files_sd; делать sudo chmod -R 775 /etc/prometheus/${i}; done
Создаём, включаем и запускаем Prometheus:
sudo chown -R prometheus:prometheus /var/lib/prometheus/
sudo systemctl daemon-reload
sudo systemctl enable --now prometheus
sudo systemctl status prometheus
----------------------------------------------------------------------------------------
Теперь, когда Prometheus запущен, можно установить snmp_exporter. Версия 0.21.0 была последней на момент написания.
Страница snmp_exporter
wget
tar xvf snmp_exporter-0.21.0.linux-amd64.tar.gz
sudo mv snmp_exporter-0.21.0.linux-amd64 /etc/prometheus/snmp_exporter
----------------------------------------------------------------------------------------
Создаём файл сервиса snmp_exporter:
sudo nano /etc/systemd/system/snmp_exporter.service
[Unit]
Description=Mikrotik SNMP Exporter
[Service]
User=prometheus
ExecStart=/etc/prometheus/snmp_exporter/snmp_exporter --config.file="/etc/prometheus/snmp_exporter/snmp.yml"
[Install]
WantedBy=default.target
----------------------------------------------------------------------------------------
Редактируем /etc/prometheus/prometheus.yml
Можно очистить существующий файл и скопировать содержимое примера prometheus.yml, приложенного к этому посту.
Редактируем /etc/prometheus/prometheus/snmp_exporter/snmp.yml (я обычно удаляю существующий файл и копирую содержимое приложенного snmp.yml). Не забудьте изменить SNMP_COMMUNITY в верхней части файла snmp.yml.
----------------------------------------------------------------------------------------
Создаём, включаем и запускаем snmp_exporter:
sudo systemctl daemon-reload
sudo systemctl enable --now snmp_exporter
sudo systemctl status snmp_exporter
sudo systemctl restart prometheus
----------------------------------------------------------------------------------------
Наконец устанавливаем Grafana. Версия 9.3.6 была последней на момент написания.
sudo apt-get install -y adduser libfontconfig1
wget
sudo dpkg -i grafana-enterprise_9.3.6_amd64.deb
sudo systemctl enable --now grafana-server
sudo systemctl status grafana-server
Чтобы получить доступ к Grafana, нужно открыть порт tcp/3000 в Ubuntu Server через UFW:
sudo ufw allow 3000
----------------------------------------------------------------------------------------
Вход в Grafana по умолчанию: admin/admin. Система попросит сменить пароль администратора.
После входа в Grafana зайдите в Настройки (иконка шестерёнки внизу слева) и выберите Источники данных.
Нажмите Добавить источник данных и выберите prometheus.
В разделе HTTP укажите URL:
Прокрутите вниз и нажмите Сохранить и проверить. Должно появиться сообщение об успешном подключении.
----------------------------------------------------------------------------------------
С Prometheus, snmp_exporter и Grafana, запущенными и настроенными, вы должны собирать SNMP-данные с ваших Mikrotik-устройств. Есть несколько готовых дашбордов, но я в итоге сделал свой собственный.
sample_prometheus.yml.txt (1.45 KB)
snmp.yml.txt (122 KB)
sudo groupadd --system prometheus
sudo useradd -s /sbin/nologin --system -g prometheus prometheus
sudo mkdir /var/lib/prometheus
для i в rules rules.d files_sd; делать sudo mkdir -p /etc/prometheus/${i}; done
sudo apt update
sudo apt -y install wget curl
----------------------------------------------------------------------------------------
Установка Prometheus:
mkdir -p /tmp/prometheus && cd /tmp/prometheus
curl -s | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -
tar xvf prometheus*version*.tar.gz (например prometheus-2.18.0)
cd prometheus*version*/
sudo mv prometheus promtool /usr/local/bin/
prometheus --version
sudo mv prometheus.yml /etc/prometheus/prometheus.yml
sudo mv consoles/ console_libraries/ /etc/prometheus/
----------------------------------------------------------------------------------------
Создаём файл сервиса Prometheus
sudo nano /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/docs/introduction/overview/
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=prometheus
Group=prometheus
#ExecReload=/bin/kill -HUP \$MAINPID
ExecStart=/usr/local/bin/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/var/lib/prometheus \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries \
--web.listen-address=0.0.0.0:9090 \
--web.external-url=
SyslogIdentifier=prometheus
Restart=always
[Install]
WantedBy=multi-user.target
Настраиваем права на папки:
для i в rules rules.d files_sd; делать sudo chown -R prometheus:prometheus /etc/prometheus/${i}; done
для i в rules rules.d files_sd; делать sudo chmod -R 775 /etc/prometheus/${i}; done
Создаём, включаем и запускаем Prometheus:
sudo chown -R prometheus:prometheus /var/lib/prometheus/
sudo systemctl daemon-reload
sudo systemctl enable --now prometheus
sudo systemctl status prometheus
----------------------------------------------------------------------------------------
Теперь, когда Prometheus запущен, можно установить snmp_exporter. Версия 0.21.0 была последней на момент написания.
Страница snmp_exporter
wget
tar xvf snmp_exporter-0.21.0.linux-amd64.tar.gz
sudo mv snmp_exporter-0.21.0.linux-amd64 /etc/prometheus/snmp_exporter
----------------------------------------------------------------------------------------
Создаём файл сервиса snmp_exporter:
sudo nano /etc/systemd/system/snmp_exporter.service
[Unit]
Description=Mikrotik SNMP Exporter
[Service]
User=prometheus
ExecStart=/etc/prometheus/snmp_exporter/snmp_exporter --config.file="/etc/prometheus/snmp_exporter/snmp.yml"
[Install]
WantedBy=default.target
----------------------------------------------------------------------------------------
Редактируем /etc/prometheus/prometheus.yml
Можно очистить существующий файл и скопировать содержимое примера prometheus.yml, приложенного к этому посту.
Редактируем /etc/prometheus/prometheus/snmp_exporter/snmp.yml (я обычно удаляю существующий файл и копирую содержимое приложенного snmp.yml). Не забудьте изменить SNMP_COMMUNITY в верхней части файла snmp.yml.
----------------------------------------------------------------------------------------
Создаём, включаем и запускаем snmp_exporter:
sudo systemctl daemon-reload
sudo systemctl enable --now snmp_exporter
sudo systemctl status snmp_exporter
sudo systemctl restart prometheus
----------------------------------------------------------------------------------------
Наконец устанавливаем Grafana. Версия 9.3.6 была последней на момент написания.
sudo apt-get install -y adduser libfontconfig1
wget
sudo dpkg -i grafana-enterprise_9.3.6_amd64.deb
sudo systemctl enable --now grafana-server
sudo systemctl status grafana-server
Чтобы получить доступ к Grafana, нужно открыть порт tcp/3000 в Ubuntu Server через UFW:
sudo ufw allow 3000
----------------------------------------------------------------------------------------
Вход в Grafana по умолчанию: admin/admin. Система попросит сменить пароль администратора.
После входа в Grafana зайдите в Настройки (иконка шестерёнки внизу слева) и выберите Источники данных.
Нажмите Добавить источник данных и выберите prometheus.
В разделе HTTP укажите URL:
Прокрутите вниз и нажмите Сохранить и проверить. Должно появиться сообщение об успешном подключении.
----------------------------------------------------------------------------------------
С Prometheus, snmp_exporter и Grafana, запущенными и настроенными, вы должны собирать SNMP-данные с ваших Mikrotik-устройств. Есть несколько готовых дашбордов, но я в итоге сделал свой собственный.
sample_prometheus.yml.txt (1.45 KB)
snmp.yml.txt (122 KB)


. Я понимаю, что чтобы включить логи, нужно добавить эту строку --log.level=debug в файл “prometheus.service”.