Monitoramento do sistema com notificações por email

10

Atualmente, tenho um Ubuntu Server 16.04 LTS e desejo poder receber notificações por email com informações sobre o uso de recursos no meu servidor. CPU, memória, swap, o nome dele.

Entendo que posso usar o Glances para monitoramento local, mas não estarei no console observando as informações o tempo todo. Eu só preciso de notificações por email que me informam sobre os recursos que atingem valores acima do normal / crítico e sejam notificados.

Alguém sabe de um método que me permita fazer isso?

SargentoSerk
fonte
O netdata é perfeito para suas necessidades.
Luv.preet 31/08/19

Respostas:

13

Vou lhe dar uma pequena lista de ferramentas - enquanto eu recomendaria pessoalmente o Nagios simplesmente como estou acostumado. Ele vem com uma grande base de usuários, boa coleção de plug-ins etc. - mas também ouvi coisas boas sobre o Icinga .

Esteja ciente de que a configuração do Nagios ou Icinga levará algum tempo até que você tenha uma configuração perfeitamente funcional que cubra / monitore todos os seus serviços existentes. O início provavelmente não é tão fácil, mas uma vez que você tenha funcionado, é uma configuração adorável que notificará todos os seus serviços definidos se os estados mudarem, algo que é relatável / definido como crítico

Nomes e links do projeto

Primeiro de tudo - uma rápida visão geral:

Configurações de cliente e servidor

Outro software interessante

  • Fumar (limitado por função)

Configurações de host único

Mais Informações

Sobre Nagios

Wikipedia escreve

O Nagios / ˈnɑːɡiːoʊs /, agora conhecido como Nagios Core, é um aplicativo de software livre e de código aberto que monitora sistemas, redes e infraestrutura. O Nagios oferece serviços de monitoramento e alerta para servidores, comutadores, aplicativos e serviços. Ele alerta os usuários quando as coisas dão errado e os alerta uma segunda vez quando o problema foi resolvido.

Imagem de exemplo - mostrando 1 de várias visualizações que você possui:

insira a descrição da imagem aqui

Aqui está uma boa publicação do AskUbuntu sobre Como instalar o Nagios . O Nagios Exchange oferece uma enorme coleção de plugins, complementos, documentação, extensões e muito mais.

Sobre Munin

Wikipedia escreve

O Munin é um aplicativo de software de monitoramento de sistema de computador gratuito e de código aberto, monitoramento de rede e monitoramento de infraestrutura. Oferece serviços de monitoramento e alerta para servidores, comutadores, aplicativos, serviços, etc. Alerta os usuários quando as coisas dão errado e os alerta uma segunda vez quando o problema foi resolvido

Imagem de exemplo

insira a descrição da imagem aqui

Sobre Icinga

Wikipedia escreve

O Icinga é um sistema de computador de código aberto e um aplicativo de monitoramento de rede. Foi originalmente criado como um fork do aplicativo de monitoramento do sistema Nagios em 2009.

A Icinga está tentando superar as falhas percebidas no processo de desenvolvimento do Nagios, além de adicionar novos recursos, como uma interface de usuário moderna no estilo Web 2.0, conectores de banco de dados adicionais (para MySQL, Oracle e PostgreSQL) e uma API REST que permite que os administradores integrem várias extensões sem modificações complicadas do núcleo do Icinga.

Exemplo de imagem mostrando 1 de várias visualizações:

insira a descrição da imagem aqui

Sobre Spiceworks

A Wikipedia escreve:

Spiceworks é uma rede profissional para o setor de tecnologia da informação (TI) com sede em Austin, Texas. A empresa foi fundada em janeiro de 2006 por Scott Abel, Jay Hallberg, Greg Kattawar e Francis Sullivan para criar software de gerenciamento de TI.

Spiceworks é uma comunidade on-line onde os usuários podem colaborar e buscar conselhos uns dos outros e também se envolver em um mercado para comprar serviços e produtos relacionados à TI. Estima-se que a rede seja usada por mais de seis milhões de profissionais de TI e 3.000 fornecedores de tecnologia.

