Monitoramento · 21 min read · Nov 18, 2025
Como Instalar a Ferramenta de Monitoramento Icinga 2 no Debian 9.2
Neste guia, discutiremos como instalar e configurar a versão mais recente da ferramenta de monitoramento web Icinga 2 na versão Debian 9.2, a fim de monitorar todos os dispositivos importantes da infraestrutura de rede, como servidores físicos ou virtuais ou VMs, roteadores, switches, appliances de firewall e outros dispositivos IoT de rede. Ele também pode monitorar o estado dos protocolos de rede, como HTTP, FTP, SMTP, IMAP ou outros serviços de rede, recursos de hosts, sensores físicos, bem como software, carga da CPU, memória, espaço em disco etc. e quase todos os dispositivos de rede interconectados via ICMP ou solicitações de ping.
Icinga, originalmente um fork do sistema de monitoramento Nagios, é uma aplicação de monitoramento de rede moderna e de código aberto, escrita em PHP e amplamente implantada em Linux sob componentes Apache/Nginx, PHP e MySQL/MariaDB, também conhecidos como pilhas LAMP ou LEMP. O Icinga 2 pode ser configurado para notificar administradores de sistema ou rede via e-mail, SMS, chat ou outros tipos de alertas sobre interrupções de rede, sistemas, serviços ou outros problemas relacionados e também pode gerar gráficos sobre o tempo de inatividade ou desempenho da rede.
Requisitos
- Debian 9.2 instalado em uma máquina bare-metal ou em um servidor privado virtual.
- Uma das interfaces de rede do servidor configurada com um endereço IP estático.
- Acesso direto à conta root via console ou remotamente via serviço SSH ou privilégios sudo root em uma conta local ou remota.
- Um nome de domínio, privado ou público, dependendo da sua implantação, com os registros DNS apropriados configurados para serviços web.
- Um serviço de e-mail devidamente configurado em suas instalações para enviar alertas por e-mail.
Configuração Inicial
Antes de começar a instalar e configurar a ferramenta de monitoramento web Icinga 2 em seu próprio servidor, primeiro assegure-se de que o sistema atende a todos os requisitos de software para compilar e instalar a aplicação. No primeiro passo, atualize os repositórios do sistema e os pacotes de software emitindo o comando abaixo.
apt updateapt upgradeNo próximo passo, execute o seguinte comando para instalar algumas utilidades necessárias que serão usadas para gerenciar seu sistema a partir da linha de comando.
apt install wget bash-completion unzipEm seguida, configure o nome do host para seu sistema executando o seguinte comando. Substitua sua variável de nome de host conforme necessário.
hostnamectl set-hostname icingaVerifique o nome do host da máquina e o arquivo hosts emitindo os comandos abaixo.
hostnamectlcat /etc/hostnamehostname –s
Finalmente, reinicie o servidor Debian para aplicar as atualizações do kernel e as alterações no nome do host corretamente.
init 6O Icinga 2 é uma aplicação de monitoramento de rede que pode ser configurada a partir da web e sua funcionalidade é baseada principalmente na linguagem de programação do lado do servidor PHP. Para executar os scripts de arquivo PHP da aplicação, um servidor web, como o servidor HTTP Apache, e um gateway de processamento PHP devem ser instalados e operacionais no sistema. Para instalar o servidor web Apache e o interpretador PHP juntamente com todos os módulos PHP necessários que o Icinga precisa para funcionar corretamente, emita o seguinte comando no console do seu servidor.
apt install apache2 libapache2-mod-php7.0 php7.0-xml php7.0-opcache php7.0-xml php7.0-mbstring php7.0-json php7.0-curl php7.0-ldap php7.0-cli php7.0-gd php7.0-intl php7.0-readlineApós a instalação do Apache e do PHP, teste se o servidor web está ativo e escutando por conexões de rede na porta 80 emitindo o seguinte comando com privilégios de root.
netstat –tlpnCaso a utilidade de rede netstat não esteja instalada por padrão no seu sistema Debian, execute o comando abaixo para instalá-la.
apt install net-toolsInspecionando a saída do comando netstat, você pode ver que o servidor web Apache está escutando por conexões de rede na porta 80. Para a mesma tarefa, você também pode usar o comando ss, que é instalado automaticamente por padrão no Debian 9.
ss- tulpnCaso você tenha um firewall habilitado em seu sistema, como o aplicativo de firewall UFW, você deve adicionar uma nova regra para permitir que o tráfego HTTP passe pelo firewall emitindo o seguinte comando.
ufw allow WWWou
ufw allow 80/tcpSe você estiver usando regras brutas do iptables para gerenciar regras de firewall em seu servidor Debian, adicione a seguinte regra para permitir o tráfego de entrada na porta 80 no firewall para que os visitantes possam navegar na interface web do Icinga2.
apt-get install -y iptables-persistentiptables -I INPUT -p tcp --destination-port 80 -j ACCEPTsystemctl iptables-persistent savesystemctl iptables-persistent reloadEm seguida, habilite e aplique os seguintes módulos do Apache que serão usados para redirecionar conexões HTTP para HTTPS, emitindo o comando abaixo.
a2enmod rewritesystemctl restart apache2Finalmente, teste se a página web padrão do servidor Apache pode ser exibida nos navegadores de seus clientes visitando o endereço IP da sua máquina Debian ou seu nome de domínio ou FQDN do servidor via protocolo HTTP. Se você não souber o endereço IP da sua máquina, execute os comandos ifconfig ou ip a para revelar o endereço IP do seu servidor. A página padrão do Apache para Debian será exibida em seu navegador, como mostrado na captura de tela abaixo.

