Продолжая вопрос мониторинга состояния системы необходимо обсудить еще не маловажный вопрос мониторинга состояния роутеров в вашей системе как один из самых важных и критических элементов системы.
В данной заметке рассмотрим вопрос мониторинга роутеров keeneticа в следующей мониторинг роутеров openwrt. Решения для других систем рассматриваться не будут так как я являюсь приверженцем именно этих двух систем и других устройств у меня нет.
Все настройки будут выполняться на актуально на текущий момент времени версии KeeneticOS 4.1.3
У кинетика есть достаточно удобное и хорошее APIу роутеров из коробки но по умолчанию он закрыт файрволлом, именно используя данное restfullapiможно получить всю необходимую нам информацию даже для роутеров без entware.
Подробная инструкция по созданию новых корзин и apiтокенов было разобрано в первой и второй части, так что в данной публикации будет крайний минимум побочной информации.
Настройка мониторинга роутера
В рассматриваемом решение применяется подход обращения к APIили авторизации и использования cliзапросов. Я не вижу смысла использовать авторизацию с запросами так как apiработает постоянно и не нагружает дополнительно систему в отличии от постоянных запросов через cli.
Первым этапом откроем доступ к APIна роутере, для подключения из локальной сети не требуется авторизация.
Идем в настройки нашего роутера в раздел переадресация портов
И создаем новое правило переадресации портов
Обратите внимание на подсеть, в моем случае это 192.168.0.1 у вас она может отличаться.
Теперь приступим к разворачиванию системы, которая будет обращаться к нашему apiи пересылать в influxdb.
В первую очередь создадим новую корзину данных для хранения в моем случае это keenetic. И создадим custom api токен на запись данных.
Особенность сборщика не позволяет разделить данные от нескольких роутеров в одной корзине по hostnameпо этому для каждого роутера который необходимо мониторить делаем отдельную корзину данных.
При копировании API токена проверяем, кнопка может отработать не корректно.
Мониторинг запускается в отдельном докер контейнере на любом сервере в сети, в моем случае я буду запускать его на той же виртуальной машине, где у меня запущен influxdb.
Я буду размещать файл конфигурации по пути /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 из файловой системы легко найти на просторах интернета.
Если данные не поступают, то необходимо проверить логи вашего контейнера, если есть предупреждение на подобии такого, это значит что универсальный файл с описанием метрик вам не подходит и необходимо добавить еще одну volumes.
Должно получиться так:
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
Внимательно следите за запятыми и кавычками, надо удалить блок целиком не сломав json.
Визуализация данных в Grafana
Фактически сбор данных на этом полностью закончен, теперь нам необходимо подключить Grafanaк новой корзине данных и найти\составить красивый интерфейс.
Вы можете написать сейчас и зарегистрироваться позже.
Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.
Это третья часть о мониторинге домашней системы с использованием 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 на роутере, для подключения из локальной сети не требуется авторизация.
Идем в настройки нашего роутера в раздел переадресация портов
И создаем новое правило переадресации портов
Обратите внимание на подсеть, в моем случае это 192.168.0.1 у вас она может отличаться.
Фактически на стороне роутера настройка закончена теперь нам доступно api по адресу http://192.168.0.1:81/rci/show/system
Настройка сбора данных в influxDB
Теперь приступим к разворачиванию системы, которая будет обращаться к нашему api и пересылать в influxdb.
В первую очередь создадим новую корзину данных для хранения в моем случае это keenetic. И создадим custom api токен на запись данных.
Особенность сборщика не позволяет разделить данные от нескольких роутеров в одной корзине по hostname по этому для каждого роутера который необходимо мониторить делаем отдельную корзину данных.
При копировании API токена проверяем, кнопка может отработать не корректно.
Мониторинг запускается в отдельном докер контейнере на любом сервере в сети, в моем случае я буду запускать его на той же виртуальной машине, где у меня запущен influxdb.
Я буду размещать файл конфигурации по пути /docker/keentic-monitoring/config.ini для этого создам советующие папки и файл.
mkdir /docker mkdir /docker/keentic-monitoring nano /docker/keentic-monitoring/config.iniЗаполняем данные в шаблон конфигурационного файла. Указываем адрес базы influxdb, токен, организацию и bucket.
Запускаем докер контейнер со следующими параметрами
Я использую 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Проверяем что данные о системе начали поступать.
Для тек у кого что то пошло не так...
Если данные не поступают, то необходимо проверить логи вашего контейнера, если есть предупреждение на подобии такого, это значит что универсальный файл с описанием метрик вам не подходит и необходимо добавить еще одну volumes.
Должно получиться так:
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
Внимательно следите за запятыми и кавычками, надо удалить блок целиком не сломав json.
Визуализация данных в Grafana
Фактически сбор данных на этом полностью закончен, теперь нам необходимо подключить Grafana к новой корзине данных и найти\составить красивый интерфейс.
Я у себя использую интерфейс предложенный автором системы сбора данных из кинетика https://grafana.com/grafana/dashboards/12723-keenetic/
Обратите внимание что данная панель составлена под версию influxdb v1 для нее настройки Grafana должны быть выполнены следующим образом
В поле HTTP headers value указываем: Token <ТокенНаЧтениеКорзины>
Подробнее про настройку смотри первую часть
В итоге получаем красивую панель мониторинга состояния роутера
P.S. Следующая часть серии публикаций будет посвящена сбору данных с роутеров под управление OpenWRT