O que incluir em um script de monitoramento do servidor LAMP

1

Temos vários servidores LAMP que executam um script especial que escrevemos para informar sobre várias métricas do sistema. O relatório é executado diariamente e a ideia é fazer um passe rápido e identificar possíveis problemas no sistema.

Cada servidor LAMP executa o RedHat Enterprise e hospeda 40 a 50 sites cada (uma mistura de sites HTML, PHP personalizados e Drupal).

Aqui está o que o script inclui atualmente:

  1. Carregamento do servidor e usuários conectados
  2. Últimos 10 logins e horários
  3. Uso de disco
  4. Últimas 10 linhas de vários logs (qmail, mysql, secure, erro do apache, pacote)
  5. nome de usuário, porta e hora do último login para cada conta
  6. top dump

O relatório já é longo, então estou interessado em resumir o quanto for possível.

Você encontrou outras métricas importantes para incluir em tal script? Você descartaria alguma desta lista?

Obrigado, equipe.

j

    
por Justin 03.06.2009 / 16:55

6 respostas

1

Eu testaria para garantir que seu ambiente seja são. Teste que o PHP está rodando corretamente (escreva um simples script PHP que ecoa algo, wget, tenha certeza que você recebeu o que você esperava), seu banco de dados (apenas conecte e certifique-se de ver bancos de dados), etc.

Além disso, se você estiver fazendo SSL neles, verifique o certificado para expiração, alterações inesperadas, etc.

    
por 03.06.2009 / 16:59
1

Eu recomendaria o uso de uma ferramenta de coleta automatizada, como Cactos , que coletará e informará sobre várias métricas ao longo do tempo. Isso permitirá que você identifique facilmente as tendências e planeje o futuro. Existe um excelente livro de John Allspaw chamado A Arte do Planejamento da Capacidade , que aborda este tópico em detalhes. Eu recomendo isso para qualquer um que precise rastrear as métricas nos servidores.

    
por 03.06.2009 / 16:59
1

Meu conselho seria não relatar nenhuma dessas coisas rotineiramente. Você será inundado de informações e a natureza humana dita que, quando um problema chegar, você pode realmente ignorar isso.

Em vez disso, relate apenas quando uma dessas variáveis for anormal. Talvez até mais frequentemente durante o dia. Você pode usar um sistema de monitoramento e representação gráfica, como o Cacti, que alertará você sobre essas alterações e manterá dados históricos para referência futura.

    
por 03.06.2009 / 17:02
1

para o seu script - para verificações de desempenho adiciono conteúdo do log de consultas lentas do mysql [você precisa ativá-lo no my.cnf do mysql]. Se você tiver consultas por mais de alguns segundos, provavelmente haverá algum gargalo de desempenho.

coloque alguma verificação de consistência - tripwire - integrit ou sth else - em locais que não devem ser modificados [/ etc /? binários? ]. talvez adicionar verificação de logs de ftp contra geoip - provavelmente você não espera ver logins bem-sucedidos da China ou da ex-União Soviética.

insira pelo menos registro de log do iptables para conexões de saída e inclua todas as portas de destino incomuns exibidas em seus logs. você provavelmente não deseja conexões http de saída - talvez, exceto a verificação de atualização dentro do drupal - essas podem ser o sinal de algumas tentativas de baixar cargas potencialmente mal-intencionadas. ou melhor ainda, eliminar todo o tráfego de saída e adicionar exceções, por exemplo, para tcp / 25 de saída, se você enviar alguns e-mails.

adicione monitoramento gráfico de tendências, por exemplo, com munin . gráficos de plotagem com carga, solicitações de número por segundo, uso de memória e troca, consultas mysql por segundo, consultas lentas, tráfego eth total, tráfego de correio.

e como Dan C sugere - você será desenhado em logs e começará a ignorá-los. configurar nagios ou qualquer outro sistema de verificação. que lhe informará quando coisas ruins acontecerem.

    
por 03.06.2009 / 17:02
1

Você realmente deseja ter um monitoramento constante. Usamos o Nagios para verificar cada um dos nossos servidores da Web várias vezes por minuto para garantir que eles ainda estejam funcionando. Também monitoramos nossos bancos de dados e qualquer outra coisa em que possamos pensar. Com o tempo, você terá interrupções e descobrirá coisas que deveria ter monitorado.

O outro lado do monitoramento é algum tipo de representação gráfica. Nós usamos Munin, mas cactos ou gânglios são soluções comuns. A criação de gráficos é inestimável para detectar tendências no seu sistema.

    
por 03.06.2009 / 17:28
0

Também sugiro buscar a página de status do servidor com um script e analisar os valores necessários para obter informações de tempo de execução.

Adicione isto à sua configuração do Apache (já existente na maioria das distribuições)

<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from .example.com
</Location>

Este manipulador é fornecido por mod_status. Você pode ver solicitações atuais, solicitações por segundo, etc.

    
por 04.06.2009 / 15:53