Para acessar a aplicação de monitoramento Icinga 2 via protocolo HTTPS que irá proteger o tráfego para seus clientes, emita o seguinte comando para habilitar o módulo SSL do servidor web Apache e o arquivo de configuração do site SSL. Além disso, habilite o módulo de reescrita do Apache para forçar os usuários a visitar a interface via HTTPS.
a2enmod ssl rewritea2ensite default-ssl.confEm seguida, abra o arquivo de configuração do site SSL padrão do Apache com um editor de texto e habilite as regras de reescrita de URL adicionando as seguintes linhas de código após a diretiva DocumentRoot, como mostrado no exemplo abaixo:
nano /etc/apache2/sites-enabled/default-ssl.confTrecho do arquivo de configuração do site SSL:
Options +FollowSymlinks
AllowOverride All
Require all granted
Além disso, faça a seguinte alteração na linha VirtualHost para que fique como mostrado no trecho abaixo:

Feche o arquivo TLS do Apache e abra o arquivo /etc/apache2/sites-enabled/000-default.conf para edição e adicione as mesmas regras de reescrita de URL que para o arquivo de configuração SSL. Insira as linhas de código após a declaração DocumentRoot como mostrado no exemplo abaixo.
Options +FollowSymlinks
AllowOverride All
Require all granted

Finalmente, reinicie o daemon do Apache para aplicar todas as regras configuradas até agora e visite seu domínio via protocolo HTTP. Como você está usando o par de certificados autoassinados emitidos pelo Apache na instalação, um aviso de erro deve ser exibido no navegador, como mostrado na captura de tela abaixo.
systemctl restart apache2
Aceite o aviso para continuar e ser redirecionado para a página web padrão do Apache via protocolo HTTPS. A seguinte página será exibida em seu navegador.

