it-swarm-pt.tech

Monitoramento do sistema com notificações por email

Eu atualmente tenho um Ubuntu Server 16.04 LTS e eu quero ser capaz de receber notificações de e-mail com informações sobre o uso de recursos no meu servidor. CPU, memória, swap, o nome dele.

Eu entendo que posso usar o Glances para monitoramento local, mas não ficarei no console olhando as informações o tempo todo. Só preciso de notificações por email que me informem sobre recursos que atingiram valores acima do normal/críticos e sejam notificados.

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

9
SergeantSerk

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

Esteja ciente de que configurar Nagios ou Icinga levará algum tempo até que você tenha uma configuração perfeitamente funcional que cubra/monitore todos os seus serviços existentes. É muito provável que o início não seja assim tão fácil, mas uma vez que você o tenha conseguido, é uma configuração adorável que notificará todos os seus serviços definidos se os estados mudarem de forma que algo que seja reportável/definido como crítico

Nomes e links de projetos

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

Configurações de cliente e servidor

Outro software interessante

Configurações de host único

Mais Informações

Sobre o Nagios

Wikipedia escreve

O Nagios/ˈnɑːɡiːoʊs, agora conhecido como Nagios Core, é um aplicativo de software de computador livre e de código aberto que monitora sistemas, redes e infraestrutura. O Nagios oferece serviços de monitoramento e alerta para servidores, switches, 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.

Exemplo de imagem - mostrando uma das várias visualizações que você tem:

enter image description here

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

Sobre o Munin

Wikipedia escreve

Munin é um software livre e de código aberto de monitoramento de sistema, monitoramento de rede e aplicativo de software de monitoramento de infra-estrutura. Ele oferece serviços de monitoramento e alerta para servidores, switches, aplicativos, serviços, etc. Ele alerta os usuários quando as coisas dão errado e os alerta pela segunda vez quando o problema é resolvido.

Exemplo de imagem

enter image description here

Sobre o Icinga

Wikipedia escreve

Icinga é um sistema de computador de código aberto e aplicativo de monitoramento de rede. Foi originalmente criado como uma bifurcação do aplicativo de monitoramento do sistema Nagios em 2009.

Icinga está tentando superar as deficiências percebidas no processo de desenvolvimento do Nagios, bem como adicionar novos recursos, como uma moderna interface de usuário estilo Web 2.0, conectores de banco de dados adicionais (para MySQL, Oracle e PostgreSQL) e um REST API que permite aos administradores integrar inúmeras extensões sem modificação complicada do núcleo Icinga.

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

enter image description here

Sobre Spiceworks

Wikipedia escreve:

A Spiceworks é uma rede profissional para a indústria 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 desenvolver software de gerenciamento de TI.

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

Sobre o monit

Wikipedia escreve

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 visualizado diretamente a partir da 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 web Mongrel, [carece de fontes?] Porque era necessária uma ferramenta que pudesse gerenciar muitos processos Mongrel idênticos que precisavam ser executados para suportar um site escalável Ruby on Rails, e o Monit era bastante adequado para as necessidades da comunidade Ruby on Rails. Muitos sites populares do Rails usaram o Monit, incluindo o Twitter e o scribd.

Sobre o Cacti

Wikipedia escreve:

O Cacti é uma ferramenta gráfica e de monitoramento de rede de código aberto, baseada na Web, projetada como um aplicativo de front-end para a ferramenta de registro de dados de código aberto padrão da indústria, a RRDtool. O Cacti permite que um usuário pesquise serviços em intervalos predeterminados e represente graficamente os dados resultantes. Geralmente, ele é 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 um switch de rede ou uma interface de roteador 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 (especialmente servidor dedicado, servidor privado virtual e provedores de compartilhamento) 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 determinadas configurações sejam monitoradas sem qualquer configuração manual do RRDtool. O Cacti pode ser estendido para monitorar qualquer fonte através de scripts e executáveis ​​do Shell.

Sobre o Zabbix

Wikpedia escreve:

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

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

12
dufte

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 ser 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 o Monit para o monitoramento automático do servidor, é necessário fazer algumas configurações básicas. Primeiro faça o backup da configuração Monit padrão existente usando o seguinte comando:

Sudo mv /etc/monit/monitrc /etc/monit/monitrc.bak

Em seguida, crie um novo arquivo monitrc 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 # são comentários para ajudá-lo a personalizar a configuração. Certifique-se de ter pelo menos o email de administrador, o servidor SMTP e a porta SMTP configurados corretamente. Você também deve considerar alterar o nome de usuário e a senha do Monit WebUI. Se você tem um certificado SSL, você pode habilitar isso também para acesso HTTPS

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

