Перейти к содержанию

Мониторинг состояния роутеров keenetic в influxdb v2 и grafanа

Опубликовано
  • Модераторы

Это третья часть о мониторинге домашней системы с использованием influxdb и grafana первая часть про общую настройку и вторая часть про мониторинг proxmox

Вступление

Продолжая вопрос мониторинга состояния системы необходимо обсудить еще не маловажный вопрос мониторинга состояния роутеров в вашей системе как один из самых важных и критических элементов системы.

В данной заметке рассмотрим вопрос мониторинга роутеров keenetic а в следующей мониторинг роутеров openwrt. Решения для других систем рассматриваться не будут так как я являюсь приверженцем именно этих двух систем и других устройств у меня нет.

Все настройки будут выполняться на актуально на текущий момент времени версии KeeneticOS 4.1.3

У кинетика есть достаточно удобное и хорошее API у роутеров из коробки но по умолчанию он закрыт файрволлом, именно используя данное restfull api можно получить всю необходимую нам информацию даже для роутеров без entware.

Для решения задачи мониторинга я буду использовать проект https://github.com/vitaliy-sk/keenetic-grafana-monitoring

Подробная инструкция по созданию новых корзин и api токенов было разобрано в первой и второй части, так что в данной публикации будет крайний минимум побочной информации.

Настройка мониторинга роутера

В рассматриваемом решение применяется подход обращения к API или авторизации и использования cli запросов. Я не вижу смысла использовать авторизацию с запросами так как api работает постоянно и не нагружает дополнительно систему в отличии от постоянных запросов через cli.

Первым этапом откроем доступ к API на роутере, для подключения из локальной сети не требуется авторизация.

Идем в настройки нашего роутера в раздел переадресация портов

image.png.13e04642d4eda40ab541d1ebdbe1de54.png

И создаем новое правило переадресации портов

image.png.0a812d07769d7cc2fc5cce46f4e7fc5d.png

Обратите внимание на подсеть, в моем случае это 192.168.0.1 у вас она может отличаться.

Фактически на стороне роутера настройка закончена теперь нам доступно api по адресу http://192.168.0.1:81/rci/show/system

Настройка сбора данных в influxDB

Теперь приступим к разворачиванию системы, которая будет обращаться к нашему api и пересылать в influxdb.

В первую очередь создадим новую корзину данных для хранения в моем случае это keenetic. И создадим custom api токен на запись данных.

Особенность сборщика не позволяет разделить данные от нескольких роутеров в одной корзине по hostname по этому для каждого роутера который необходимо мониторить делаем отдельную корзину данных.

image.png.cb277e9e3bbe0faac688091dc19d15d7.png

При копировании API токена проверяем, кнопка может отработать не корректно.

Мониторинг запускается в отдельном докер контейнере на любом сервере в сети, в моем случае я буду запускать его на той же виртуальной машине, где у меня запущен influxdb.

Я буду размещать файл конфигурации по пути /docker/keentic-monitoring/config.ini для этого создам советующие папки и файл.

mkdir /docker
mkdir /docker/keentic-monitoring
nano /docker/keentic-monitoring/config.ini

Заполняем данные в шаблон конфигурационного файла. Указываем адрес базы influxdb, токен, организацию и bucket.

[influx2]
# If you are using docker-compose it should be http://influxdb:8086
url=http://192.168.0.135:8086
# For influx v1.x please use "-" as a value
org=influxdb
# For influx v1.x please use "username:password" as a token
# See DOCKER_INFLUXDB_INIT_ADMIN_TOKEN in docker-compose.yml
token=<Token>
timeout=6000
# For influx v1.x DB name
bucket=keenetic
[keenetic]
admin_endpoint=http://192.168.0.1:81
skip_auth=true
login=admin
password=
[collector]
interval_sec=30

Запускаем докер контейнер со следующими параметрами

Я использую docker compose из интерфейса portainer по этому привожу только файл запуска docker compose. Подробную инструкцию как запустить docker compose из файловой системы легко найти на просторах интернета.