Caso o aplicativo de firewall UFW bloqueie conexões de rede de entrada para a porta HTTPS, você deve adicionar uma nova regra para permitir que o tráfego HTTPS passe pelo firewall emitindo o seguinte comando.
ufw allow 'WWW Full'ou
ufw allow 443/tcpSe iptables for o aplicativo de firewall padrão instalado para proteger seu sistema Debian em nível de rede, adicione a seguinte regra para permitir o tráfego de entrada na porta 443 no firewall para que os visitantes possam navegar em seu nome de domínio.
iptables -I INPUT -p tcp --destination-port 443 -j ACCEPTsystemctl iptables-persistent savesystemctl iptables-persistent reloadNo próximo passo, precisamos fazer algumas alterações adicionais no arquivo de configuração padrão do PHP para garantir que as seguintes variáveis PHP estejam habilitadas e a configuração do fuso horário do PHP esteja corretamente configurada e corresponda à sua localização geográfica do sistema. Abra o arquivo /etc/php/7.0/apache2/php.ini para edição e assegure-se de que as seguintes linhas estejam configuradas da seguinte forma. Além disso, inicialmente, faça um backup do arquivo de configuração do PHP.
cp /etc/php/7.0/apache2/php.ini{,.backup}nano /etc/php/7.0/apache2/php.iniPesquise, edite e altere as seguintes variáveis no arquivo de configuração php.ini:
php_value max_execution_time 300
php_value memory_limit 128M
php_value max_input_time 300
date.timezone = Europe/LondonSubstitua a variável time.zone conforme necessário para o seu horário físico consultando a lista de fusos horários fornecida pela documentação do PHP no seguinte link http://php.net/manual/en/timezones.php
Se você deseja aumentar a velocidade de carregamento das páginas do seu site via plugin OPCache disponível para PHP7, adicione as seguintes configurações do OPCache na parte inferior do arquivo de configuração do interpretador PHP, conforme detalhado abaixo:
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1Feche o arquivo de configuração php.ini e verifique se as variáveis foram corretamente adicionadas emitindo o comando abaixo.
tail /etc/php/7.0/apache2/php.iniApós ter feito as alterações explicadas acima, reinicie o daemon do apache para aplicar as novas alterações emitindo o seguinte comando.
systemctl restart apache2Finalmente, crie um arquivo de informações PHP executando o seguinte comando e verifique se o fuso horário do PHP foi corretamente configurado visitando o arquivo de script de informações PHP a partir de um navegador no seguinte URL, conforme ilustrado na imagem abaixo. Role para baixo até a configuração date para verificar a configuração do fuso horário do PHP.
echo ''| tee /var/www/html/info.php
O Icinga 2 armazena usuários, contatos e outros dados coletados em um banco de dados RDBMS específico, como MySQL, SQLite ou PostgreSQL. Neste guia, configuraremos o Icinga com o banco de dados MariaDB, um fork do banco de dados MySQL, como backend. Emita o comando abaixo para instalar o banco de dados MariaDB e o módulo PHP necessário para acessar o banco de dados mysql.
apt install mariadb-server mariadb-client php7.0-mysqlApós instalar o MariaDB, verifique se o daemon está em execução e escutando por conexões no localhost, porta 3306, executando o comando netstat ou ss.
netstat –tlpn | grep mysqlEm seguida, faça login no console do MySQL e proteja a conta root do MariaDB emitindo os seguintes comandos.
mysql -h localhostuse mysql;
update user set plugin='' where user='root';
flush privileges;
exitAgora, vamos proteger o MariaDB executando o script mysql_secure_installation fornecido pelos pacotes de instalação dos repositórios Debian. Ao executar, o script fará uma série de perguntas projetadas para proteger o banco de dados MariaDB, como: alterar a senha do root do MySQL, remover usuários anônimos, desabilitar logins remotos do root e excluir o banco de dados de teste. Execute o script emitindo o comando abaixo e assegure-se de digitar sim para todas as perguntas feitas a fim de proteger totalmente o daemon do MySQL. Use a saída do script abaixo como um guia.
sudo mysql_secure_installationNOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!In order to log into MariaDB to secure it, we'll need the currentpassword for the root user. If you've just installed MariaDB, andyou haven't set the root password yet, the password will be blank,so you should just press enter here.Enter current password for root (enter for none):OK, successfully used password, moving on...Setting the root password ensures that nobody can log into the MariaDBroot user without the proper authorisation.You already have a root password set, so you can safely answer 'n'.Change the root password? [Y/n] yNew password:Re-enter new password:Password updated successfully!Reloading privilege tables.. ... Success!By default, a MariaDB installation has an anonymous user, allowing anyoneto log into MariaDB without having to have a user account created forthem. This is intended only for testing, and to make the installationgo a bit smoother. You should remove them before moving into aproduction environment.Remove anonymous users? [Y/n] y ... Success!Normally, root should only be allowed to connect from 'localhost'. Thisensures that someone cannot guess at the root password from the network.Disallow root login remotely? [Y/n] y ... Success!By default, MariaDB comes with a database named 'test' that anyone canaccess. This is also intended only for testing, and should be removedbefore moving into a production environment.Remove test database and access to it? [Y/n] y - Dropping test database... ... Success! - Removing privileges on test database... ... Success!Reloading the privilege tables will ensure that all changes made so farwill take effect immediately.Reload privilege tables now? [Y/n] y ... Success!Cleaning up...All done! If you've completed all of the above steps, your MariaDBinstallation should now be secure.Thanks for using MariaDB!Para testar a segurança do MariaDB, tente fazer login no banco de dados a partir do console sem senha root. O acesso ao banco de dados deve ser negado se nenhuma senha for fornecida para a conta root. Se a senha for fornecida, o processo de login deve ser concedido ao console do MySQL, como mostrado na captura de tela abaixo.
mysql -h localhost -u rootmysql -h localhost -u root –p
Em seguida, faça login no console do banco de dados MariaDB e, primeiro, crie um banco de dados que será usado pela aplicação Icinga2 e um usuário com uma senha que será usada para gerenciar esse banco de dados, emitindo os seguintes comandos. Substitua o nome do banco de dados, usuário e senha conforme necessário.
mysql –u root -pcreate database icingadb;
grant all privileges on icingadb.* to 'icinga_user'@'localhost' identified by 'icinga_pass';
flush privileges
exit
Em seguida, crie um segundo banco de dados MySQL que será usado para armazenar usuários da interface web do Icinga2, grupos e outros dados personalizados da interface web, emitindo os seguintes comandos. Além disso, assim como no banco de dados acima, certifique-se de substituir o nome do banco de dados e as credenciais conforme necessário e escolha uma senha forte para o usuário do banco de dados.
mysql –u root –pcreate database icinga_users;
grant all privileges on icinga_users.* to 'icinga_user'@'localhost' identified by 'icinga_pass';
flush privileges
exit
Para aplicar todas as alterações feitas até agora, reinicie os daemons do MySQL e do Apache e verifique se os daemons estão em execução emitindo os seguintes comandos.
systemctl restart mysql apache2systemctl status mysql apache2Instalar Icinga 2
Após atender a todos os requisitos do sistema para instalar nossa aplicação de monitoramento web, prossiga com a instalação da aplicação juntamente com o módulo MySQL, necessário para acessar o banco de dados MySQL, emitindo o comando abaixo. O Icinga 2 possui pacotes binários pré-compilados oferecidos pelos repositórios Debian 9. A instalação será realizada via gerenciador de pacotes apt do Debian 9.
apt install icinga2 icinga2-ido-mysqlDurante a instalação dos binários pré-compilados do Icinga2 a partir dos repositórios Debian 9, uma série de prompts aparecerá na sua tela para configurar a aplicação. No primeiro prompt, você será perguntado se deseja configurar e habilitar o Icinga 2 para usar o módulo MySQL. Selecione Sim no prompt e pressione a tecla [enter] para continuar, como ilustrado na imagem abaixo.

