Monitoramento · 27 min read · Nov 22, 2025
Como Instalar o Software de Monitoramento Icinga 2 no Debian 12

Icinga 2 é um sistema de monitoramento de código aberto que verifica a disponibilidade de recursos de rede, notifica os usuários sobre interrupções e gera dados de desempenho para relatórios. Você pode monitorar serviços de rede (SMTP, POP3, HTTP, NNTP, ping), recursos de host (uso de CPU, uso de disco) e componentes de rede (switches, roteadores, sensores de temperatura e umidade) usando o Icinga2. Ele pode ser integrado com plugins do Nagios.
No tutorial a seguir, você aprenderá como instalar o Icinga2 em um servidor Debian 12 e conectá-lo a um nó cliente. Em vez do servidor Apache padrão, usaremos o Nginx para executar o Icinga2 Web.
Pré-requisitos
- Duas máquinas rodando Debian 12. Uma delas atuará como servidor mestre e a outra como cliente para monitoramento.
- Um usuário não-root com privilégios sudo em ambos os servidores.
- Um nome de domínio totalmente qualificado (FQDN) para o servidor mestre,
icinga.example.come o nó cliente,client.example.com. - Certifique-se de que tudo esteja atualizado.
$ sudo apt update && sudo apt upgrade - Alguns pacotes que seu sistema precisa.
$ sudo apt install wget curl nano software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release debian-archive-keyring ufw unzip -yAlguns desses pacotes podem já estar instalados em seu sistema.
Etapa 1 - Configurar o Firewall no servidor mestre
O primeiro passo é configurar o firewall. O Debian vem com o ufw (Uncomplicated Firewall) por padrão.
Verifique se o firewall está em execução.
$ sudo ufw statusVocê deve obter a seguinte saída.
Status: inactivePermita a porta SSH para que o firewall não interrompa a conexão atual ao ativá-lo.
$ sudo ufw allow OpenSSHPermita a porta 5665, que é necessária para o cliente Icinga2 se conectar ao servidor.
$ sudo ufw allow 5665Permita também as portas HTTP e HTTPS.
$ sudo ufw allow http
$ sudo ufw allow httpsAtive o Firewall
$ sudo ufw enable
Comando pode interromper conexões ssh existentes. Prosseguir com a operação (y|n)? y
Firewall está ativo e habilitado na inicialização do sistemaVerifique o status do firewall novamente.
$ sudo ufw statusVocê deve ver uma saída semelhante.
Status: active
Para Ação De
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
5665 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
5665 (v6) ALLOW Anywhere (v6)Etapa 2 - Instalar o Servidor MariaDB
O Debian 12 vem com a versão mais recente do MariaDB. Você pode instalá-lo com um único comando.
$ sudo apt install mariadb-serverVerifique a versão do MySQL.
$ mysql --version
mysql Ver 15.1 Distrib 10.11.4-MariaDB, for debian-linux-gnu (x86_64) using EditLine wrapperExecute o script de instalação segura do MariaDB.
$ sudo mariadb-secure-installationVocê será solicitado a fornecer a senha root. Pressione Enter porque ainda não definimos nenhuma senha para isso.
NOTA: É RECOMENDADO EXECUTAR TODAS AS PARTES DESTE SCRIPT PARA TODOS OS SERVIDORES MariaDB EM USO DE PRODUÇÃO! POR FAVOR, LEIA CADA ETAPA CUIDADOSAMENTE!
Para fazer login no MariaDB e protegê-lo, precisaremos da senha atual para o usuário root. Se você acabou de instalar o MariaDB e não definiu a senha root ainda, deve apenas pressionar enter aqui.
Digite a senha atual para root (pressione enter para nenhum):Em seguida, você será perguntado se deseja mudar para o método de autenticação de socket Unix. O plugin unix_socket permite que você use suas credenciais do sistema operacional para se conectar ao servidor MariaDB. Como você já tem uma conta root protegida, digite n para prosseguir.
OK, senha usada com sucesso, prosseguindo...
Definir a senha root ou usar o unix_socket garante que ninguém possa fazer login no usuário root do MariaDB sem a autorização adequada.
Você já tem sua conta root protegida, então pode responder 'n' com segurança.
Mudar para autenticação unix_socket [Y/n] nEm seguida, você será perguntado se deseja alterar sua senha root. No Debian 12, a senha root está intimamente ligada à manutenção automatizada do sistema, portanto, deve ser deixada em paz. Digite n para prosseguir.
... pulando.
Você já tem sua conta root protegida, então pode responder 'n' com segurança.
Alterar a senha root? [Y/n] nEm seguida, você será perguntado sobre certas questões para melhorar a segurança do MariaDB. Digite Y para remover usuários anônimos, desabilitar logins remotos do root, remover o banco de dados de teste e recarregar as tabelas de privilégios.
... pulando.
Por padrão, uma instalação do MariaDB tem um usuário anônimo, permitindo que qualquer pessoa faça login no MariaDB sem ter uma conta de usuário criada para ela. Isso é destinado apenas para testes e para facilitar a instalação. Você deve removê-los antes de passar para um ambiente de produção.
Remover usuários anônimos? [Y/n] y
... Sucesso!
Normalmente, o root deve ser permitido apenas conectar-se de 'localhost'. Isso garante que alguém não possa adivinhar a senha root pela rede.
Desabilitar login remoto do root? [Y/n] y
... Sucesso!
Por padrão, o MariaDB vem com um banco de dados chamado 'teste' que qualquer um pode acessar. Isso também é destinado apenas para testes e deve ser removido antes de passar para um ambiente de produção.
Remover banco de dados de teste e acesso a ele? [Y/n] y
- Removendo banco de dados de teste...
... Sucesso!
- Removendo privilégios no banco de dados de teste...
... Sucesso!
Recarregar as tabelas de privilégios garantirá que todas as alterações feitas até agora entrem em vigor imediatamente.
Recarregar tabelas de privilégios agora? [Y/n] y
... Sucesso!
Limpando...
Tudo pronto! Se você completou todas as etapas acima, sua instalação do MariaDB deve agora estar segura.
Obrigado por usar o MariaDB!Você pode entrar no shell do MariaDB digitando sudo mysql ou sudo mariadb na linha de comando.
Etapa 3 - Configurar o MariaDB
Faça login no shell do MariaDB. Digite sua senha root quando solicitado.
$ sudo mysqlCrie o banco de dados Icinga.
MariaDB [(none)]> CREATE DATABASE icinga2;Crie a conta de usuário SQL para o Icinga2. Não altere o banco de dados e o nome de usuário porque eles já estão definidos por padrão. Se você quiser alterá-los, precisará realizar algumas etapas extras ao instalar o driver MySQL na Etapa 5. Digite a senha e você receberá um erro e, em seguida, será solicitado a reconfigurar onde poderá especificar seu nome de banco de dados e usuários personalizados.
MariaDB [(none)]> CREATE USER 'icinga2'@'localhost' IDENTIFIED BY 'Your_password2';Conceda todos os privilégios no banco de dados ao usuário.
MariaDB [(none)]> GRANT ALL PRIVILEGES ON icinga2.* TO 'icinga2'@'localhost';Como não estamos modificando o usuário root, você deve criar outro usuário SQL para realizar tarefas administrativas que utilizem autenticação por senha. Escolha uma senha forte para este.
MariaDB> GRANT ALL ON *.* TO 'navjot'@'localhost' IDENTIFIED BY 'Yourpassword32!' WITH GRANT OPTION;Atualize os privilégios do usuário.
MariaDB [(none)]> FLUSH PRIVILEGES;Saia do shell.
MariaDB [(none)]> exitEtapa 4 - Instalar o Icinga2 e os plugins de monitoramento no Servidor Mestre
Usaremos o repositório oficial do Icinga2 para instalação. Baixe e importe a chave GPG do Icinga2.
$ wget -O - https://packages.icinga.com/icinga.key | sudo gpg --dearmor -o /usr/share/keyrings/icinga-archive-keyring.gpgExecute os seguintes comandos para criar e adicionar as informações do repositório do Icinga2 à lista de fontes do APT.
$ echo "deb [signed-by=/usr/share/keyrings/icinga-archive-keyring.gpg] https://packages.icinga.com/debian icinga-`lsb_release -cs` main" | sudo tee /etc/apt/sources.list.d/$(lsb_release -cs)-icinga.list
$ echo "deb-src [signed-by=/usr/share/keyrings/icinga-archive-keyring.gpg] http://packages.icinga.com/debian icinga-`lsb_release -cs` main" | sudo tee -a /etc/apt/sources.list.d/$(lsb_release -cs)-icinga.listAtualize a lista de repositórios do sistema.
$ sudo apt updateInstale o Icinga2, Icingacli e os plugins de monitoramento.
$ sudo apt install icinga2 monitoring-plugins -yEtapa 5 - Instalar o driver IDO MySQL no Servidor Mestre
Para o Icinga2 funcionar, ele precisa de um banco de dados. Para isso, precisamos instalar o driver IDO MySQL e configurar a conexão do banco de dados. Execute o seguinte comando para instalar o driver MySQL.
$ sudo apt install -y icinga2-ido-mysqlEm seguida, você será solicitado a habilitar o recurso ido-mysql. Selecione Sim para continuar.