version: '3.7'
services:
  keenetic-monitoring:
    image: techh/keenetic-grafana-monitoring:latest
    container_name: keenetic-monitoring
    environment:
      - TZ=Europe/Moscow
    volumes:
      - /docker/keentic-monitoring/config.ini:/home/config/config.ini:ro
      # Optionally you can override metrics
      #- ./config/metrics.json:/home/config/metrics.json:ro
    restart: always

Проверяем что данные о системе начали поступать.

image.thumb.png.ef5884f40b6396402c87c5ef8ff1a68f.png

Для тек у кого что то пошло не так...

Если данные не поступают, то необходимо проверить логи вашего контейнера, если есть предупреждение на подобии такого, это значит что универсальный файл с описанием метрик вам не подходит и необходимо добавить еще одну volumes.

image.thumb.png.36437f853c7fa9ad10af1a0625591af4.png

Должно получиться так:

    volumes:
      - /docker/keenetic- monitoring/config.ini:/home/config/config.ini:ro
      # Optionally you can override metrics
      - /docker/keenetic- monitoring/metrics.json:/home/config/metrics.json:ro

А на сервере по пути указано как конфиг метрик необходимо добавить файл из гит репозитория автора в котором удаляем секцию на которую получаем ошибку, в моем случае это media. https://github.com/vitaliy-sk/keenetic-grafana-monitoring/blob/master/config/metrics.json

image.png.42a87549be521b608ef611ce1b55a35f.png

Внимательно следите за запятыми и кавычками, надо удалить блок целиком не сломав json.

Визуализация данных в Grafana

Фактически сбор данных на этом полностью закончен, теперь нам необходимо подключить Grafana к новой корзине данных и найти\составить красивый интерфейс.

Я у себя использую интерфейс предложенный автором системы сбора данных из кинетика https://grafana.com/grafana/dashboards/12723-keenetic/

Обратите внимание что данная панель составлена под версию influxdb v1 для нее настройки Grafana должны быть выполнены следующим образом

image.png.f518ce12163f09e610220bdf84a3744e.png

В поле HTTP headers value указываем: Token <ТокенНаЧтениеКорзины>

Подробнее про настройку смотри первую часть

image.png.0466608a2498f122af7c7d454b7d2e13.png

В итоге получаем красивую панель мониторинга состояния роутера

image.thumb.png.07f8733ab02269669f47ecbbc8272995.png

P.S. Следующая часть серии публикаций будет посвящена сбору данных с роутеров под управление OpenWRT

Featured Replies

Опубликовано

Добрый день.

А есть возможность запустить на роутере постоянный пинг на несколько адресов.

И выводить статистику по этому пингу в мониторинге?

Чтобы отлавливать проблемы с интернетом у провайдера.

Опубликовано
В 26.04.2024 в 06:24, mcdemon сказал:

Добрый день.

А есть возможность запустить на роутере постоянный пинг на несколько адресов.

И выводить статистику по этому пингу в мониторинге?

Чтобы отлавливать проблемы с интернетом у провайдера.

Uptime Kuma называется система мониторинга, касательно роутера не знаю, но её можно можно развернуть на любой локальной машине. Я в Proxmox держу такую. Уведомления об отключениях настроил в телеграмм.

  • 4 недели спустя...
Опубликовано
  • Автор
  • Модераторы
В 26.04.2024 в 06:24, mcdemon сказал:

Добрый день.

А есть возможность запустить на роутере постоянный пинг на несколько адресов.

И выводить статистику по этому пингу в мониторинге?

Чтобы отлавливать проблемы с интернетом у провайдера.

В описанном решении для keenetic увы такого сценария не предусмотрено так как в нем используется api самого кинетика.

Но можно использовать это в telegraf с помощью плагина ping. Если установить пакетом на сам роутер можно на keenetic entware или openwrt то возможно настроить мониторинг с него, ну или добавить в любой другой telegraf который работает в той же сети что и роутер.

Хотя вариант с использованием пакета telegraf на роутере мне нравиться все таки меньше так как дополнительно загружает роутер, API которое используется в данном решении всегда запущено и от обращения к нему ситуация по нагрузке значительно не меняется.

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

Последние посетители 0

  • Ни одного зарегистрированного пользователя не просматривает данную страницу
Яндекс.Метрика

Account

Navigation

Поиск

Поиск

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.