No próximo prompt, você será perguntado se deseja configurar o banco de dados para icinga2-ido-mysql com a opção dbconfig-common. Escolha Não no prompt e pressione a tecla [enter] para finalizar a instalação do Icinga 2.

Após a instalação do Icinga 2, inicie o daemon do Icinga 2 e verifique o status do serviço executando os seguintes comandos.
systemctl start icinga2.servicesystemctl status icinga2.serviceNo próximo passo, instale os pacotes da interface web do Icinga 2 e da utilidade de linha de comando do Debian 9 com a ajuda do comando abaixo.
apt install icingaweb2 icingacliAntes de começar a configurar o Icinga 2 pela web, reinicie o daemon do Icinga 2 para captar todas as alterações e verifique o status da aplicação emitindo o comando abaixo.
systemctl restart icinga2.servicesystemctl status icinga2.serviceEm seguida, remova o arquivo index.html padrão instalado pelo servidor web Apache no caminho do webroot e também exclua o arquivo info.php criado anteriormente.
rm /var/www/html/index.htmlrm /var/www/html/info.phpAgora, instale o esquema MySQL para o banco de dados Icinga executando o seguinte comando. O esquema do banco de dados MySQL está localizado no diretório /usr/share/icinga2-ido-mysql/schema/.
mysql -u root icingadb -p < /usr/share/icinga2-ido-mysql/schema/mysql.sqlPara realizar a instalação do Icinga 2 pela web, gere um token de instalação com o seguinte comando. Certifique-se de anotar esse token, pois o escreveremos mais tarde na interface web quando solicitado.
icingacli setup token create
Caso você não consiga encontrar esse token mais tarde, você pode executar o comando abaixo para mostrar o token gerado.
icingacli setup token show
Agora prossiga com o processo de instalação da interface web do Icinga2 abrindo um navegador e navegando até o endereço IP do seu servidor ou nome de domínio via protocolo HTTP para o seguinte URL.
http://your_domain.tld/icingaweb2/setup
Na primeira tela de instalação, você será solicitado a escrever o token gerado anteriormente para iniciar o processo de instalação, como mostrado na captura de tela abaixo. Após adicionar seu token, pressione o botão Avançar para continuar com o processo de instalação.

