SparrowHub — проект, целью которого является распространение различных готовых решений для задач системного администрирования и не только. Несмотря на то, что существует масса решений по автоматизации задач системного администрирования, определенная ниша в этой области все же остается незанятой. Что мы делаем, когда хотим решить какую-то специфическую задачу? Например, проверить логи нашего ssh сервиса на наличие неудачных попыток логинов с целью позаботиться о секьюрности наших серверов? — Берем и пишем однострочник, состоящий из bash команд вида grep, sed, awk и так далее, ну, или можем написать скрипт на Perl. Отлично, все работает. Eсть решение, которое устраивает нас. И мы пользуемся им. Вопрос в том, как мы хотим сохранить результаты наших трудов, что бы поделиться ими с другими или же когда пройдет время снова воспользоваться придуманным решением. Вот тут и возникает проблема. 
Кастомные скрипты, написанные "на коленке" хороши, когда нужно что-то сделать прямо здесь и сейчас, но с ними есть проблемы: Тут и возникает идея репозитария переносимых утилит. В принципе, это может быть все что угодно — проверки оставшегося места на диске, поиск определенной группы процессов в списке, учет времени работы отдельных программ, анализ логов на наличие определенных событий и так далее. Вы пишите утилиту, точнее, в терминах SparrowHub — плагин, загружаете его в репозиторий, и, вуаля — он становится доступным для других! Достаточно установить на своем сервере утилиту sparrow которая предоставляет интерфейс к репозитарию SparrowHub и начать пользоваться готовыми плагинами. Вот как это выглядит в моей случае, приведу несколько примеров. И хотя кому-то они могут показаться тривиальными с точки зрения замены их своими кастомными решениями, все же вспоминаем то, с чего я начал свой топик — почему кастомные скрипты могут быть проблематичны в использовании. И потом, т.к. SparrowHub проект достаточно молодой, на нем еще не успело накопится достаточное количество плагинов, собственно данный пост и нацелен на то, что бы привлечь в коммьюнити новых разработчиков! Итак, ставим сначала sparrow, это — CPAN модуль: Из не Perl зависимостей нам еще понадобится curl: Проверяем, что sparrow клиент установлен: Далее создаем проект. Проект — это просто контейнер для плагинов, которые мы будет устанавливать и использовать. Можно иметь несколько проектов, для разбиения используемых плагины на логические группы. Например, проект system — для системных проверок, например места на диске или отслеживания долго работающих процессов, проект nginx — для различных проверок nginx сервера, и так далее. Далее мы можем поискать различные плагины. Альтернативным способом будет являться посещение ресурса https://sparrowhub.org и поиском через web интерфейс. Последняя приведенная команда выдаст нам список всех доступных плагинов. Выбираем df-check — плагин для проверки оставшегося места на диске. Устанавливаем плагин: Ок. В принципе уже можно запустить плагин как есть командой: И убедится, что места на диске на сервере достаточно. Но добавим еще один шаг, сделав наш плагин настраиваемым. Для это воспользуемся концепцией чекпоинтов или контрольных точек, извиняюсь за невольную тафтологию :) Чекпоинт в sparrow — это абстракция позволяющая связывать отдельный плагин с конкретной конфигурацией. Таким образом, вы можете использовать один и тот же плагин с разными конфигурациями, не трудно догадаться, что в этом случае мы будем иметь несколько чекппоинтов. Чекпоинты добавляются в проекты, связываются с установленными плагинами ( здесь и происходит разбивка плагинов по логическим группам ) и затем настраиваются. Создадим чекпоинт: Свяжем чекпоинт с плагином: И теперь самое интересное… настоим чекпоинт или плагин, что в данном случае одно и тоже ... Отлично. Теперь запустим чекпоинт, точнее плагин с настройками, определенными для данного чекпоинта: На моей машине результат будет выглядеть так: Собственно на этом ознакомление co SparrowHub в его практическом применении можно закончить. Существует, конечно же ряд других интересных утилит, разработанных и выложенных мной на SparrowHub — среди них например — stale-proc-check — плагин по поиску долгоиграющих ( устаревших — stale ) процессов или logdog — утилиты по поиску записей в логах за заданный период времени с возможностью группировки и фильтрации. Статьи по практическому применению данных плагинов были недавно написаны мной на английском и размещены на сайтe blogs.perl.org : Заключение. В этой статье я коснулся только основных возможностей, предоставляемых репозитарием SparrowHub, всего конечно не расскажешь, да и не в этом цель. Задавайте вопросы, пишите комменты, загружайте свои плагины, используйте существующие или кидайте реквесты на разработку новых — было бы очень интересно узнать что именно требуются другим людям и реализовать это в виде плагинов. В конце концов выиграют все!  PS> для мердж реквестов и issues на утилиту sparrow используйте https://github.com/melezhik/sparrow, туда же можно постить запросы на новые плагины. PS2> первая статья про sparrow была написано мной какое-то время назад и с ее текстом можно ознакомиться здесь, предупреждение — за это время многое изменилось.  Алексей Мележик, автор sparrow и SparrowHub. devops, developer, open-source enthusiast