Em seguida, você será solicitado a configurar o driver e criar um banco de dados usando a ferramenta dbconfig-common. Selecione Sim para continuar.
Em seguida, você será solicitado a fornecer a senha MySQL para o banco de dados icinga2. Digite a senha configurada na etapa 3 para continuar.

Você será solicitado a confirmar a senha novamente.

Você pode verificar os detalhes do banco de dados no arquivo /etc/icinga2/features-available/ido-mysql.conf.
$ sudo cat /etc/icinga2/features-available/ido-mysql.conf
/**
* A biblioteca db_ido_mysql implementa a funcionalidade IDO
* para MySQL.
*/
library "db_ido_mysql"
object IdoMysqlConnection "ido-mysql" {
user = "icinga2",
password = "Your_password2",
host = "localhost",
database = "icinga2"
}Habilite o recurso ido-mysql.
$ sudo icinga2 feature enable ido-mysql
Habilitando o recurso ido-mysql. Certifique-se de reiniciar o Icinga 2 para que essas alterações tenham efeito.Reinicie o serviço Icinga2.
$ sudo systemctl restart icinga2Verifique o status do serviço.
$ sudo systemctl status icinga2
? icinga2.service - Sistema de monitoramento de host/serviço/rede Icinga
Carregado: carregado (/lib/systemd/system/icinga2.service; habilitado; preset: habilitado)
Drop-In: /etc/systemd/system/icinga2.service.d
??limits.conf
Ativo: ativo (em execução) desde seg 2024-01-08 07:35:29 UTC; 4s atrás
Processo: 15404 ExecStartPre=/usr/lib/icinga2/prepare-dirs /etc/default/icinga2 (código=exited, status=0/SUCCESS)
PID Principal: 15411 (icinga2)
Status: "Inicialização concluída."
Tarefas: 14
Memória: 13.6M
CPU: 858ms
CGroup: /system.slice/icinga2.service
??15411 /usr/lib/x86_64-linux-gnu/icinga2/sbin/icinga2 --no-stack-rlimit daemon --close-stdio -e /var/log/icinga2/error.log
??15433 /usr/lib/x86_64-linux-gnu/icinga2/sbin/icinga2 --no-stack-rlimit daemon --close-stdio -e /var/log/icinga2/error.log
??15438 /usr/lib/x86_64-linux-gnu/icinga2/sbin/icinga2 --no-stack-rlimit daemon --close-stdio -e /var/log/icinga2/error.logEtapa 6 - Configurar a API do Icinga2
Para gerenciar e configurar o Icinga2 através do HTTP, você precisa configurar a API do Icinga2. Execute o seguinte comando para habilitar a API do Icinga2, gerar certificados TLS para o Icinga2 e atualizar as configurações do Icinga2.
$ sudo icinga2 api setupVocê receberá uma saída semelhante.
information/cli: Gerando nova CA.
information/base: Escrevendo chave privada em '/var/lib/icinga2/ca//ca.key'.
information/base: Escrevendo certificado X509 em '/var/lib/icinga2/ca//ca.crt'.
information/cli: Gerando nova CSR em '/var/lib/icinga2/certs//icinga.example.com.csr'.
information/base: Escrevendo chave privada em '/var/lib/icinga2/certs//icinga.example.com.key'.
information/base: Escrevendo solicitação de assinatura de certificado em '/var/lib/icinga2/certs//icinga.example.com.csr'.
information/cli: Assinando CSR com CA e escrevendo certificado em '/var/lib/icinga2/certs//icinga.example.com.crt'.
information/pki: Escrevendo certificado no arquivo '/var/lib/icinga2/certs//icinga.example.com.crt'.
information/cli: Copiando certificado CA para '/var/lib/icinga2/certs//ca.crt'.
information/cli: Adicionando novo ApiUser 'root' em '/etc/icinga2/conf.d/api-users.conf'.
information/cli: Lendo '/etc/icinga2/icinga2.conf'.
information/cli: Habilitando o recurso 'api'.
Habilitando recurso api. Certifique-se de reiniciar o Icinga 2 para que essas alterações tenham efeito.
information/cli: Atualizando a constante 'NodeName' em '/etc/icinga2/constants.conf'.
information/cli: Criado arquivo de backup '/etc/icinga2/constants.conf.orig'.
information/cli: Atualizando a constante 'ZoneName' em '/etc/icinga2/constants.conf'.
information/cli: O arquivo de backup '/etc/icinga2/constants.conf.orig' já existe. Pulando backup.
Concluído.
Agora reinicie seu daemon Icinga 2 para finalizar a instalação!O comando acima cria um arquivo /etc/icinga2/conf.d/api-users.conf com o usuário padrão root tendo todas as permissões sobre a API do Icinga2. Precisamos de um novo usuário com as permissões mínimas necessárias pelo Icinga Web.
Abra o arquivo api-users.conf para edição.
$ sudo nano /etc/icinga2/conf.d/api-users.confAdicione o seguinte código ao final do arquivo. Escolha uma senha forte para a API.
/** api para icingaweb2 */
object ApiUser "icingaweb2" {
password = "PassWordApiIcingaWeb2"
permissions = [ "status/query", "actions/*", "objects/modify/*", "objects/query/*" ]
}Anote as credenciais que serão necessárias mais tarde para acessar o site. O servidor API do Icinga2 escuta na porta 5665 por padrão. Reinicie o serviço para que as alterações tenham efeito.
$ sudo systemctl restart icinga2O próximo passo é instalar a interface web do Icinga. Ela vem pré-configurada para o Apache, mas usaremos o servidor Nginx. Portanto, primeiro precisamos instalar o Nginx e os certificados SSL.
Etapa 7 - Instalar Nginx
O Debian 12 vem com uma versão mais antiga do Nginx. Para instalar a versão mais recente, você precisa baixar o repositório oficial do Nginx.
Importe a chave de assinatura do Nginx.
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/nullAdicione o repositório para a versão principal do Nginx.
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.listAtualize os repositórios do sistema.
$ sudo apt updateInstale o Nginx.
$ sudo apt install nginxVerifique a instalação. Em sistemas Debian, o seguinte comando funcionará apenas com sudo.
$ sudo nginx -v
nginx version: nginx/1.25.3Inicie o servidor Nginx.
$ sudo systemctl start nginxVerifique o status do serviço.
$ sudo systemctl status nginx
? nginx.service - nginx - servidor web de alto desempenho
Carregado: carregado (/lib/systemd/system/nginx.service; habilitado; preset: habilitado)
Ativo: ativo (em execução) desde seg 2024-01-08 07:43:24 UTC; 4s atrás
Docs: https://nginx.org/en/docs/
Processo: 16330 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (código=exited, status=0/SUCCESS)
PID Principal: 16331 (nginx)
Tarefas: 3 (limite: 2299)
Memória: 2.9M
CPU: 16ms
CGroup: /system.slice/nginx.service
??16331 "nginx: processo mestre /usr/sbin/nginx -c /etc/nginx/nginx.conf"
??16332 "nginx: processo trabalhador"
??16333 "nginx: processo trabalhador"
Jan 08 07:43:24 icinga systemd[1]: Iniciando nginx.service - nginx - servidor web de alto desempenho...
Jan 08 07:43:24 icinga systemd[1]: Iniciado nginx.service - nginx - servidor web de alto desempenho.Etapa 8 - Instalar SSL
Precisamos instalar o Certbot para gerar o certificado SSL. Você pode instalar o Certbot usando o repositório do Debian ou pegar a versão mais recente usando a ferramenta Snapd. Usaremos a versão Snapd.
O Debian 12 não vem com o Snapd instalado. Instale o pacote Snapd.
$ sudo apt install snapdExecute os seguintes comandos para garantir que sua versão do Snapd esteja atualizada.
$ sudo snap install core && sudo snap refresh coreInstale o Certbot.
$ sudo snap install --classic certbotUse o seguinte comando para garantir que o comando Certbot possa ser executado criando um link simbólico para o diretório /usr/bin.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbotVerifique se o Certbot está funcionando corretamente.
$ certbot --version
certbot 2.8.0Execute o seguinte comando para gerar um Certificado SSL.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d icinga.example.comO comando acima fará o download de um certificado para o diretório /etc/letsencrypt/live/icinga.example.com em seu servidor.
Gere um certificado de grupo Diffie-Hellman.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096Verifique o serviço do agendador de renovação do Certbot.
$ sudo systemctl list-timersVocê encontrará snap.certbot.renew.service como um dos serviços agendados para execução.
PRÓXIMO RESTANTE ÚLTIMO PASSADO UNIDADE ATIVA
-----------------------------------------------------------------------------------------------------------------------------------------
Seg 2024-01-08 09:47:46 UTC 1h 56min restante Dom 2024-01-07 09:47:46 UTC 22h atrás systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Seg 2024-01-08 13:35:00 UTC 5h 43min restante - - snap.certbot.renew.timer snap.certbot.renew.service
Ter 2024-01-09 00:00:00 UTC 16h restante Seg 2024-01-08 00:00:01 UTC 7h atrás dpkg-db-backup.timer dpkg-db-backup.serviceFaça um teste do processo para verificar se a renovação do SSL está funcionando bem.
$ sudo certbot renew --dry-runSe você não ver erros, está tudo pronto. Seu certificado será renovado automaticamente.
Etapa 9 - Configurar Nginx e PHP
Como o Icinga está configurado para o Apache, o pacote PHP-FPM não está instalado por padrão. Você também precisará do módulo PHP Imagick se quiser exportar os gráficos para PDF. Execute o seguinte comando para instalar o PHP-FPM e a biblioteca PHP Imagick.
$ sudo apt install php-fpm php-imagickConfigurar PHP-FPM
Abra o arquivo /etc/php/8.2/fpm/pool.d/www.conf.
$ sudo nano /etc/php/8.2/fpm/pool.d/www.confPrecisamos definir o usuário/grupo Unix dos processos PHP como nginx. Encontre as linhas user=www-data e group=www-data no arquivo e altere-as para nginx.
...
; Usuário/grupo Unix dos processos
; Nota: O usuário é obrigatório. Se o grupo não for definido, o grupo do usuário padrão
; será usado.
user = nginx
group = nginx
...Encontre as linhas listen.owner = www-data e listen.group = www-data no arquivo e altere-as para nginx.
; Defina permissões para o socket unix, se um for usado. No Linux, leitura/escrita
; as permissões devem ser definidas para permitir conexões de um servidor web. Muitos
; sistemas derivados do BSD permitem conexões independentemente das permissões. O proprietário
; e o grupo podem ser especificados pelo nome ou pelos seus IDs numéricos.
; Valores Padrão: usuário e grupo são definidos como o usuário em execução
; modo é definido como 0660
listen.owner = nginx
listen.group = nginxSalve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Reinicie o serviço PHP-FPM.
$ sudo systemctl restart php8.2-fpmConfigurar Nginx
Crie e abra o arquivo /etc/nginx/conf.d/icinga.conf para edição.
$ sudo nano /etc/nginx/conf.d/icinga.confCole o seguinte código nele.
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name icinga.example.com;
access_log /var/log/nginx/icinga.access.log;
error_log /var/log/nginx/icinga.error.log;
# SSL
ssl_certificate /etc/letsencrypt/live/icinga.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/icinga.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/icinga.example.com/chain.pem;
ssl_session_timeout 5m;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
resolver 8.8.8.8;
location ~ ^/index\.php(.*)$ {
# fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/run/php/php8.2-fpm.sock; # Depende da versão do PHP
fastcgi_index index.php;
# try_files $uri =404;
# fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /usr/share/icingaweb2/public/index.php;
fastcgi_param ICINGAWEB_CONFIGDIR /etc/icingaweb2;
fastcgi_param REMOTE_USER $remote_user;
}
location ~ ^/(.*)? {
alias /usr/share/icingaweb2/public;
index index.php;
rewrite ^/$ /dashboard;
try_files $1 $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
return 404;
}
}
# forçar HTTPS
server {
listen 80;
listen [::]:80;
server_name icinga.example.com;
return 301 https://$host$request_uri;
}Observe que o diretório raiz a ser usado na configuração do Nginx é /usr/share/icingaweb2/public.
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado após terminar.
Abra o arquivo /etc/nginx/nginx.conf para edição.
$ sudo nano /etc/nginx/nginx.confAdicione a seguinte linha antes da linha include /etc/nginx/conf.d/*.conf;.
server_names_hash_bucket_size 64;Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Verifique a sintaxe do arquivo de configuração do Nginx.
$ sudo nginx -t
nginx: o arquivo de configuração /etc/nginx/nginx.conf a sintaxe está ok
nginx: o arquivo de configuração /etc/nginx/nginx.conf teste foi bem-sucedidoReinicie o serviço Nginx.
$ sudo systemctl restart nginxEtapa 10 - Preparar Configuração Web
Antes de acessar o Icinga Web, precisamos instalá-lo junto com a ferramenta de linha de comando.
$ sudo apt install icingaweb2 icingacliAdicione o usuário Nginx ao grupo icingaweb2.
$ sudo usermod -aG icingaweb2 nginxDefina as permissões do diretório do Icingaweb para o grupo icingaweb2.
$ sudo icingacli setup config directory --group icingaweb2
Sucesso ao criar o diretório de configuração /etc/icingaweb2Ao usar o Icinga Web, você deve se autenticar usando um token. Gere o token usando o seguinte comando.
$ sudo icingacli setup token create
O token de configuração recém-gerado é: 56951f01f9f77a68Anote o token porque você precisará dele mais tarde. Você pode sempre recuperá-lo mais tarde usando o seguinte comando.
$ sudo icingacli setup token show
O token de configuração atual é: 56951f01f9f77a68O próximo passo é criar um banco de dados e um usuário do banco de dados. Faça login no shell do MariaDB.
$ sudo mysqlCrie o banco de dados Icinga Web.
MariaDB [(none)]> CREATE DATABASE icingaweb2;Crie a conta de usuário SQL para o Icinga Web.
MariaDB [(none)]> CREATE USER 'icingaweb2'@'localhost' IDENTIFIED BY 'Your_password3';Conceda todos os privilégios no banco de dados ao usuário.
MariaDB [(none)]> GRANT ALL PRIVILEGES ON icingaweb2.* TO 'icingaweb2'@'localhost';Atualize os privilégios do usuário.
MariaDB [(none)]> FLUSH PRIVILEGES;Saia do shell.
MariaDB [(none)]> exitReinicie o Nginx e o PHP-FPM para aplicar as alterações de permissão.
$ sudo systemctl restart nginx php8.2-fpmEtapa 11 - Configurar IcingaWeb
Abra a URL https://icinga.example.com/setup em seu navegador e você verá a seguinte tela.

Digite o token gerado na etapa anterior e pressione o botão Próximo para prosseguir.

Na próxima tela, escolha os módulos que deseja instalar e clique em Próximo para prosseguir. O módulo Monitoramento é selecionado para você por padrão. Na próxima página, você verá os requisitos e se eles foram atendidos. Certifique-se de que todos os requisitos estejam marcados em verde.

Clique em Próximo para prosseguir para a próxima página para selecionar o tipo de autenticação.

O tipo de autenticação está definido como Banco de Dados por padrão. Clique em Próximo para prosseguir. Você será solicitado a preencher as credenciais do banco de dados na próxima página.

Preencha as credenciais do banco de dados criadas na etapa 10. Clique no botão Validar Configuração para verificar as credenciais. Uma vez verificadas, clique em Próximo para prosseguir. Em seguida, você será solicitado a nomear o backend de autenticação.

Deixe o valor padrão e clique em Próximo para prosseguir. Na próxima página, você será solicitado a criar uma conta de administrador.

Digite as credenciais para sua nova conta de administrador e clique em Próximo para prosseguir. Em seguida, você verá a página de Configuração do Aplicativo.

A opção Habilitar política de segurança de conteúdo estrita está desmarcada. Marque-a e deixe todos os outros valores padrão inalterados. Clique em Próximo para prosseguir. Você será solicitado a revisar a configuração na última página.

Você pode voltar para alterar qualquer uma das configurações. Se estiver satisfeito, clique em Próximo para prosseguir.

Clique em Próximo para prosseguir com a configuração do módulo de monitoramento. Em seguida, você será solicitado a fornecer as credenciais do banco de dados do Icinga.

Preencha as credenciais do banco de dados na etapa 3 e clique em Validar Configuração para verificar a conexão. Uma vez verificada, clique em Próximo para prosseguir. Em seguida, você será solicitado a preencher os detalhes da API.

Preencha as credenciais da API criadas na etapa 6, 127.0.0.1 como Host, e clique em Validar Configuração para verificar a conexão. Clique em Próximo para prosseguir. Em seguida, você será solicitado a escolher variáveis personalizadas protegidas para a segurança do monitoramento.

Deixe os valores padrão e clique em Próximo para prosseguir. Em seguida, você será solicitado a revisar a configuração de Monitoramento. Você pode voltar e alterá-la se desejar.

Se estiver satisfeito, clique em Finalizar para concluir a instalação.

Uma vez concluído com sucesso, clique no botão Login no Icinga Web 2 para abrir a página de login ( https://icinga.example.com).

Digite os detalhes da sua conta de administrador e clique no botão Login para abrir o painel do Icinga Web.

Visite a página Visão Geral >> Serviços para verificar o status do servidor mestre semelhante ao seguinte.

Etapa 12 - Inicializar o Servidor Mestre
O próximo passo é inicializar o servidor mestre como o nó mestre. O nó mestre atua como o controlador principal para a pilha de monitoramento. Execute o seguinte comando para iniciar o processo de inicialização.
$ sudo icinga2 node wizardVocê será solicitado a saber se é uma configuração de agente. Digite n para configurar o nó mestre.
Bem-vindo ao Assistente de Configuração do Icinga 2!
Nós o guiaremos por todos os detalhes de configuração necessários.
Por favor, especifique se esta é uma configuração de agente/satélite ('n' instala uma configuração mestre) [Y/n]: nEm seguida, você será solicitado a fornecer o nome comum ou o nome de domínio. Pressione Enter para selecionar o valor padrão que é exibido se for o correto. Caso contrário, insira o domínio e pressione Enter.
Por favor, especifique o nome comum (CN) [icinga.example.com]:
Reconfigurando o Icinga...
Verificando certificados existentes para o nome comum 'icinga.example.com'...
Certificado '/var/lib/icinga2/certs//icinga.example.com.crt' para CN 'icinga.example.com' já existente. Pulando a geração de certificado.
Gerando configuração mestre para o Icinga 2.
'api' recurso já habilitado.Em seguida, insira o nome da zona mestre e pressione Enter para prosseguir. No nosso caso, é o mesmo que o nome de domínio do servidor.
Nome da zona mestre [master]: icinga.example.comEm seguida, você será perguntado se deseja adicionar zonas globais adicionais. Pressione n para pular a adição e pressione Enter para prosseguir.
Zonas globais padrão: global-templates director-global
Você deseja especificar zonas globais adicionais? [y/N]: nNa próxima etapa, deixe o host e a porta de ligação da API como padrão e pressione Enter para prosseguir.
Por favor, especifique o host/porta de ligação da API (opcional):
Host de Ligação []:
Porta de Ligação []:Em seguida, pressione Y para desabilitar a configuração dentro do diretório /etc/icinga2/conf.d/ uma vez que usaremos a configuração de Zonas do Icinga2 mais tarde.
Você deseja desabilitar a inclusão do diretório conf.d [Y/n]: Y
Desabilitando a inclusão do diretório conf.d...
Verificando se o arquivo api-users.conf existe...
Concluído.
Agora reinicie seu daemon Icinga 2 para finalizar a instalação!Reinicie o serviço para aplicar as alterações.
$ sudo systemctl restart icinga2E por último, mas não menos importante, execute o seguinte comando para criar um ticket para o servidor cliente. Use o nome de domínio do cliente como argumento.
$ sudo icinga2 pki ticket --cn 'client.example.com'
c81f2a3b86534f34160ed8b776906e5452d8d09cAnote o ticket para uso posterior.
Etapa 13 - Inicializar o Agente Icinga2 no Servidor Cliente
Faça login no servidor cliente e instale o Icinga2 e os plugins de monitoramento. Execute os seguintes comandos para fazer isso.
$ wget -O - https://packages.icinga.com/icinga.key | sudo gpg --dearmor -o /usr/share/keyrings/icinga-archive-keyring.gpg
$ echo "deb [signed-by=/usr/share/keyrings/icinga-archive-keyring.gpg] https://packages.icinga.com/debian icinga-`lsb_release -cs` main" | sudo tee /etc/apt/sources.list.d/$(lsb_release -cs)-icinga.list
$ echo "deb-src [signed-by=/usr/share/keyrings/icinga-archive-keyring.gpg] http://packages.icinga.com/debian icinga-`lsb_release -cs` main" | sudo tee -a /etc/apt/sources.list.d/$(lsb_release -cs)-icinga.list
$ sudo apt update
$ sudo apt install icinga2 monitoring-plugins -yVerifique se o serviço Icinga está habilitado e em execução.
$ sudo systemctl status icinga2
? icinga2.service - Sistema de monitoramento de host/serviço/rede Icinga
Carregado: carregado (/lib/systemd/system/icinga2.service; habilitado; preset: habilitado)
Drop-In: /etc/systemd/system/icinga2.service.d
??limits.conf
Ativo: ativo (em execução) desde seg 2024-01-08 12:52:53 UTC; 35s atrás
PID Principal: 19530 (icinga2)
Status: "Inicialização concluída."
Tarefas: 12
Memória: 13.4M
CPU: 216ms
CGroup: /system.slice/icinga2.service
??19530 /usr/lib/x86_64-linux-gnu/icinga2/sbin/icinga2 --no-stack-rlimit daemon --close-stdio -e /var/log/icinga2/error.log
??19573 /usr/lib/x86_64-linux-gnu/icinga2/sbin/icinga2 --no-stack-rlimit daemon --close-stdio -e /var/log/icinga2/error.log
??19578 /usr/lib/x86_64-linux-gnu/icinga2/sbin/icinga2 --no-stack-rlimit daemon --close-stdio -e /var/log/icinga2/error.logInicie o Assistente de Nós Icinga para inicializar o agente no servidor cliente.
$ sudo icinga2 node wizardVocê será solicitado a saber se é uma configuração de agente. Digite Y para configurar o agente.
Bem-vindo ao Assistente de Configuração do Icinga 2!
Nós o guiaremos por todos os detalhes de configuração necessários.
Por favor, especifique se esta é uma configuração de agente/satélite ('n' instala uma configuração mestre) [Y/n]: YEm seguida, você será solicitado a especificar o nome comum. Deixe o valor padrão e pressione Enter para prosseguir.
Iniciando a rotina de configuração do Agente/Satélite...
Por favor, especifique o nome comum (CN) [client.example.com]:Em seguida, especifique o endpoint pai como icinga.example.com e digite Y para estabelecer uma conexão com o nó pai a partir do cliente.
Por favor, especifique o(s) endpoint(s) pai(s) (mestre ou satélite) onde este nó deve se conectar:
Nome Comum (CN do seu nó mestre/satélite): icinga.example.com
Você deseja estabelecer uma conexão com o nó pai a partir deste nó? [Y/n]: YEm seguida, insira o endereço IP do servidor mestre e deixe o valor da porta inalterado como padrão.
Por favor, especifique as informações de conexão do mestre/satélite:
Host do endpoint mestre/satélite (endereço IP ou FQDN): 199.247.31.184
Porta do endpoint mestre/satélite [5665]:Digite N para rejeitar a adição de mais endpoints mestres.
Adicionar mais endpoints mestres/satélites? [y/N]: NEm seguida, você verá as informações do certificado para o servidor mestre. Pressione Y para confirmar as informações e prosseguir.
Informações do certificado pai:
Versão: 3
Assunto: CN = icinga.example.com
Emissor: CN = Icinga CA
Válido De: Jan 8 07:36:55 2024 GMT
Válido Até: Feb 8 07:36:55 2025 GMT
Serial: 3a:e5:5e:e6:d5:5e:cc:1d:89:be:18:0b:10:cb:7d:54:8f:82:b1:5e
Algoritmo de Assinatura: sha256WithRSAEncryption
Nomes Alternativos do Assunto: icinga.example.com
Impressão Digital: DB 62 0D 2D AF 73 02 F2 86 92 5E A8 50 CD 0F 4F F2 D6 9E 86 AE F6 F9 E4 D7 F2 F2 60 78 1B 92 E5
Essas informações estão corretas? [y/N]: YEm seguida, insira o ticket de solicitação gerado na etapa anterior.
Por favor, especifique o ticket de solicitação gerado em seu mestre Icinga 2 (opcional).
(Dica: # icinga2 pki ticket --cn 'client.example.com'): c81f2a3b86534f34160ed8b776906e5452d8d09cDeixe o host e a porta de ligação da API como padrão e pressione Enter para continuar.
Por favor, especifique o host/porta de ligação da API (opcional):
Host de Ligação []:
Porta de Ligação []:Em seguida, digite Y duas vezes para aceitar a configuração e os comandos do nó mestre.
Aceitar configuração do nó pai? [y/N]: Y
Aceitar comandos do nó pai? [y/N]: YPressione Enter para aceitar o nome da zona local padrão, que é o nome de domínio do cliente. Digite o nome de domínio do mestre como o nome da zona pai para prosseguir.
Reconfigurando o Icinga...
Desabilitando o recurso de notificação. Certifique-se de reiniciar o Icinga 2 para que essas alterações tenham efeito.
Habilitando o recurso api. Certifique-se de reiniciar o Icinga 2 para que essas alterações tenham efeito.
Nome da zona local [client.example.com]:
Nome da zona pai [master]: icinga.example.comPressione N para pular a adição de zonas globais adicionais.
Zonas globais padrão: global-templates director-global
Você deseja especificar zonas globais adicionais? [y/N]: NPressione Y para pular a desabilitação das configurações do diretório /etc/icinga2/conf.d/.
Você deseja desabilitar a inclusão do diretório conf.d [Y/n]: Y
Desabilitando a inclusão do diretório conf.d...
Concluído.
Agora reinicie seu daemon Icinga 2 para finalizar a instalação!Reinicie o serviço para aplicar as alterações de configuração.
$ sudo systemctl restart icinga2Etapa 14 - Criar Configuração de Zonas no Servidor Mestre
Faça login novamente no servidor e crie um novo diretório como a zona padrão.
$ sudo mkdir -p /etc/icinga2/zones.d/icinga.example.com/Em seguida, crie um arquivo de configuração no diretório recém-criado e abra-o para edição.
$ sudo nano /etc/icinga2/zones.d/icinga.example.com/client.example.com.confCole o seguinte código nele. O endereço IP no código deve corresponder ao endereço IP público do cliente.
// Endpoints
object Endpoint "client.example.com" {
}
// Zones
object Zone "client.example.com" {
endpoints = [ "client.example.com" ]
parent = "icinga.example.com"
}
// Objetos de Host
object Host "client.example.com" {
check_command = "hostalive"
address = "95.179.138.148"
vars.client_endpoint = name
}Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado após terminar.
Crie e abra o arquivo de serviços para edição.
$ sudo nano /etc/icinga2/zones.d/icinga.example.com/services.confCole o seguinte código nele.
// Ping
apply Service "Ping" {
check_command = "ping4"
assign where host.address // check executado no mestre
}
// Carga do Sistema
apply Service "System Load" {
check_command = "load"
command_endpoint = host.vars.client_endpoint // Verificação executada no client01
assign where host.vars.client_endpoint
}
// Serviço SSH
apply Service "SSH Service" {
check_command = "ssh"
command_endpoint = host.vars.client_endpoint
assign where host.vars.client_endpoint
}
// Serviço Icinga 2
apply Service "Icinga2 Service" {
check_command = "icinga"
command_endpoint = host.vars.client_endpoint
assign where host.vars.client_endpoint
}Execute o seguinte comando para verificar a configuração.
$ sudo icinga2 daemon -CVocê receberá uma saída semelhante.
[2024-01-08 13:01:26 +0000] information/cli: Carregador de aplicativo Icinga (versão: r2.14.1-1)
[2024-01-08 13:01:26 +0000] information/cli: Carregando arquivo(s) de configuração.
[2024-01-08 13:01:26 +0000] information/ConfigItem: Confirmando item(ns) de configuração.
[2024-01-08 13:01:26 +0000] information/ApiListener: Minha identidade API: icinga.example.com
[2024-01-08 13:01:26 +0000] information/ConfigItem: Instanciado 1 IcingaApplication.
[2024-01-08 13:01:26 +0000] information/ConfigItem: Instanciado 1 Host.
[2024-01-08 13:01:26 +0000] information/ConfigItem: Instanciado 1 FileLogger.
[2024-01-08 13:01:26 +0000] information/ConfigItem: Instanciado 1 IdoMysqlConnection.
[2024-01-08 13:01:26 +0000] information/ConfigItem: Instanciado 4 Zones.
[2024-01-08 13:01:26 +0000] information/ConfigItem: Instanciado 1 CheckerComponent.
[2024-01-08 13:01:26 +0000] information/ConfigItem: Instanciado 2 Endpoints.
[2024-01-08 13:01:26 +0000] information/ConfigItem: Instanciado 2 ApiUsers.
[2024-01-08 13:01:26 +0000] information/ConfigItem: Instanciado 1 ApiListener.
[2024-01-08 13:01:26 +0000] information/ConfigItem: Instanciado 1 NotificationComponent.
[2024-01-08 13:01:26 +0000] information/ConfigItem: Instanciado 246 CheckCommands.
[2024-01-08 13:01:26 +0000] information/ConfigItem: Instanciado 4 Services.
[2024-01-08 13:01:26 +0000] information/ScriptGlobal: Dumping variables to file '/var/cache/icinga2/icinga2.vars'
[2024-01-08 13:01:27 +0000] information/cli: Concluído a validação do(s) arquivo(s) de configuração.Reinicie o serviço Icinga para aplicar as alterações de configuração.
$ sudo systemctl restart icinga2Etapa 15 - Verificar no Painel do Icinga
Abra o Painel Web do Icinga2 para verificar as informações da máquina cliente. Selecione Visão Geral >> Hosts no menu à esquerda, e você verá a seguinte tela.

Pode levar algum tempo para que o status do cliente apareça como UP. Clique no Cliente para ver mais detalhes sobre ele. Selecione Visão Geral >> Serviços e você verá os seguintes status sobre o cliente.

Isso confirma que o cliente está enviando estatísticas corretamente para o servidor mestre do Icinga.
Conclusão
Isso conclui nosso tutorial sobre a instalação do Software de Monitoramento Icinga em um servidor Debian 12 e sua configuração para monitorar uma máquina cliente rodando o mesmo sistema operacional.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.