Назад | Перейти на главную страницу

Удаленная проверка файловых систем только для чтения

Мне нужно удаленно периодически проверять, установлена ​​ли файловая система Linux только для чтения на многих серверах. Единственные инструменты в моем распоряжении в этом случае - это обычные языки сценариев CLI (BASH / Perl / Python), SSH и SNMP.

Мои мысли пока следующие:

Метод SNMP - самый приятный / самый чистый, о котором я могу думать, однако я не понимаю, как это сделать, поскольку CLI SNMP кажется кошмаром, особенно если мне нужно выполнить процесс принятия решения, чтобы найти индекс на основе заданная точка монтирования.

В идеале я хотел бы осуществить это, используя только BASH (включая sed / awk / grep и т. Д.) И SNMP, но мне нужны некоторые рекомендации о том, с чего начать! snmpd уже установлен и настроен для v2 на всех рассматриваемых серверах.

В конечном итоге этот сценарий будет использоваться как команда Nagios.

Большое спасибо за любую помощь!

Заметка У нас уже есть cacti / nagios, настроенный для мониторинга сотен серверов, я забыл упомянуть об этом при первоначальной публикации!

В твоем snmpd.conf проверьте аргумент exec. Я использую это для удаленного опроса количества пользователей некоторых из моих IRC-серверов, например:

exec usercount-irc /home/irc/usercount-irc.sh

Чтобы опросить это, вы snmpwalk .1.3.6.1.4.1.2021.8 и получите что-то вроде этого:

# snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.2021.8

UCD-SNMP-MIB::extIndex.1 = INTEGER: 1
UCD-SNMP-MIB::extNames.1 = STRING: usercount-irc
UCD-SNMP-MIB::extCommand.1 = STRING: /home/irc/usercount-irc.sh
UCD-SNMP-MIB::extResult.1 = INTEGER: 0
UCD-SNMP-MIB::extOutput.1 = STRING: 558
UCD-SNMP-MIB::extErrFix.1 = INTEGER: 0
UCD-SNMP-MIB::extErrFixCmd.1 = STRING:

Проверить Расширение функциональных возможностей агента часть http://linux.die.net/man/5/snmpd.conf для более подробной информации!

Изменить 1:
UCD-SNMP-MIB: dskTable содержит информацию о смонтированных томах и их использовании. Он расположен под OID .1.3.6.1.4.1.2021.9 и задокументирован по адресу:
http://www.oidview.com/mibs/2021/UCD-SNMP-MIB.html
http://www.net-snmp.org/docs/mibs/ucdavis.html#dskTable

Но теперь я вижу, что он не содержит флагов монтирования, поэтому вы не можете видеть там только чтение. Ага. Вернемся к приведенному выше сценарию и как его назвать! :П

Для большинства вопросов «как мне сделать X в nagios?» Вы обнаружите, что кто-то уже написал плагин, который сделает все или хотя бы часть того, что вам нужно.

В этом случае вы, вероятно, можете использовать check_ro_mounts в сочетании с плагином 'negate' (часть стандартных плагинов nagios) или просто изменить его в соответствии с вашими потребностями:

http://exchange.nagios.org/directory/Plugins/Uncategorized/Operating-Systems/Linux/check_ro_mounts/details

Другой способ - использовать библиотеки Perl, Ruby Net :: SSH или Python paraminko для удаленного входа в систему и (не нужно предварительно настраивать ключи) затем проанализировать содержимое команды 'mount'.

Управление и подтверждение точек монтирования и их флагов может осуществляться через Puppet. Видеть Как управлять смонтированными разделами (fstab + точки монтирования) из марионетки