Na próxima tela de instalação, você será solicitado a habilitar alguns módulos para a instalação web do Icinga 2. Selecione os módulos Doc e Monitoring e pressione o botão Avançar para continuar, como ilustrado na imagem abaixo.

Em seguida, o instalador web do Icinga2 realizará uma série de verificações de sistema e módulos PHP para detectar se todos os requisitos estão atendidos para continuar com o processo de instalação. Role para baixo na lista de todos os módulos PHP necessários que estão instalados e configurados corretamente e pressione o botão Avançar para passar para a próxima seção da instalação, como mostrado nas imagens abaixo.


Na próxima tela, escolha Banco de Dados como método de backend de autenticação para o Icinga Web 2 e pressione o botão Avançar para continuar.

No próximo passo, adicione o nome do banco de dados MySQL do Icinga 2 e as credenciais de acesso para esse banco de dados. Este banco de dados será usado para armazenar usuários e grupos da interface web do Icinga 2. Use as informações do banco de dados para o segundo banco de dados criado anteriormente. Adicione icingaweb_db como um nome para este recurso e deixe as variáveis Host, Porta e Conjunto de Caracteres como padrão. Não marque as opções Persistente e SSL e pressione o botão Validar Configuração para validar a conexão do banco de dados, como mostrado na imagem abaixo. Quando terminar, pressione o botão Avançar para passar para a próxima seção do instalador.

Agora defina um nome para o backend de autenticação do banco de dados e pressione o botão Avançar para continuar, como ilustrado na captura de tela abaixo.

Na próxima tela, forneça um nome de usuário administrativo para gerenciar a interface web do Icinga2 e escolha uma senha forte para esta conta. Quando terminar, pressione o botão Avançar para passar para a próxima tela de instalação.

Configure a aplicação Icinga e a configuração de registro com as seguintes configurações e, quando terminar, pressione o botão Avançar para continuar.
- Marque Mostrar Stacktraces
- Tipo de Armazenamento = Banco de Dados
- Tipo de Registro = Arquivo
- Nível de Registro = Erro
- Caminho do arquivo = /var/log/icingaweb2/icingaweb2.log

Na próxima tela, uma mensagem informará que o Icinga Web2 foi configurado com sucesso e um relatório detalhado exibirá todas as configurações feitas até agora. Revise o relatório e pressione o botão Avançar para continuar para a próxima seção da instalação.

