Monitoramento · 6 min read · Oct 20, 2025

Monitoramento de Servidores com Shinken no Ubuntu 16.04

Shinken é um framework de monitoramento de computadores e redes de código aberto escrito em python e compatível com Nagios. Shinken pode ser usado em todos os sistemas operacionais que podem executar aplicações python, como Linux, Unix e Windows. Shinken foi escrito por Jean Gabes como prova de conceito para uma nova arquitetura do Nagios, mas foi rejeitado pelo autor do Nagios e se tornou uma ferramenta independente de monitoramento de redes e sistemas que permanece compatível com o Nagios.

Neste tutorial, eu vou mostrar como instalar o Shinken a partir do código-fonte e adicionar um host Linux ao sistema de monitoramento. Eu usarei o Ubuntu 16.04 Xenial Xerus como o sistema operacional para o servidor Shinken e o host monitorado.

Passo 1 - Instalar o Servidor Shinken

Shinken é um framework python, podemos instalá-lo com pip ou instalá-lo a partir do código-fonte. Neste passo, vamos instalar o Shinken a partir do código-fonte.

Existem algumas tarefas que precisam ser concluídas antes de começarmos a instalar o Shinken.

Instale alguns novos pacotes python e crie um usuário Linux com o nome “shinken”:

sudo apt-get install python-setuptools python-pip python-pycurl  
useradd -m -s /bin/bash shinken

Baixe o código-fonte do Shinken do repositório do GitHub:

git clone https://github.com/naparuba/shinken.git  
cd shinken/

Em seguida, instale o Shinken com o comando abaixo:

git checkout 2.4.3  
python setup.py install

Próximo, para melhores resultados, precisamos instalar ‘python-cherrypy3’ do repositório ubuntu:

sudo apt-get install python-cherrypy3

Agora o Shinken está instalado, em seguida, adicionamos o Shinken para iniciar na inicialização e iniciá-lo:

update-rc.d shinken defaults  
systemctl start shinken

Passo 2 - Instalar o Shinken Webui2

Webui2 é a interface web do Shinken disponível em shinken.io. A maneira mais fácil de instalar o webui2 do Shinken é usando o comando shinken CLI (que deve ser executado como usuário shinken).

Faça login como usuário shinken:

su - shinken

Inicialize o arquivo de configuração do shinken - O comando criará um novo arquivo de configuração .shinken.ini:

shinken --init

E instale o webui2 com este comando CLI do shinken:

shinken install webui2

Webui2 está instalado, mas precisamos instalar o MongoDB e outro pacote python com pip. Execute o comando abaixo como root:

sudo apt-get install mongodb  
pip install pymongo>=3.0.3 requests arrow bottle==0.12.8

Em seguida, vá para o diretório do shinken e adicione o novo módulo webui2 editando o arquivo ‘broker-master.cfg’:

cd /etc/shinken/brokers/  
vim broker-master.cfg

Adicione uma nova opção dentro do módulo na linha 40:

modules     webui2

Salve o arquivo e saia do editor.

Agora vá para o diretório de contatos e edite o arquivo ‘admin.cfg’ para a configuração do administrador.

cd /etc/shinken/contacts/  
vim admin.cfg

Altere os valores mostrados abaixo:

contact_name    admin       # Nome de usuário 'admin'  
password        yourpass    # Senha 'mypass'

Salve e saia.

Passo 3 - Instalar Nagios-plugins e Pacotes Shinken

Neste passo, vamos instalar Nagios-plugins e alguns módulos Perl. Em seguida, instalar pacotes adicionais do shinken.io para realizar o monitoramento.

Instale Nagios-plugins e cpanminus que é necessário para construir e instalar os módulos Perl:

sudo apt-get install nagios-plugins* cpanminus

Instale esses módulos Perl com o comando cpanm:

cpanm Net::SNMP  
cpanm Time::HiRes  
cpanm DBI

Agora crie um novo link para o arquivo utils.pm no diretório shinken e crie um novo diretório para Log_File_Health:

chmod u+s /usr/lib/nagios/plugins/check_icmp  
ln -s /usr/lib/nagios/plugins/utils.pm /var/lib/shinken/libexec/  
mkdir -p /var/log/rhosts/  
touch /var/log/rhosts/remote-hosts.log

Em seguida, instale os pacotes shinken ssh e linux-snmp para monitorar fontes SSH e SNMP do shinken.io:

su - shinken  
shinken install ssh  
shinken install linux-snmp

Passo 4 - Adicionar um Novo Host Linux/host-one

Vamos adicionar um novo host Linux que será monitorado usando um servidor Ubuntu 16.04 com endereço IP 192.168.1.121 e nome do host ‘host-one’.

