Ferramentas de monitoramento de tempo de atividade

Às vezes, as pessoas não conseguem acreditar em sua infraestrutura. Isso pode ser facilmente compreendido porque a manutenção de softwares complexos integra várias informações. Além disso, às vezes as pessoas contratam soluções de TI ruins e, como resultado, <s> merda </s> acidentes acontecem.

Tenho usado algumas ferramentas para relatar o tempo de inatividade do servidor web. Aqui vamos nós:

<ul>
<li> <a href=” http://www.monitor.us/”> monitor.us </a>: é uma ferramenta poderosa que oferece vários recursos. No momento, estou usando-o para monitorar um termo específico em uma página específica. É um recurso gratuito e pode verificar um site de 2 países diferentes </li>
<li> <a href=” https://www.pingdom.com/”> Pingdom </a>: parece uma solução completa para analisar problemas de desempenho e tempo de inatividade </li>
<li> <a href=” http://pingoou.com.br/”> Pingoou </a>: esta é uma opção brasileira. Oferece até 3 URLs na conta gratuita e notificações via SMS, Campfire, Hipchat e e-mail nas contas pagas </li>
<li> <</a>: 1 monitor grátis a cada 30 minutos. Na verdade não é o melhor negócio </li>
<li> <a href=” http://www.uptimerobot.com/”> UptimeRobot </a>: ele monitora até 50 sites gratuitamente </li>
</ ul>

<h2> Construindo sua própria ferramenta </h2>

Como alternativa, você pode criar sua própria ferramenta de monitoramento para verificar se um site está ativo ou inativo. O conceito é bastante simples: você pode usar sua linguagem favorita para criar um script que carregue uma página e, então, poderá verificar uma string específica no documento. No exemplo a seguir, usei a gem Ruby e Mechanize para solicitar uma página de status.

gem 'mechanize', '2.7.2'
require 'mechanize'
require 'pony'

def sendmail(to, subject, body)
Pony.mail({
:to => to,
:via => :smtp,
:subject => subject,
:body => body,
:charset => 'UTF-8',
:via_options => {
:address => 'smtp.sendgrid.net',
:port => '587',
:domain => 'heroku.com',
:user_name => ENV['SENDGRID_USERNAME'],
:password => ENV['SENDGRID_PASSWORD'],
:authentication => :plain,
:enable_starttls_auto => true
}
})
end

mechanize
= Mechanize.new{|a| a.ssl_version, a.verify_mode = 'SSLv3', OpenSSL::SSL::VERIFY_NONE}
page
= mechanize.get('https://www.yourwebsite.com/mytesturl')

content
= ""

if page.body.include?('refused')
content
= 'Error: Connection Refused'
end

if content
puts content

sendmail
("email@domain.com", "Monitor", content)
end

Nesse caso, uso o Heroku para executar este script. Os emails são entregues pelo SendGrid, via Pony gem. Não há custos no processo.