Есть ли open-source Bash скрипты, позволяющие собирать информацию с серверов?
Привет.
Есть необходимость собирать информацию с серверов для составления затем по ним документации.
Интерес представляют и Hardware составляющая - накопители, процессорные устройства, память, и Software - ворох различного рода и предназначения сервисов - БД, веб-серверов, систем контейнеризации и оркестрации и все, что любят использовать системные администраторы и DevOps.
Есть ли какие-то источники с такими скриптами, которые я могу стянуть и под свои нужды использовать\изменять?
В крайнем случае интересуют любые исходники подобных сервисов на иных ЯП, в которых можно прокопаться и поглядеть, как оно изнутри работает.
В крайнем случае интересуют любые исходники подобных сервисов на иных ЯП, в которых можно прокопаться и поглядеть, как оно изнутри работает.
Так подучите системное администрирование линукс. Вся информация о хосте берется из /proc и /dev.
Все системные утилиты оттуда все забирают и парсят.
Банальные команды типа df, cpuinfo, free лазят именно там
А в каком конкретно направлении мне подучить "системное администрирование линукс", чтобы сходу найти "open-source Bash скрипты", позволяющие составлять подробную документацию по сервисам, например, Nginx, Apache, HAProxy, Keepalived, PHP-FPM, MySQL, ProxySQL, MongoDB, PostgreSQL, Redis, Clickhouse, Docker, K8s, Kafka, Rabbitmq, Elasticsearch ну и пр.?
Системные забирают и парсят - точно - но для составления информации о железном состоянии сервера я могу использовать сразу их, а не их исходники, и в большинстве случаев (но явно не во всех) мне их хватит с головой.
Моя задача - не изобрести велосипед, а найти кем-то уже изобретенный и самостоятельно че-то в нем вытащить, вырезать, доработать и пр. под собственные нужды.
Aleksei000, ваше заявление выглядит в общем случае "я не хочу учить документацию и систему, я хочу трусики и в ЕС" :)
линукс, гну и сотоварищи это не "вещчъ, замкнутая сама в себе" а набор чертежей из которых инженер может собрать полностью свою систему, именно такую какая ему нужна.
некоторые дистрибутивы по своей структуре отличаются чуть более чем полностью :) взять тот же GoboLinux NixOS
Aleksei000, Сперва следует понять какие именно метрики вы хотите получить во всех вышеперечисленных сервисах.
Ибо, для начала, нужно различать системное администрирование Линукс (метрики Линукса типа cpu/disk), и метрики которые вам может давать Nginx, Apache, HAProxy, Keepalived, PHP-FPM, MySQL, ProxySQL, MongoDB, PostgreSQL, Redis, Clickhouse, Docker, K8s, Kafka, Rabbitmq, Elasticsearch ну и пр.?
Это же сторонний софт, большинство из этого софта может и на другой ОС запустится. Что именно вы хотите видеть в этих сервисах? Количество подключенных юзеров к постгресу? Или количество выполняющихся запросов в Монго?
скачать чьи-то готовые мониторинги можно не в виде скриптов, а готовых наборов в популярных системах мониторинга. Что-то можно найти в прометеусе/графане.
Что касается железа, то это все не так сложно - man lshw. А вот что касается софта... Существует наверное около десятка разных пакетных установщиков, у каждого свой формат и свои параметры запросов. Кроме того, существуют LFS, где нет вообще никаких установщиков - только голые руки :) Есть еще локальная сборка - когда программа собирается непосредственно на компе, где устанавливается.
Скорее всего этот вопрос был моим, просто написанным с рабочего гуглоакка, не догадался там его наличие проверить.
Лажу по десятку подобных форумов, пытаясь найти способ не собирать велосипед или хотя бы смазать его цепи и подкачать колеса, потому забываю, где уже что спрашивал.
Не представляю, как в этом разбираться, потому что не встречался наяву с описываемой тобою болью с разными пакетными установщиками.
Тем не менее, пробегаясь по десяткам серверов разных дистрибутивов и версий ОС с одним и тем же установленным сервисом, чаще всего не замечал чрезвычайных меж ними различий, да и необходимость описания-документирования не всего сервиса доскольнально с зондированием, а лишь базовых его настроек и свойств, чтобы дежурные админы в случае ахтунга имели возможность быстро заглянуть в доку, увидеть канву "как все устроено" и дальше уже, прикинув фронт работ, выполнять обязанности чрезвычайного ассенизатора.
Из ответа на эти вопросы понимаю, что скорее всего как бы того я не хотел, а велосипед придется нанизывать самостоятельно.
А по его завершению - или приближению к нему - узнать, что все-таки какой-то этакий умелец уже все это сделал до меня, нужно было просто по-ис-кать.
Не представляю, как в этом разбираться, потому что не встречался наяву с описываемой тобою болью с разными пакетными установщиками.
Потому что не сталкивался с разными дистрибами - кардинально разными. Поставь/найди CentOS, Debian, Gentoo и Slakware - и попробуй их "проиндексировать" одним методом :)
Проблематичнее всего ответ на вопрос "установлен ли здесь софт Х?" Можно забивать на пакетный менеджер и втупую искать наиболее популярные вещи - но например апач можно так наизнанку вывернуть, что его черта с два найдешь.
В пределах конторы, где стоит один дистриб - это конечно решаемая задача
CityCat4, я подобную вещь делал с мониторингом, ибо прежде я работал в отделе, который мониторинг навешивает на все сервисы. В какой-то момент мне все вручную - все запросы - стало написывать лень, и я начал пилить большой скрипт, который все мониторинговые запросы - исходя из наполненности - формирует. Для этих целей отличия между различными дистрибутивами играли малую роль, хотя геморрой, конечно, доставляли. Сейчас меня попросили подобную же автоматизацию сделать для коллег, которые также вручную ходят по серверам и кратко описывают в документации, что, где, как и когда работает. Разница лишь в том, что в прежнем отделе я автоматизировал то, что делал сам вручную на автомате - мотивируемый ленью - а здесь сначала приходится сидеть, разбираться, набивать руку. А лень-то, блин, никуда не исчезла :с
Aleksei000, Вряд ли что найдется. Мне вот например однажды понадобилось решение для развертывания системы с дампа (который командой dump/restore делается) - чтобы запустил скрипт с livedvd, ответил на вопросы и пошел курить или трепаться с бухгалтершами :) пришел - система развернута, нужный софт частично настроен. Я понимал, что такого вряд ли есть, поэтому даже не искал, а пилил свой.
Пилил долго, баги все еще есть, но главную задачу он уже решает. У Вас есть уже понимание, что за дистрибы стоят, сначала делаете все вручную, а потом - то же самое, но скриптом. В баше на самом деле дохрена возможностей.