Есть ли 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, изучайте по порядку
все сразу трудно будет вам осилить а по частям шанс все таки есть
- 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, где нет вообще никаких установщиков - только голые руки :) Есть еще локальная сборка - когда программа собирается непосредственно на компе, где устанавливается.
Как ты представляешь себе в этом разбираться?
- Скорее всего этот вопрос был моим, просто написанным с рабочего гуглоакка, не догадался там его наличие проверить.
Лажу по десятку подобных форумов, пытаясь найти способ не собирать велосипед или хотя бы смазать его цепи и подкачать колеса, потому забываю, где уже что спрашивал.Не представляю, как в этом разбираться, потому что не встречался наяву с описываемой тобою болью с разными пакетными установщиками.
Тем не менее, пробегаясь по десяткам серверов разных дистрибутивов и версий ОС с одним и тем же установленным сервисом, чаще всего не замечал чрезвычайных меж ними различий, да и необходимость описания-документирования не всего сервиса доскольнально с зондированием, а лишь базовых его настроек и свойств, чтобы дежурные админы в случае ахтунга имели возможность быстро заглянуть в доку, увидеть канву "как все устроено" и дальше уже, прикинув фронт работ, выполнять обязанности чрезвычайного ассенизатора.
Из ответа на эти вопросы понимаю, что скорее всего как бы того я не хотел, а велосипед придется нанизывать самостоятельно.
А по его завершению - или приближению к нему - узнать, что все-таки какой-то этакий умелец уже все это сделал до меня, нужно было просто по-ис-кать. - Aleksei000,
Не представляю, как в этом разбираться, потому что не встречался наяву с описываемой тобою болью с разными пакетными установщиками.
Потому что не сталкивался с разными дистрибами - кардинально разными. Поставь/найди CentOS, Debian, Gentoo и Slakware - и попробуй их "проиндексировать" одним методом :)
Проблематичнее всего ответ на вопрос "установлен ли здесь софт Х?" Можно забивать на пакетный менеджер и втупую искать наиболее популярные вещи - но например апач можно так наизнанку вывернуть, что его черта с два найдешь.
В пределах конторы, где стоит один дистриб - это конечно решаемая задача
- CityCat4, я подобную вещь делал с мониторингом, ибо прежде я работал в отделе, который мониторинг навешивает на все сервисы. В какой-то момент мне все вручную - все запросы - стало написывать лень, и я начал пилить большой скрипт, который все мониторинговые запросы - исходя из наполненности - формирует. Для этих целей отличия между различными дистрибутивами играли малую роль, хотя геморрой, конечно, доставляли. Сейчас меня попросили подобную же автоматизацию сделать для коллег, которые также вручную ходят по серверам и кратко описывают в документации, что, где, как и когда работает. Разница лишь в том, что в прежнем отделе я автоматизировал то, что делал сам вручную на автомате - мотивируемый ленью - а здесь сначала приходится сидеть, разбираться, набивать руку. А лень-то, блин, никуда не исчезла :с
- Aleksei000, Вряд ли что найдется. Мне вот например однажды понадобилось решение для развертывания системы с дампа (который командой dump/restore делается) - чтобы запустил скрипт с livedvd, ответил на вопросы и пошел курить или трепаться с бухгалтершами :) пришел - система развернута, нужный софт частично настроен. Я понимал, что такого вряд ли есть, поэтому даже не искал, а пилил свой.
Пилил долго, баги все еще есть, но главную задачу он уже решает. У Вас есть уже понимание, что за дистрибы стоят, сначала делаете все вручную, а потом - то же самое, но скриптом. В баше на самом деле дохрена возможностей.
- CityCat4, именно этим сейчас и занимаюсь - прошу закидывать меня задачами, шоп руку набить :)
- Aleksei000, Ну например - определи какой у системы init и какой пакетный менеджер.
node-exporter
В конфиге экспортера выставляешь, что нужно собирать
Любым скриптом делаешь http запрос на сервер и получаешь эту инфу
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Да, существует множество open-source Bash скриптов, которые позволяют собирать информацию с серверов. Ниже приведу несколько примеров таких скриптов:
1. **Neofetch** - это Bash скрипт, который собирает информацию о вашей системе и отображает ее в виде ASCII-арт баннера. Он показывает информацию о операционной системе, ядре, процессоре, памяти и других компонентах вашего сервера.
git clone https://github.com/dylanaraps/neofetch.git cd neofetch ./neofetch
2. **Sysstat** - набор утилит, который включает в себя sar, mpstat, iostat и другие инструменты для мониторинга и анализа производительности системы. Он позволяет собирать информацию о загрузке CPU, использовании памяти, сетевом трафике и других параметрах.
sudo apt-get install sysstat sar
3. **Glances** - это еще один инструмент мониторинга производительности системы, написанный на Python. Он предоставляет обширную информацию о процессах, ресурсах, сети и других параметрах сервера.
pip install glances glancespip install glances glances
4. **Collectl** - это универсальный инструмент мониторинга производительности, который собирает данные о процессах, дисковом пространстве, сети и других аспектах системы.
sudo apt-get install collectl collectl
Это лишь небольшой список Bash скриптов, которые могут помочь вам собирать информацию с серверов. Вы можете исследовать каждый из них и выбрать тот, который лучше всего подходит для ваших потребностей.