Обложка канала

ServerAdmin.ru

12437 @srv_admin

Авторская информация о системном администрировании.

ServerAdmin.ru

4 года назад
Открыть в
​​Хочу познакомить вас с интересным проектом, у которого вряд ли есть какое-то промышленное применение. Это скорее просто прикол или интересная фишка. Речь пойдёт о проекте Sampler, который условно можно назвать консольным дашбордом простой системы мониторинга. Работает всё исключительно в консоли, внешний вид которой вы оформляете с помощью виджетов. Sampler представляет из себя один бинарник, к которому нужно подготовить конфигурационный файл в формате yaml. Настраивается всё очень просто и быстро. Описание виджетов есть в репозитории. Вот пример виджета для мониторинга за временем отклика нескольких сайтов: runcharts:  - title: Search engine response time   rate-ms: 500   scale: 2   legend:    enabled: true     details: false   items:    - label: GOOGLE     sample: curl -o /dev/null -s -w '%{time_total}' https://www.google.com    - label: YAHOO     sample: curl -o /dev/null -s -w '%{time_total}' https://search.yahoo.com    - label: BING     sample: curl -o /dev/null -s -w '%{time_total}' https://www.bing.com Виджет будет рисовать 3 графика с временем отклика трёх указанных сайтов. Виджетов много: различные диаграммы, текстовые значения, текст в формате ASCII. На картинке во вложении пример заполненного дашборда. У меня на канале было много разных заметок на тему консольных утилит. Помню про календарь рассказывал, кто-то ссылку на сервисы погоды давал, курсы валют. Всё это можно вывести на Sampler. Пример консольного прогноза погоды: # curl wttr.in В Sampler есть простенькие триггеры, которые сработают при выходе за заданные значения метрики. Он может вывести что-то на экран, или воспроизвести звук. С помощью SSH он умеет ходить на удалённые хосты и забирать оттуда какие-то метрики. Пример вывода top с удалённого хоста: variables:  sshconnection: ssh -i ~/.ssh/id_rsa.pub [email protected] textboxes:  - title: SSH   pty: true   init: $sshconnection   sample: top Можно ходить в mysql базы и выполнять какой-то запрос: variables:  mysql_connection: mysql -u root -s --database mysql --skip-column-names sparklines:    - title: MySQL (random number example)   pty: true   init: $mysql_connection   sample: select rand(); Я допускаю, что кому-то может зайти эта тема как простой мониторинг. Настроить его реально просто и быстро. Буквально сходу по примерам из документации. У меня с первого раза всё получилось и заработало. Мне лично больше всего понравилась идея где-то в IT отделе повесить такой дашборд на стену. Выглядит необычно и атмосферно. Захотелось домой себе вывести такой с полезной информацией типа той же погоды, температуры в доме, влажности и т.д. Может это и состоится. Изначально планировал на Grafana собрать. Исходники - https://github.com/sqshq/sampler #мониторинг