Sobre monit

Wikipedia escreve

O Monit é uma ferramenta gratuita de supervisão de processos de código aberto para Unix e Linux. Com o Monit, o status do sistema pode ser exibido diretamente na linha de comando ou através do servidor da Web HTTP (S) nativo. A Monit ganhou popularidade com o Ruby on Rails e o servidor da Web Mongrel, porque era necessária uma ferramenta que pudesse gerenciar os muitos processos idênticos da Mongrel que precisavam ser executados para oferecer suporte a um site escalável do Ruby on Rails, e a Monit era bastante singular. adequado às necessidades da comunidade Ruby on Rails. Muitos sites populares do Rails usaram o Monit, incluindo o Twitter e o scribd.

Sobre Cacti

A Wikipedia escreve:

O Cacti é uma ferramenta de gráfico e monitoramento de rede de fonte aberta, baseada na Web, projetada como um aplicativo front-end para a ferramenta de registro de dados de código aberto e padrão do setor RRDtool. O Cacti permite ao usuário pesquisar serviços em intervalos predeterminados e representar graficamente os dados resultantes. É geralmente usado para representar graficamente dados de séries temporais de métricas, como carga da CPU e utilização da largura de banda da rede. Um uso comum é monitorar o tráfego de rede pesquisando uma interface de switch ou roteador de rede via SNMP (Simple Network Management Protocol).

O front-end pode lidar com vários usuários, cada um com seus próprios conjuntos de gráficos, por isso às vezes é usado por provedores de hospedagem na web (especialmente servidores dedicados, servidores privados virtuais e provedores de disposição) para exibir estatísticas de largura de banda para seus clientes. Ele pode ser usado para configurar a própria coleta de dados, permitindo que certas configurações sejam monitoradas sem nenhuma configuração manual do RRDtool. O Cacti pode ser estendido para monitorar qualquer fonte via shell scripts e executáveis.

Sobre o Zabbix

A Wikpedia escreve:

O Zabbix é um software corporativo de monitoramento de código aberto para redes e aplicativos, criado por Alexei Vladishev. Ele foi projetado para monitorar e rastrear o status de vários serviços de rede, servidores e outro hardware de rede.

O Zabbix usa MySQL, PostgreSQL, SQLite, Oracle ou IBM DB2 para armazenar dados. Seu back-end é escrito em C e o front-end da web é escrito em PHP. O Zabbix oferece várias opções de monitoramento

dufte
fonte
3

Você pode usar várias soluções. Um deles é monit.

Na linha de comando, basta executar o seguinte comando:

sudo apt-get install monit

O Monit agora deve estar instalado e acessível por meio de um dos seguintes URLs:

http://localhost:2812
http://IPADDRESS:2812 (local network IP)
http://domain.com:2812 (if you have domain name pointing to your server)

Configuração Monit

Antes de começar a usar Monito monitoramento automático do servidor, é necessário fazer algumas configurações básicas. Primeiro faça backup da Monitconfiguração padrão existente usando o seguinte comando:

sudo mv /etc/monit/monitrc /etc/monit/monitrc.bak

Em seguida, crie um novo monitrcarquivo usando o comando

sudo /etc/monit/monitrc 

e copie o seguinte conteúdo para ele.

# How often in seconds should monit check your services.
set daemon 120

set logfile /var/log/monit.log
set idfile /var/lib/monit/id
set statefile /var/lib/monit/state

# Configure your SMTP out server. 
set mailserver smtp-server.columbus.rr.com port 25,localhost

set eventqueue
    basedir /var/lib/monit/events # set the base directory where events will be stored
    # optionally limit the queue size
    slots 100 

# Use one of the following 2 lines. The second line alerts on every little change and can be annoying.
set alert [email protected] but not on { instance, pid, ppid } #does not send alert on pid changes
#set alert [email protected] 

set httpd port 2812 and
    #Change username and password
    allow Username:Password
    # To enable SSL for WebUI uncomment the next 2 lines
    #ssl enable
    #pemfile /path/to/unified/certificate.pem
    # To restrict access to localhost only uncomment the following line
    #allow localhost

