Nesse artigo iremos monitorar o Asterisk e outras aplicações com a ferramenta Monit.
Monit é um utilitário open source para gerenciar e monitorar processos, arquivos, diretórios e sistemas de arquivos em um sistema UNIX, ele realiza manutenção e reparo automático e pode executar ações significativas em situações de erro.
Iniciaremos a instalação do Monit a partir das fontes
Download
Iremos para o diretório source do linux e baixaremos as fontes:
cd /usr/src
wget http://mmonit.com/monit/dist/monit-5.1.1.tar.gz
tar -xf monit-5.1.1.tar.gz
cd monit-5.1.1
Compilando
Nesta etapa iremos compilar e instalar os fontes do Monit:
./configure –prefix=/usr
make
make install
Agora vamos copiar o arquivo de configuração de exemplo que vem com os fontes do Monit para o diretório /etc.
cp monitrc /etc
Após a cópia iremos ativar o script de inicialização do Monit:
cd contrib
cp rc.monit /etc/init.d/monit
chmod +x /etc/init.d/monit
chkconfig –add monit
Configurando
Agora iremos modificar o arquivo de configuração para monitorarmos as seguintes aplicações:
- Asterisk
- Mysql
- Sendmail
- Tronco SIP
O arquivo de configuração do Monit é divido em três partes, são elas:
- Global Section: Aqui é onde fica as configurações gerais do programa
- Services: Configuração dos Serviços
- Includes: Permite incluir no arquivo de configuração do Monit outros arquivos de configuração para outros processos
Editar o arquivo de configuração:
nano /etc/monitrc
###############################################################################
## Global section
###############################################################################
##
## Start Monit in the background (run as a daemon):
#
set daemon 60
# Indica o tempo em segundos que o Monit irá controlar os serviços
with start delay 30
# Ao iniciar o programa o primeiro ciclo será executado depois de 30 segundos
set logfile /var/log/monit.log
# Nome do arquivo onde se grava todos os registros de log do Monit
set idfile /var/.monit.id
# Nome do diretório e do arquivo onde será guardado o número do processo do Monit
set mailserver localhost
# Nome do host do servidor de correio eletronico que o Monit irá utilizar para enviar os alertas
set eventqueue basedir /var/monit slots 100
# Se por algum motivo o servidor de correio não está funcionando podemos decidir se o Monit irá guardar
# todos os alertas em uma determinada pasta. Quando o servidor voltar a funcionar todos os alertas
# serão enviados seguindo a ordem cronológica em que foram guardados
set mail-format {
From: monit@mestreasterisk.com.br
Subject: monit alerta -- $EVENT $SERVICE
Message: $EVENT Servicio $SERVICE
Data: $DATE
Ação: $ACTION
Host: $HOST
Descrição: $DESCRIPTION
Sem mais,
Monit
}
# Com o bloco acima definiremos como deve ser enviado o correio eletronico de alerta
set alert admin@mestreasterisk.com.br
# Com está linha definimos o correio eletrônico de quem receberá todos os alertas
set httpd port 2812
allow admin:password
# Monit vem com um servidor Web nativo. E nas duas linhas acima ativamos o servidor Web para a porta 2812
# (que deverá ser aberta no seu firewall) e o nome de usuario e senha para ingressar na página
###############################################################################
## Services
###############################################################################
# Aqui inicia-se a configuração dos serviços.
# Servidor
check system mestreasterisk.com.br
if loadavg (1min) > 4 then alert
if loadavg (5min) > 2 then alert
if memory usage > 75% then alert
if cpu usage (user) > 70% then alert
if cpu usage (system) > 30% then alert
if cpu usage (wait) > 20% then alert
# Asterisk
check process asterisk with pidfile /var/run/asterisk.pid
start program = "/etc/init.d/asterisk start" with timeout 60 seconds
stop program = "/etc/init.d/asterisk stop" with timeout 60 seconds
if failed port 5060 type udp protocol SIP
and target XXXX@sip.mestreasterisk.com.br maxforward 10
then restart
if 5 restarts within 5 cycles then timeout
# Tronco SIP
check host Vono with address vono.net.br
if failed port 5060 type udp protocol SIP
and target XXXXXXXXX@vono.net.br maxforward 10
then alert
# SendMail
check process sendmail with pidfile /var/run/sendmail.pid
group mail
start program = "/etc/init.d/sendmail start"
stop program = "/etc/init.d/sendmail stop"
if failed port 25 protocol smtp then restart
if 5 restarts within 5 cycles then timeout
# MySQL
check process mysql with pidfile /var/run/mysqld/mysqld.pid
group database
start program = "/etc/init.d/mysqld start"
stop program = "/etc/init.d/mysqld stop"
if failed port 3306 protocol mysql then restart
if 5 restarts within 5 cycles then timeout
Salvamos as configurações e iniciamos o serviço do Monit:
/etc/init.d/monit start
Veremos o que se passa quando o Monit monitora o Tronco SIP. (sip debug)
U +21.582148 189.100.XXX.XXX:35763 -> 83.211.227.21:5060
OPTIONS sip:XXXXXXXXXX@vono.net.br SIP/2.0.
Via: SIP/2.0/UDP 189.100..XXX.XXX:35763;branch=z9hG4bKh40112408;rport.
Max-Forwards: 10.
To: <sip:XXXXXXXXXX@vono.net.br>.
From: monit <sip:monit@189.100..XXX.XXX>;tag=1928237401.
Call-ID: 1442445677.
CSeq: 63104 OPTIONS.
Contact: <sip:189.100.XXX.XXX:35763>.
Accept: application/sdp.
Content-Length: 0.
User-Agent: monit/5.1.1.
###
U +0.142660 83.211.227.21:5060 -> 189.100.XXX.XXX:35763
SIP/2.0 200 OK.
Via: SIP/2.0/UDP 189.100.XXX.XXX:35763;branch=z9hG4bKh40112408;rport=35763.
To: <sip:XXXXXXXXXX@vono.net.br>;tag=d7cbdeb4f107ce82ed834cadd3d6dbb2.a04a.
From: monit <sip:monit@189.100.XXX.XXX>;tag=1928237401.
Call-ID: 1442445677.
CSeq: 63104 OPTIONS.
Accept: */*.
Accept-Encoding: .
Accept-Language: en.
Support: .
Server: SPS EUT RM GW 03 (0.9.6 (i386/linux)).
Content-Length: 0.
O Monit atua como um user agent e utilizando o sip:uri registrado com o provedor ele controla se o serviço está ativo.
Logo abaixo você irá ver a imagem da minha página de administração:
Segue o link para o manual do Monit
Isso é tudo.
6 Comentarios para “Monitorar Asterisk com Monit no CentOS”



muito util vamos analisar !!!!
Qual o endereço da pagina após a instalação?
O endereço para acessar a interface web é o ip + porta
Ficaria assim: http://xxx.xxx.xxx.xxx:2812
Abs
Otima solução, para customização do asterisk.