Pressione o botão Avançar para prosseguir com a configuração do módulo de monitoramento do Icinga 2, como mostrado na imagem abaixo.

Na próxima tela, adicione um nome para o Backend do Icinga2, selecione IDO como tipo de backend e pressione o botão Avançar para continuar.

Volte ao console do servidor, abra e edite o arquivo de configuração IDO do MySQL do Icinga e adicione as credenciais do banco de dados Icinga (as informações do primeiro banco de dados), como mostrado no exemplo abaixo.
nano /etc/icinga2/features-enabled/ido-mysql.confTrecho do arquivo ido-mysql.conf:
library "db_ido_mysql"
object IdoMysqlConnection "ido-mysql" {
user = "icinga_user",
password = "icinga_pass",
host = "localhost",
database = "icingadb"
}
Salve o arquivo e reinicie o daemon do Icinga2 para aplicar as configurações emitindo o seguinte comando. Depois, volte à interface web do Icinga e continue o processo de instalação.
systemctl restart icinga2.serviceAdicione as informações do banco de dados Icinga para configurar o ambiente de recursos IDO. Use as informações do banco de dados para o primeiro banco de dados criado, como ilustrado na imagem abaixo. Após terminar de editar as informações do banco de dados, pressione o botão Validar Configuração para validar o Recurso IDO de Monitoramento do Icinga e pressione o botão Avançar para passar para a próxima tela de instalação.

Configure o Transporte de Comando do Icinga com as seguintes configurações e pressione o botão Avançar para continuar.
- Nome do Transporte = icinga2
- Tipo de Transporte = Arquivo de Comando Local
- Arquivo de Comando = /var/run/icinga2/cmd/icinga2.cmd

Na próxima tela, deixe as variáveis padrão configuradas para segurança de monitoramento, como ilustrado na imagem abaixo, e pressione o botão Avançar para continuar.

Na próxima tela, uma nova mensagem informará que o módulo de Monitoramento do Icinga2 foi configurado com sucesso. Revise o relatório exibido para verificar se tudo está configurado corretamente e pressione o botão Finalizar para concluir a instalação.

Após o processo de instalação ser concluído com sucesso, uma mensagem de congratulação informará que o Icinga Web 2 foi instalado com sucesso. Pressione o link Login para ser redirecionado para a página de login do Icinga2.

Faça login no Icinga Web 2 com as credenciais configuradas durante o processo de instalação e você será direcionado ao Painel do Icinga Web 2, onde verá uma lista dos serviços monitorados atuais e dos recursos do sistema pertencentes ao seu servidor.


Finalmente, faça login novamente na linha de comando do servidor e execute os seguintes comandos para garantir que os logs do Icinga Web 2 sejam criados.
mkdir -p /var/log/icingaweb2/chgrp -R icingaweb2 /var/log/icingaweb2/chmod -R 775 /var/log/icingaweb2/Para forçar os visitantes a navegar na interface do Icinga Web 2 via protocolo HTTPS, crie um novo arquivo .htaccess no caminho do documento raiz do seu servidor web com o seguinte conteúdo.
nano /var/www/html/.htaccessTrecho do arquivo .htaccess:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
RewriteEngine on
Options -Indexes Isso é tudo! Você instalou e configurou com sucesso a aplicação de monitoramento de rede Icinga 2 no Debian 9.2. No entanto, como o servidor HTTP Apache usa certificados autoassinados para criptografar o tráfego entre o servidor e o navegador do cliente, uma mensagem de aviso sempre será gerada e exibida em seu navegador toda vez que você acessar seu domínio. Nesse caso, você deve comprar um certificado emitido por uma Autoridade Certificadora confiável ou obter um par de certificados gratuitos da Let’s Encrypt CA.
Para outras configurações personalizadas relacionadas ao Icinga 2, visite a página de documentação no seguinte endereço: https://www.icinga.com/docs
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.