include /etc/monit/conf.d/*

As linhas que começam com um # são comentários para ajudá-lo a personalizar a configuração. Verifique se você tem pelo menos o email do administrador, o servidor SMTP e a porta SMTP configurados corretamente. Você também deve alterar o nome de usuário e a senha do Monit WebUI. Se você possui um certificado SSL, também pode habilitá-lo para acesso HTTPS

Por enquanto, use os seguintes comandos para garantir que o Monit esteja funcionando bem.

Para testar a Monitconfiguração quanto a erros de sintaxe:

sudo monit -t

Para iniciar o Monit:

sudo monit

Para verificar o status do Monit:

sudo monit status

Monitoramento de carga do sistema com Monit

É necessário que você tenha uma instância do Monit funcionando com um /etc/monit/monitrcarquivo adequado . As configurações do Monit para vários serviços são carregadas da /etc/monit/conf.dpasta. Para monitorar a carga do servidor Monit, crie um Monitarquivo de configuração usando o seguinte comando:

sudo /etc/monit/conf.d/systemload

Copie o seguinte conteúdo para ele, salve e saia

# domain.com could be IP, hostname, or localhost
check System domain.com
    if loadavg (1min) > 4 then alert
    if loadavg (5min) > 2 then alert
    if memory usage > 75% then alert
    if swap usage > 25% then alert
    if cpu usage (user) > 80% then alert
    if cpu usage (system) > 30% then alert
    if cpu usage (wait) > 20% then alert

Esse código Monitenviará um alerta por e-mail quando uma das condições acima (por exemplo, a carga média for >4de pelo menos 1 min ou quando mais do que 75% RAMestiver cheia) for atendida. Você pode personalizar as regras acima como desejar. Abaixo está um exemplo de alerta por email enviado por Monitjunto com uma descrição de qual condição causou o alerta.

Testar e recarregar o Monit

Depois de fazer as alterações, você deve testar a Monitconfiguração:

sudo monit -t

Você deve ver a seguinte mensagem: Control File Syntax OK.

Em seguida, verifique se Monitjá está em execução usando o seguinte comando:

sudo /etc/init.d/monit status

Se Monitestiver em execução, recarregue as Monitconfigurações usando o seguinte comando:

sudo /etc/init.d/monit reload

Agora, inicie o seu navegador da web e visite um dos seguintes URLs, dependendo de como o seu Monit está configurado (certifique-se de usar o número da porta correto):

http://localhost:2812
http://IPADDRESS:2812 (local network IP)
http://domain.com:2812 (if you have domain name pointing to your server)

Você deve ver o status do sistema, carga, carga da CPU, carga da memória e carga de troca

Monitoramento de armazenamento com Monit

Em seguida, é necessário que você tenha uma Monitinstância de trabalho com um /etc/monit/monitrcarquivo adequado . Monitconfigurações para vários serviços são carregadas da /etc/monit/conf.dpasta. Para monitoramento do espaço em disco com o Monit, create aarquivo de configuração Monit`, usando o seguinte comando:

sudo /etc/monit/conf.d/storagespace

Copie o seguinte conteúdo para ele, salve e saia

# add each drive you want to monitor below
check filesystem Ubuntu with path /dev/sda1
    if space usage > 90% then alert
check filesystem Home with path /dev/sda3
    if space usage > 90% then alert
check filesystem Media with path /dev/sdb1
    if space usage > 90% then alert

O código acima monitorará o espaço do disco rígido em 3 partições em 2 unidades. Se algum deles estiver mais de 90% cheio, você será alertado.

Além disso, você pode monitorar um serviço específico.

Monitorar o servidor Apache com o Monit

A instalação do monitoramento do servidor Apache Monité Monit’sfeita com modelos de configuração pré-criados. Tudo o que você precisa fazer é copiar o modelo existente de /etc/monit/monitrc.dpara a /etc/monit/conf.dpasta.

sudo cp /etc/monit/monitrc.d/apache2 /etc/monit/conf.d/

Em vez de copiar, você também pode criar um link simbólico. O processo do servidor da web Apache cria apache2.pid. O apache2.pidarquivo do monitor de código acima e, se não existir, Monittentará reiniciar o Apache. Uma reinicialização acionará um alerta de email. Se a reinicialização falhar várias vezes, o Monit para de monitorar o servidor Apache.

...

2707974
fonte
2

Você também pode dar uma olhada no SeaLion. Você pode definir alertas personalizados para uso da CPU, memória etc. Além disso, você também pode adicionar suas próprias métricas e configurar notificações para elas também. Além disso, você pode agendar os comandos para serem executados em intervalos específicos e ver suas saídas em uma exibição da linha do tempo. Você pode encontrar mais informações aqui .

Araknid
fonte
1

As ferramentas acima são ótimas para gerar e-mails. Prefiro receber e-mails para o meu monitoramento diário, pois não quero sentar e assistir a um painel o dia inteiro. O problema é que você é inundado por e-mails e só está interessado quando algo der errado. Além disso, como você sabe se um email por algum motivo nunca foi entregue e você acha que tudo está funcionando bem.

Pesquisei muito tempo e me deparei com dois produtos que podem ler os e-mails do seu relatório e avisá-lo quando você precisar agir.

  1. PRTG, você pode configurar filtros de correio para procurar e-mail contendo determinadas palavras. Foi um pouco complicado de fazer.
  2. Uma ferramenta on-line chamada wwww.smtpviewer.com realmente faz o trabalho, além de ter uma configuração de tempo limite que avisa quando o e-mail dos dispositivos monitorados não chega por um tempo determinado.
John Grobbelaar
fonte
Muitos clientes de email já vêm com a capacidade de filtrar, classificar, marcar, ... emails. Então, eu realmente não vejo a necessidade de uma solução externa para isso. Eu tenho usado o filtro do Thunderbird para fazer isso há anos, por exemplo. Se o servidor de correio suportar, você também pode usar os scripts do Sieve para filtrar, classificar, marcar ... os e-mails diretamente no servidor.
Henning Kockerbeck
0

Na minha escola, nosso professor nos deu um treinamento do Pandora FMS, uma solução de monitoramento que abrange o monitoramento de servidores, aplicativos e até redes!

Eu só conhecia o Zabbix e o Nagios na época, nunca tinha ouvido falar dessa solução antes, mas agora estou baseando meu projeto nele por causa dos recursos extras que ele fornece. A parte de monitoramento do servidor é realmente madura e, na minha opinião, é mais simples de configurar e obter estatísticas de desempenho o mais rápido possível: http://pandorafms.com/monitoring-solutions/server-monitoring/

rawmal
fonte
-1 pacote comercial ...
Fabby
0

Embora ele não faça exatamente o que você deseja, acho logwatchuma ferramenta extremamente útil, mas simples.

Ele fornece um resumo diário de todos os eventos que ocorreram no /var/logdiretório, além de outras informações importantes do sistema, como o espaço em disco atual. Tudo o que está faltando pode ser adicionado de maneira bastante simples (por exemplo, adicionei um script que verifica se alguns daemons ainda estão em execução).

Darren
fonte
0

Pelo que entendi sua necessidade é muito básica. Você deseja pesquisar no conteúdo de e-mail da pesquisa de texto por palavras-chave específicas e ser notificado quando isso acontecer. Portanto, somente quando, por exemplo, o email contiver a palavra falha, você deseja ser notificado e não quando houver êxito. Também uso o www.smtpviewer.com, como mencionado por John Grobbelaar, para ser notificado. A vantagem de usar uma ferramenta online é que você sempre pode ser notificado quando o email esperado não chegar. De todas as ferramentas de monitoração de e-mail que eu joguei com essa, é a mais simples e só faz isso.

Dirk Hemmingway
fonte
Isso não parece responder à pergunta. Redefina isso para responder à pergunta ou exclua-a / mova-a para um comentário. Obrigado e bem-vindo ao Ask Ubuntu!
Zwork