Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Настройка
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Форум
    RouterOS
    [РУКОВОДСТВО] Grafana, Prometheus и snmp_exporter

    [РУКОВОДСТВО] Grafana, Prometheus и snmp_exporter

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    [РУКОВОДСТВО] Grafana, Prometheus и snmp_exporter, RouterOS
     
    bruins0437
    Guest
    #1
    0
    17.02.2023 20:53:00
    Это руководство для 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 https://api.github.com/repos/prometheus/prometheus/releases/latest | 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 https://github.com/prometheus/snmp_exporter  

    wget https://github.com/prometheus/snmp_exporter/releases/download/v0.21.0/snmp_exporter-0.21.0.linux-amd64.tar.gz  
    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 https://dl.grafana.com/enterprise/release/grafana-enterprise_9.3.6_amd64.deb  
    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: http://localhost:9090  

    Прокрутите вниз и нажмите Сохранить и проверить. Должно появиться сообщение об успешном подключении.  

    ----------------------------------------------------------------------------------------

    С Prometheus, snmp_exporter и Grafana, запущенными и настроенными, вы должны собирать SNMP-данные с ваших Mikrotik-устройств. Есть несколько готовых дашбордов, но я в итоге сделал свой собственный.  
     
    sample_prometheus.yml.txt (1.45 KB)  
    snmp.yml.txt (122 KB)
     
     
     
    Dizzya
    Guest
    #2
    0
    21.03.2023 16:24:00
    Спасибо, @bruins0437! Это чёткая и прямолинейная пошаговая инструкция. Очень ценю твою добрую помощь!
     
     
     
    theQuikest
    Guest
    #3
    0
    24.03.2023 11:13:00
    Спасибо и от меня, @bruins0437! У меня уже всё работало, но надо было обновить snmp_exporter и Prometheus, и, честно говоря, я никак не мог вспомнить, как это делал раньше. На этот раз задокументировал.  
    Хочу добавить, что использовать SNMP v2 небезопасно, а SNMP v3 поддерживается и MikroTik, и snmp_exporter.  
    В терминале MikroTik:  
    /snmp community add addresses=::/0 name=prometheus security=authorized read-access=yes write-access=no authentication-protocol=MD5 encryption-protocol=DES authentication-password=AUTH-PASS encryption-password=ENCR-PASS  
    Отредактируйте “name”, “AUTH-PASS”, “ENCR-PASS” и addresses=<IP-ADDRESS-OF-PROMETHEUS-SERVER>  
    /snmp set contact=<your-e-mail@example.com> enabled=yes engine-id=mikrotik location="<location-of-MikroTik>" trap-community=prometheus trap-target=<ip-address-of-MikroTik> trap-version=3  
    “Contact” и “Location” — опционально, “trap-target” — IP-адрес MikroTik.  
    На сервере Prometheus/snmp_exporter/Grafana:  
    Вставьте этот блок кода в начало snmp.yml, заменив AUTH-PASS, ENCR-PASS и username:  
    version: 3  
     auth:  
       security_level: authNoPriv  
    #    community: prometheus  
       username: prometheus  
       password: AUTH-PASS  
       auth_protocol: MD5  
       priv_protocol: AES  
       priv_password: ENCR-PASS  
       context_name: mikrotik
     
     
     
    beginer0504
    Guest
    #4
    0
    03.04.2023 03:59:00
    Привет, bruins0437! Не мог бы ты скинуть мне ID своей панели Grafana? Спасибо!
     
     
     
    bruins0437
    Guest
    #5
    0
    07.04.2023 15:28:00
    Отлично! Я попробую.
     
     
     
    bruins0437
    Guest
    #6
    0
    07.04.2023 17:47:00
    Идентификатор панели Grafana: 18460. Похоже, что она ещё не была опубликована. Я недавно её загружал.
     
     
     
    vitaly2016
    Guest
    #7
    0
    19.04.2023 08:07:00
    Можно спросить, как вы сгенерировали свой собственный snmp.yml? У меня роутер Mikrotik CCR2004, и мне кажется, что многие OID из вашего snmp.yml не работают с моим CCR2004. Я повторил все ваши шаги, в итоге импортировал Dashboard 18460, и в Grafana у меня работают только некоторые вещи: Model, Board Name, System load, Board ver, Interface Colored Table. Но всё, что ниже Interface Table, не работает. Например, все панели с «Traffic» для ethernet пустые. Имена ethernet настоящие, а данных нет.
     
     
     
    gr3g0ps
    Guest
    #8
    0
    25.04.2023 19:29:00
    @bruins0437 — С чем-то не так с текущими данными по WAN Traffic? У меня пустые поля (Нет данных).
     
     
     
    bruins0437
    Guest
    #9
    0
    04.05.2023 01:37:00
    Ты настроил запрос для интерфейса, который является твоим WAN? Он не определяет и не выбирает интерфейс WAN автоматически.
     
     
     
    shiblysi
    Guest
    #10
    0
    10.08.2023 18:18:00
    @bruins0437 Я в этом совсем новичок, поэтому могу только копировать и вставлять, и крестить пальцы, чтобы всё заработало. Мне удалось кое-как настроить это для моего HEX Lite. Хотелось бы иметь панель, которая показывает данные, использованные за месяц, для каждого интерфейса, особенно для PPPoE. Не мог бы ты помочь и объяснить, как это сделать? Спасибо.
     
     
     
    nemke
    Guest
    #11
    0
    21.10.2023 20:46:00
    Не могу заставить это работать. Если использую module[mikrotik], статус в Prometheus — DOWN. И в Grafana вообще не вижу ни одного параметра. Кто-нибудь может помочь?
    snmp.yml.txt (901 КБ)  
    prometheus.yml.txt (1.47 КБ)  
     
     
     
     
    brg3466
    Guest
    #12
    0
    06.12.2023 02:37:00
    Спасибо, что поделились! Я следовал вашему руководству и смог запустить это на сервере Ubuntu.
     
     
     
    lukmansincay
    Guest
    #13
    0
    04.01.2024 06:24:00
    Отличные инструменты! Но у меня вопрос, и я не могу найти ответ в других форумах: если я хочу мониторить задержку от Mikrotik до конкретного назначения с помощью Grafana и Prometheus, существуют ли для этого какие-то инструменты? Например, если у меня есть Mikrotik A, и я хочу отслеживать задержку от Mikrotik A до Google DNS, а также отображать график средней задержки и потерь с помощью Prometheus и Grafana — это возможно?
     
     
     
    alexunderboots
    Guest
    #14
    0
    20.04.2024 15:22:00
    ошибка с текущим snmp_exporter 0.25 auth=public_v2 target=***************** module=mikrotik msg=«Ошибка при опросе цели» err=«опрос отменен после 10.00994032с (возможное тайм-аут) при обходе цели *****************»
     
     
     
    alexunderboots
    Guest
    #15
    0
    21.04.2024 05:46:00
    Ошибка с snmp_exporter 0.21 и конфигурацией с этого форума… getnextbulk(N:0, R:25) 1.3.6.1.4.1.14988.1.1.14.1.1.51.7 v3 err: 3 unknown engine id v3 err: 1 not in time window or incorrect engine boots CRS326-24G-2S+ и RB2011UiAS 7.12.1
     
     
     
    roburb
    Guest
    #16
    0
    04.05.2024 14:20:00
    Всем привет, спасибо за пошаговое руководство. У меня такая же проблема, как у alexunderboots: v3 err: 3 unknown engine id, v3 err: 1 not in time window or incorrect engine boots. Кто-нибудь может помочь, пожалуйста? Спасибо!
     
     
     
    SaeedYa
    Guest
    #17
    0
    01.07.2024 07:32:00
    Секция Module и Auth теперь разделены в SNMP Exporter — https://github.com/prometheus/snmp_exporter/blob/main/auth-split-migration.md. Так что код нужно обновить примерно так:

    auths:
     snmpv3:
       version: 3
       security_level: authPriv
       username: prometheus
       password: AUTH-PASS
       auth_protocol: MD5
       priv_protocol: AES
       priv_password: ENCR-PASS

    modules:
     mikrotik:
       walk:
       - 1.3.6.1.2.1.2
       - 1.3.6.1.2.1.25
       - 1.3.6.1.2.1.31
       - 1.3.6.1.4.1.14988
       - 1.3.6.1.4.1.2021.10.1.1
       - 1.3.6.1.4.1.2021.10.1.2
       - 1.3.6.1.2.1.1.5.0

    ...И не забудьте обновить конфигурацию Prometheus yaml, чтобы использовать SNMP v3:

    job_name: mikrotik
    static_configs:
     - targets:
       - 192.168.10.1  # IP устройства SNMP.
    metrics_path: /snmp
    params:
     auth: [snmpv3]
     module: [mikrotik]
    relabel_configs:
     - source_labels: [__address__]
       target_label: __param_target
     - source_labels: [__param_target]
       target_label: instance
     - target_label: __address__
       replacement: SNMP_Exporter IP Address:9116
     
     
     
    randel07
    Guest
    #18
    0
    05.07.2024 19:25:00
    Это исходная ошибка, которую я хочу идентифицировать по логам . Я понимаю, что чтобы включить логи, нужно добавить эту строку --log.level=debug в файл “prometheus.service”.

    -----------------------------------prometheus.service---------------------------------------

    [Unit]
    Description=Prometheus  
    Documentation=https://prometheus.io/docs/introduction/overview/  
    Wants=network-online.target  
    After=network-online.target

    [Service]
    User=prometheus  
    Group=prometheus  
    Type=simple  
    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  
    --log.level=debug

    [Install]
    WantedBy=multi-user.target

    Также мне сказали добавить query_log_file в “prometheus.yml”. Я пробовал и первый, и второй варианты, но сервер падает, поэтому закомментировал их:

    #  query_log_file: query.log  
    #  query_log_file: /etc/prometheus/query.log

    ----------------“prometheus.yml”------------------------------------------------------------

    global:  
     scrape_interval: 15s # Интервал опроса — каждые 15 секунд. По умолчанию — 1 минута.  
     evaluation_interval: 15s # Оценка правил каждые 15 секунд. По умолчанию — 1 минута.  
    #  query_log_file: query.log  
    #  query_log_file: /etc/prometheus/query.log

    scrape_configs:  
     - job_name: "prometheus"  
       static_configs:  
         - targets: ["localhost:9090"]
     - job_name: 'Mikrotik-Snmp'  
       static_configs:  
         - targets:  
           - 192.168.2.1  # Mikr1.  
           - 172.16.0.1  # Mkr2.  
       metrics_path: /snmp  
       params:  
    #      auth: [public_v2]
         module: [mikrotik]
       relabel_configs:  
         - source_labels: [__address__]
           target_label: __param_target  
         - source_labels: [__param_target]
           target_label: instance  
         - target_label: __address__  
           replacement: 127.0.0.1:9116  # Реальный хостнейм и порт SNMP экспортерa.  
     # Глобальные метрики уровня экспортера  
     - job_name: 'snmp_exporter'  
       static_configs:  
         - targets: ['localhost:9116']
     
     
     
    dukerain
    Guest
    #19
    0
    15.07.2024 16:37:00
    Привет, я уже следовал твоему гайдy и могу открыть интерфейсы Prometheus и Grafana. Но проблема в том, что в Grafana не отображаются данные, и теперь мне интересно, где я мог ошибиться? Я пробовал SNMP-тестер и могу получить данные, значит, настройка на Mikrotik сделана правильно. Но, думаю, что-то не так с yml-файлом. Может, я что-то пропустил? В snmp.yml нужно менять все OID на мои специфические OID для Mikrotik? Помогите, я в этом деле новичок. Спасибо!
     
     
     
    eddiegonzales
    Guest
    #20
    0
    17.08.2024 10:30:00
    Привет, ребята! При попытке выполнить запрос статуса для snmp_exporter у меня выскакивает эта ошибка (скрин во вложении). Кто-нибудь знает, в чём дело?
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры