checklist fundamental do sysadmin

checklistVou dizer o que eu já vi acontecer, certo dia, certo serviço saiu do ar, o sysadmin recebeu um chamado com tag ‘ultra-mega-urgente-importante’ para resolver o problema para ontem, eis que o rapaz então abre o console e sai rasgando “ssh servidor-do-cliente -l sysadmin48″ para tentar resolver o problema o quanto antes, sabe como é, tem que manter a SLA (nessas horas eu me pergunto, cadê o tal do monitoramento, o cliente precisa avisar abrindo chamado?).

Pois então, o problema era que o sistema XPTO não estava funcionando, eis que o sysadmin então vai direto no sistema XPTO, mexe daqui, mexe dali, reinicia (/etc/init.d/xpto restart) mexe nas configurações (vim /etc/xpo/xpto.conf) altera dezenas de linhas, reinicia o serviço XPTO, olha o log e em completo desespero acende uma vela para Linus, Alan Cox, Ken Thompson, Dennis Ritchie e até para o TUX, e nada, o trem não funciona, ele não sai do lugar, derrepende começa a mandar aqueles e-mails para listas de discussão, pedindo socorro, urgente, aquele tipo de e-mail que não passa nem o OS que ele tá usando ou a versão do serviço XPTO, mas ainda assim quer ajuda, claro que recebe vários RTFM e links de netiqueta.

Nesse momento, passei por ali, por acaso e vi a pessoa arrancando cada fio do cabelo, dos quais não eram muitos, e enquanto isso o tal sysadmin já ia abrindo o currículo profissional no outro terminal, pelo jeito ele imaginava que seu tempo ali acabara, pois enfim encontrou um problema insolúvel, sentei ali com minha caneca de café forte e troquei uma idéia com o cara, sem saber do problema, perguntei se ele já havia feito algum checklist no sistema, o sysadmin surpreso disse que não, peguei um papel e escrevi o seguinte checklist para o sysadmin verificar antes de checar o serviço XPTO.


Checklist da infra-estrutura e do sistema operacional

00. Verificar conexão física no servidor

Cabos de rede estão conectados corretamente?
E os demais cabos?

01. Verificar interfaces de rede

Estão ativadas?
Estão configuradas corretamente, Ipv4/Ipv6, máscara?

02. Verificar rotas

As rotas para suas filiais ou redes externas estão configuradas?
Está com o gateway padrão configurado?

03. Verificar DNS

Existe o arquivo /etc/resolv.conf
Os servidores de nome estão configurados corretamente?
Consegue resposta ao comando: $ dig slashdot.org

04. Verificar logs

Verifique os arquivos:

-messages
-daemon
-syslog
-auth.log
-kernel.log
-user.log

Algo anormal?

05. Verificar saída do dmesg

Vê alguma mensagem anormal?

06. Verificar partições (mount)

Veifique o /etc/fstab
Todas as partições estão/foram montadas?
Nenhum erro de FS no DMESG?

07. Verificar espaço em disco com (df -h)

Alguma partição está com 100% de uso?

08. Verificar UPTIME/TOP/UNAME/PS

a carga do sistema está normal? (top)
o consumo de memória está normal?
(top)
o consumo de cpu está normal? (top)
o uptime é recente, então máquina acabou de reiniciar? (top/uptime)
caso a máquina tenha reiniciado subiu o kernel correto? (uname)
algum processo estranho/anormal rodando? (ps)

09. Verificar WHO

Quem está conectado?
Caso alguém esteja conectado, está fazendo o que?

10. Verificar LAST

Quem conectou recentemente?


Dá para ir além, mas acho que tinha escrito estas 11 checagens, agora vamos ao desfecho.

O cara descobriu algumas coisas interessantes, primeiro a máquina tinha reiniciado recentemente, talvez um pique de luz que o nobreak não segurou [1]. Depois disto ele viu que a interface subiu com a mascara errada e por isto a filial não enxergava o sistema XPTO [2], o DNS estava errado [3] e por isto o serviço não carregava algumas RSS pois não resolvia as URL’s, ele checou que recentemente o usuário sysadmin22 conectou na máquina, após falar com o sysadmin22 ele admitiu ter mexido no /etc/resolv.conf, verificou também que o ponto de montagem NFS com arquivos essenciais para o serviço XPTO não foi montado automaticamente quando a máquina reiniciou [4], verificou que após montar a partição com arquivos essenciais, esta encontrava-se com 100% de espaço ocupado e por isto o sistema XPTO não aceitava upload’s [5] e por fim o DMESG acusou que a partição /home que usava sistema de arquivos ext3 estava emitindo alguns alertas [6].

Atitudes a serem tomadas após o checklist:

[1] Verificar nobreak em que este servidor está ligado, chamar manutenção
[2] Arrumar configuração estática da interface em /etc/network/interfaces
[3] Arrumar configuração do /etc/resolv.conf
[4] Arrumar configuração do /etc/fstab
[5] Expandir tamanho da partição LUN LVM ou mover arquivos antigos.
[6] Verificar partição com fsck e verificar integridade e estabilidade do disco.

E por fim o sistema XPTO não tinha nenhum problema, não era necessário mexer em nenhuma configuração, como ele foi mexido, bom ele acabou se tornando um novo problema, o sysadmin48 teve que desfazer as alterações que andou fazendo por conta dos testes de ‘tentativa-e-erro’.

Agora veja que um simples checklist a ser executado no início de cada manutenção ou análise pode lhe revelar muitos dos reais problemas de um serviço. Normalmente desviamos nossa atenção do básico e focamos no que roda com mais complexidade em um sistema ao invés de lembrarmos dos fundamentos de funcionamento do OS que utilizamos.

Este foi um cenário real, em que naturalmente foi mal instalado e mal configurado, pois todas as configurações estáticas estavam com problemas ou equivocadas, algo típico de um servidor que é instalado e colocado em produção sem testes e devido processo de homologação.

Veja que a maioria destes problemas, talvez mais de 98% deles, poderiam ser evitados com políticas administrativas bem delineadas na instalação e homologação do servidor, e se houver um monitoramento adequado o sysadmin saberá muito antes do cliente que aquele servidor demanda manutenção por questões de espaço em disco em uma de suas partições ou por alertas em relação ao sistema de arquivos de uma outra partição, sem falar em controle mudanças, controle de configurações, controle de incidentes e muito mais se formos focar na gestão como um todo.

Pensando nisto estou querendo criar o checklist para os sysadmins gnu/linux que estão começando a sua vida, que tal construirmos isto coletivamente?

Já dei 11 sugestões que funcionam na maioria dos casos, vamos aumentar e melhorar este checklist?

Aguardo sua sugestão.

[]‘s
Guto


This is some text prior to the author information. You can change this text from the admin section of WP-Gravatar  To change this standard text, you have to enter some information about your self in the Dashboard -> Users -> Your Profile box.


Posts relacionados
This entry was posted in softwarelivre, tecnologias and tagged , . Bookmark the permalink.

11 Responses to checklist fundamental do sysadmin

  1. Walter Rodrigo de Sá CruzNo Gravatar says:

    ps aux, verificar se existem processos zumbis?

  2. gutocarvalhoNo Gravatar says:

    Boa @waltercruz, vamos colocar na lista ;)

  3. MussiNo Gravatar says:

    Falou tanto do servidor … só faltou falar do serviço problemático…

    O serviço está rodando ?

    Olhou os logs do Serviço ?

    telnet na porta do serviço sempre ajuda ;)

    dependendo da tecnologia do serviço tem outras fontes de informação … alá jconsole em aplicações java :P

    eu gosto da ideia de uma URL interna que verifica o servidor e suas caracteristicas para a aplicação para o qual ele foi configurado … acaba sendo uma forma rápida de se verificar o servidor .. mas nada que uma aplicação de monitoramento, devidamente configurada, não faça melhor

    logs do banco de dados ??

    conectividade com o banco de dados ???

    configuração da velocidade das placas de rede ? ( já vi problemas com a auto-negociação de placas de rede )

    e por ae vai :)

  4. gutocarvalhoNo Gravatar says:

    Mussi,

    A idéia é essa mussi, checar o servidor antes do cara sair mexendo na aplicação achando que é lá o problema, as vezes perdendo tempo precioso, sugiro que seja feito um checklist preliminar, investindo este tempo para se ter um diagnóstico preciso da infra-estrutura que hospeda o serviço, por eliminação podemos saber se o problema é no OS ou na aplicação de fato.

    E sim deve-se fazer um checklist para cada serviço de acordo com as características da aplicação, eu sou um tanto viciado em métodos organizacionais, faço checklist para tudo e sempre sigo a risca, se este checklist estiver documentado isso ajuda e muito a administração principalmente se outro sysadmin precisar mexer em algo que você implantou ou implementou.

    Veja a metologia de trabalho que sugiro aos sysadmins jr.

    Chega um chamado: serviço XPTO fora do ar.

    1. Executar checklist A (checagens servidor/infra/os)

    Aqui fazemos os 11 ou mais passos básicos.

    2. Executar checklist B (checagens serviço XPTO e dependências)

    Aqui fazemos as checagens que você sugeriu ou algo similar de
    acordo com as características do serviço.

    3. Fechar chamado colocar resolução na base de conhecimento

    Fundamental

    4. Atualizar controle de mudanças daquele servidor
    caso algo tenha sido alterado.

    Fundamental

    5. Atualizar registro de incidentes, hora início/hora fim

    Para medir disponibilidade para fins de SLA ;)

    Seguindo isso a risca o cara não fica boiando e provavelmente vai resolver o chamado rapidamente.

    Método é tudo ;)

    []‘s
    Guto

  5. Cesar CardosoNo Gravatar says:

    Post obrigatório pra sysadmin n00b.

  6. MussiNo Gravatar says:

    fi … os itens 3 e 4, principalmente em ambientes grandes são fundamentais .. pena que pouquissimas pessoas dão valor para eles :(

    mais que tudo … a rotina em realizar essas ações é importante… o sysadmin n pode ver essas etapas como “perda de tempo” .. cois aque infelizmente a maioria acha :(

  7. darthjeeNo Gravatar says:

    Cara, adorei, vou sempre levar comigo :D

  8. gutocarvalhoNo Gravatar says:

    De darthjee,

    Bacana, se tiver alguma sugestão para melhorarmos o checklist é só falar.

    []‘s
    Guto

  9. gutocarvalhoNo Gravatar says:

    De fato, acho que podemos falar de algumas ferramentas que possam suprir as necessidades deste tipo de gerenciamento.

    Vamos fazer um post sobre GLPI/OCS/OTRS!?

    E ai mussi, topa?

    []‘s
    Guto

  10. Edgar GabaldiNo Gravatar says:

    Mt bom!

  11. Pingback: Blog do Márcio d’Ávila » Checklist: Diagnóstico de indisponibilidade no ambiente de serviços web

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Os comentários postados neste blog serão analisados, inicialmente de forma automática pelo akismet e bad-behavior, caso eles passem ilesos por estes sistemas anti-spam, ainda sim serão analisados em relação a quantidade de links, caso tenham mais de 2 links serão colocados na fila de moderação. Aqui me reservo ao direito de remover comentários ofensivos, off-topics, propagandas, trollagem sem sentido, afinal a responsabilidade do conteúdo do blog, inclusive comentários recai sob o autor. Até hoje não tive problemas com comentários, mas é sempre bom avisar como as coisas funcionam ;)