Verificando remotamente os sistemas de arquivos somente leitura

5

Eu preciso verificar remotamente periodicamente se um sistema de arquivos Linux é montado somente em muitos servidores. As únicas ferramentas à minha disposição nesta instância são as linguagens usuais de script CLI (BASH / Perl / Python), SSH e SNMP.

Meus pensamentos até agora são:

  • Compartilhe a chave SSH e execute o comando mount remotamente, grep / awk-ing para o sinalizador RO no ponto de montagem fornecido.
  • Verifique via SNMP, embora não tenha certeza se essa informação está disponível ou como é fácil é.
  • Tente enviar um arquivo SCP, ou toque remotamente em um arquivo.

O método SNMP é o mais agradável e limpo que eu posso pensar, mas estou perdendo a forma de fazer isso, pois o CLI SNMP parece um pesadelo, especialmente se eu precisar executar um processo de decisão para encontrar um índice com base em um determinado ponto de montagem.

Idealmente eu gostaria de fazer isso usando apenas BASH (inc. sed / awk / grep etc) e SNMP, mas preciso de alguma orientação sobre por onde começar! O snmpd já está instalado e configurado para v2 em todos os servidores em questão.

O uso final deste script será como um comando Nagios.

Muito obrigado antecipadamente por qualquer ajuda!

Nota Já temos cactos / nagios configurados monitorando 100s de servidores, esqueci de mencionar isso quando postando originalmente!

    
por SimonJGreen 07.01.2012 / 01:36

4 respostas

5

No seu snmpd.conf , verifique o argumento do exec. Eu uso isso para pesquisar remotamente o número de usuários de alguns dos meus servidores de IRC, assim:

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

Para sondar isso você snmpwalk .1.3.6.1.4.1.2021.8, e seria algo assim:

# 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:

Verifique a parte Estendendo a funcionalidade do agente do link para mais detalhes!

Editar 1:
UCD-SNMP-MIB: dskTable contém informações sobre volumes e uso montados. Ele está localizado sob OID .1.3.6.1.4.1.2021.9 e documentado em: link
link

Mas agora eu vejo que não contém sinalizadores de montagem, então você não pode ver somente a leitura lá. Gah Voltar para o script acima e como chamá-lo! : P

    
por 07.01.2012 / 02:36
2

Para a maioria de "como faço o X no nagios?", você descobrirá que alguém já escreveu um plugin que fará tudo ou pelo menos parte do que você precisa.

Nesse caso, você provavelmente poderia usar check_ro_mounts em combinação com o plug-in 'negate' (parte dos plug-ins nagios padrão) ou apenas modificá-lo para atender às suas necessidades:

link

    
por 11.01.2012 / 19:00
1

Outra maneira é usar as bibliotecas paramqlys Perl's, Ruby Net :: SSH ou Python para fazer o login remotamente e (sem a necessidade de configurar chaves de antemão) e depois analisar o conteúdo do comando 'mount'.

    
por 07.01.2012 / 03:20
0

O gerenciamento e a confirmação dos pontos de montagem e suas bandeiras podem ser feitos através do Puppet. Consulte Como gerenciar partições montadas (fstab + pontos de montagem) do fantoche

    
por 11.01.2012 / 19:04