Para testar a configuração de Monit para erros de sintaxe:

Sudo monit -t

Para iniciar o Monit:

Sudo monit

Para verificar o status da Monit:

Sudo monit status

Monitoramento de carga do sistema com monit

É necessário que você tenha uma instância Monit funcional com um arquivo /etc/monit/monitrc adequado. As configurações de monit para vários serviços são carregadas da pasta /etc/monit/conf.d. Para monitorar a carga do servidor com Monit, crie um arquivo de configuração Monit 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 fará com que Monit envie um alerta por e-mail quando uma das condições acima (por exemplo, carga média é >4 por pelo menos 1 min ou quando mais que 75% RAM está cheio) forem atendidas. Você pode personalizar as regras acima como quiser. Abaixo está um exemplo de alerta por email enviado por Monit juntamente com uma descrição de qual condição causou o alerta.

Teste e Recarregue Monit

Depois de fazer qualquer alteração, você deve testar a configuração Monit:

Sudo monit -t

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

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

Sudo /etc/init.d/monit status

Se Monit estiver em execução, recarregue as configurações Monit usando o seguinte comando:

Sudo /etc/init.d/monit reload

Agora, abra seu navegador da Web e visite um dos URLs a seguir, dependendo de como sua Monit está configurada (certifique-se de usar o número de 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 instância Monit em funcionamento com um arquivo /etc/monit/monitrc apropriado. As configurações de Monit para vários serviços são carregadas da pasta /etc/monit/conf.d. Para monitoramento de espaço de unidade com o arquivo de configuração Monit, create aMonit` 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 codificará o espaço do disco rígido em 3 partições em 2 unidades. Se algum deles estiver mais de 90% cheio, você ficará alerta.

Além disso, você pode monitorar serviços específicos.

Monitor do Apache Server com Monit

Configurar o monitoramento do servidor Apache com Monit é com Monit’s modelos de configuração pré-criados. Tudo o que você precisa fazer é copiar o modelo existente de /etc/monit/monitrc.d para /etc/monit/conf.d folder.

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 do Apache cria Apache2.pid. O arquivo Apache2.pid do monitor de código acima e, se não existir, Monit tentará reiniciar o Apache. Um reinício irá acionar um alerta de email. Se o reinício falhar várias vezes, o Monit pára de monitorar o servidor Apache.

...

2
2707974

Você também pode dar uma olhada 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 eles também. Além disso, você pode programar os comandos para serem executados em intervalos específicos e ver suas saídas em uma exibição de linha de tempo. Você pode encontrar mais sobre isso aqui .

2
Araknid

As ferramentas acima são ótimas para gerar e-mails. Eu prefiro receber e-mails para o meu monitoramento diário, já que eu não quero sentar e assistir a um painel o dia todo. O problema é que você é inundado por e-mails e só tem interesse quando algo dá errado. Além disso, como você sabe se um e-mail por algum motivo nunca foi entregue e acha que tudo está funcionando bem?.

Eu procurei por um longo tempo e encontrei dois produtos que podem ler seus e-mails de relatório e avisá-lo quando você precisar agir.

  1. PRTG você pode configurar filtros de correio para procurar por e-mail contendo certas palavras. Foi um pouco complicado de fazer.
  2. Uma ferramenta online chamada wwww.smtpviewer.com realmente faz o trabalho e tem uma configuração de tempo limite que avisa quando o e-mail de seus dispositivos monitorados não chegou por um tempo definido.
1
John Grobbelaar

Pelo que entendi sua necessidade é muito básica. Você gostaria de enviar um texto de conteúdo de e-mail de pesquisa para palavras-chave específicas e, em seguida, ser notificado quando isso acontecer. Portanto, somente quando, por exemplo, o email contiver a falha do Word, você deseja ser notificado e não quando ele tiver êxito. Eu também uso 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 monitor de email que eu joguei com esta é a mais simples e só faz uma coisa.

0
Dirk Hemmingway

Na minha escola, nosso professor nos deu um treinamento de 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, eu 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, em 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/

0
rawmal

Apesar de não fazer exatamente o que você quer sair da caixa, eu acho que o logwatch é uma ferramenta extremamente útil, mas simples.

Ele fornece um resumo diário de todos os eventos que aconteceram no diretório /var/log, além de outras informações importantes do sistema, como o espaço em disco atual. Tudo o que estiver faltando pode ser adicionado de forma bastante simples (por exemplo, eu adicionei um script que verifica se certos daemons ainda estão sendo executados).

0
Darren