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

Мониторинг состояния роутеров 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

Ссылка на комментарий
Поделиться на другие сайты

  • 3 недели спустя...

Добрый день.

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

  • Модераторы
В 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 которое используется в данном решении всегда запущено и от обращения к нему ситуация по нагрузке значительно не меняется.

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...

Важная информация

Вы принимаете наши Условия использования, Политика конфиденциальности, Правила. А также использование Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.

Яндекс.Метрика