Conecte-se ao host Linux host-one:

ssh [email protected]

Instale os pacotes snmp e snmpd do repositório Ubuntu:

sudo apt-get install snmp snmpd

Em seguida, edite o arquivo de configuração ‘snmpd.conf’ com vim:

vim /etc/snmp/snmpd.conf

Comente a linha 15 e descomente a linha 17:

#agentAddress  udp:127.0.0.1:161  
agentAddress udp:161,udp6:[::1]:161

Comente as linhas 51 e 53, e adicione uma nova linha de configuração abaixo:

#rocommunity mypass  default    -V systemonly  
#rocommunity6 mypass  default   -V systemonly  
   
rocommunity mypass

Salve e saia.

Agora inicie o serviço snmpd com o comando systemctl:

systemctl start snmpd

Vá para o servidor shinken e defina o novo host criando um novo arquivo no diretório ‘hosts’.

cd /etc/shinken/hosts/  
vim host-one.cfg

Cole a configuração abaixo:

define host{  
        use                 generic-host,linux-snmp,ssh  
        contact_groups      admins  
        host_name           host-one  
        address             192.168.1.121  
        _SNMPCOMMUNITY      mypass        # Configuração de Senha SNMP em snmpd.conf  
    }

Salve e saia.

Edite a configuração SNMP no servidor Shinken:

vim /etc/shinken/resource.d/snmp.cfg

Altere ‘public’ para ‘mypass’ - deve ser a mesma senha que você usou no arquivo de configuração snmpd no host cliente host-one.

$SNMPCOMMUNITYREAD$=mypass

Salve e saia.

Agora reinicie ambos os servidores - servidor Shinken e o host Linux monitorado:

reboot

O novo host Linux foi adicionado com sucesso ao servidor Shinken.

Passo 5 - Acessar o Shinken Webui2

Visite o Shinken webui2 na porta 7677 (substitua o IP na URL pelo seu IP):

http://192.168.1.120:7767

Faça login com o usuário admin e sua senha (a que você definiu no arquivo de configuração admin.cfg).

A página de login do Shinken

Painel do Shinken no Webui2.

O painel de monitoramento do Shinken

Nossos 2 servidores estão monitorados com Shinken.

Ambos os servidores estão monitorados com Shinken

Liste todos os serviços que estão sendo monitorados com linux-snmp.

Serviços Monitorados

Status de todos os hosts e serviços.

O status de todos os hosts

Passo 6 - Problemas Comuns com Shinken

- Problemas com o servidor NTP

Quando você recebe este erro com NTP.

TimeSync - CRITICAL ( NTP CRITICAL: No response from the NTP server)  
TimeSync - CRITICAL ( NTP CRITICAL: Offset unknown )

Para resolver esse problema, instale ntp em todos os hosts Linux.

sudo apt-get install ntp ntpdate

Edite a configuração do ntp:

vim /etc/ntp.conf

Comente todos os pools e substitua por:

#pool 0.ubuntu.pool.ntp.org iburst  
#pool 1.ubuntu.pool.ntp.org iburst  
#pool 2.ubuntu.pool.ntp.org iburst  
#pool 3.ubuntu.pool.ntp.org iburst  
   
pool 0.id.pool.ntp.org  
pool 1.asia.pool.ntp.org  
pool 0.asia.pool.ntp.org

Em seguida, adicione uma nova linha dentro de restrict:

# Usuários locais podem interrogar o servidor ntp mais de perto.  
restrict 127.0.0.1  
restrict 192.168.1.120 #endereço IP do servidor shinken  
restrict ::1

NOTA: 192.168.1.120 é o endereço IP do servidor Shinken.

Salve e saia.

Inicie o ntp e verifique o painel do Shinken:

tnpd

- Problema check_netint.pl Não Encontrado

Baixe o código-fonte do repositório do github para o diretório lib do shinken:

cd /var/lib/shinken/libexec/  
wget https://raw.githubusercontent.com/Sysnove/shinken-plugins/master/check_netint.pl  
chmod +x check_netint.pl  
chown shinken:shinken check_netint.pl

- Problema com NetworkUsage

Há uma mensagem de erro:

ERROR : Unknown interface eth\d+

Verifique sua interface de rede e edite o template linux-snmp.

No meu servidor Ubuntu, a interface de rede é ‘enp0s8’, não eth0, então eu recebi esse erro.

Edite os pacotes de template linux-snmp com vim:

vim /etc/shinken/packs/linux-snmp/templates.cfg

Adicione a interface de rede à linha 24:

_NET_IFACES         eth\d+|em\d+|enp0s8

Salve e saia.

Referências

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.