Monitoramento · 26 min read · Nov 07, 2025

Como Instalar o Software de Monitoramento Icinga 2 no Ubuntu 22.04 LTS

Icinga2 é um software de monitoramento de rede gratuito e de código aberto que pode verificar a disponibilidade de recursos da rede e notificar os usuários sobre interrupções. 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á a instalar o Icinga2 em um servidor Ubuntu 22.04 e como 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 executando Ubuntu 22.04. 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.com e 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 ubuntu-keyring unzip -y Alguns desses pacotes podem já estar instalados em seu sistema.

Passo 1 - Configurar o Firewall no Servidor Mestre

O primeiro passo é configurar o firewall. O Ubuntu vem com ufw (Uncomplicated Firewall) por padrão.

Verifique se o firewall está em execução.

$ sudo ufw status

Você deve obter a seguinte saída.

Status: inactive

Permita a porta SSH para que o firewall não interrompa a conexão atual ao ativá-lo.

$ sudo ufw allow OpenSSH

Permita a porta 5665, que é necessária para o cliente Icinga2 se conectar ao servidor.

$ sudo ufw allow 5665

Permita também as portas HTTP e HTTPS.

$ sudo ufw allow http
$ sudo ufw allow https

Ative 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 sistema

Verifique o status do firewall novamente.

$ sudo ufw status

Você 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)

Passo 2 - Instalar MySQL

O Ubuntu 22.04 vem com a versão mais recente do MySQL. Você pode instalá-lo com um único comando.

$ sudo apt install mysql-server

Verifique a versão do MySQL.

$ mysql --version
mysql  Ver 8.0.32-0ubuntu0.22.04.2 for Linux on x86_64 ((Ubuntu))

Este passo é necessário para versões do MySQL 8.0.28 e superiores. Entre no Shell do MySQL.

$ sudo mysql

Execute o seguinte comando para definir a senha para seu usuário root. Certifique-se de que tenha uma mistura de números, letras maiúsculas, minúsculas e caracteres especiais.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourPassword12!';

Saia do shell.

mysql> exit

Execute o script de instalação segura do MySQL.

$ sudo mysql_secure_installation

Primeiro, você será solicitado a inserir sua senha root. Digite-a. Em seguida, você será solicitado a instalar o Componente de Validação de Senha. Ele verifica a força das senhas usadas no MySQL. Pressione Y para instalá-lo. Em seguida, você será solicitado a definir o nível da política de validação de senha. Escolha 2, pois é a mais forte.

Proteger a implantação do servidor MySQL.

Digite a senha para o usuário root:

O COMPONENTE DE VALIDAÇÃO DE SENHA pode ser usado para testar senhas
e melhorar a segurança. Ele verifica a força da senha
e permite que os usuários definam apenas aquelas senhas que são
a fortes o suficiente. Você gostaria de configurar o componente de VALIDAÇÃO DE SENHA?

Pressione y|Y para Sim, qualquer outra tecla para Não: Y

Existem três níveis de política de validação de senha:

BAIXO    Comprimento >= 8
MÉDIO Comprimento >= 8, numérico, letras mistas e caracteres especiais
FORTE Comprimento >= 8, numérico, letras mistas, caracteres especiais e dicionário                  arquivo

Por favor, insira 0 = BAIXO, 1 = MÉDIO e 2 = FORTE: 2
Usando a senha existente para root.

Força estimada da senha: 100

Em seguida, digite N para recusar a alteração da sua senha root. Além disso, digite Y para remover usuários anônimos, desabilitar logins remotos de root, remover o banco de dados de teste e recarregar as tabelas de privilégios.

Mudar a senha para root? ((Pressione y|Y para Sim, qualquer outra tecla para Não) : N

 ... pulando.
Por padrão, uma instalação do MySQL tem um usuário anônimo,
permitindo que qualquer pessoa faça login no MySQL sem ter que ter
uma conta de usuário criada para eles. Isso é destinado apenas para
testes, e para tornar a instalação um pouco mais suave.
Você deve removê-los antes de passar para um ambiente de produção.

Remover usuários anônimos? (Pressione y|Y para Sim, qualquer outra tecla para Não) : 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 de root? (Pressione y|Y para Sim, qualquer outra tecla para Não) : Y
Sucesso.

Por padrão, o MySQL 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? (Pressione y|Y para Sim, qualquer outra tecla para Não) : 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 terão efeito imediato.

Recarregar tabelas de privilégios agora? (Pressione y|Y para Sim, qualquer outra tecla para Não) : Y
Sucesso.

Tudo pronto!

Passo 3 - Configurar MySQL

Faça login no shell do MySQL. Digite sua senha root quando solicitado.

$ sudo mysql -u root -p

Crie o banco de dados Icinga.

mysql> 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 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.

mysql> CREATE USER 'icinga2'@'localhost' IDENTIFIED BY 'Your_password2';

Conceda todos os privilégios no banco de dados ao usuário.

mysql> GRANT ALL PRIVILEGES ON icinga2.* TO 'icinga2'@'localhost';

Atualize os privilégios do usuário.

mysql> FLUSH PRIVILEGES;

Saia do shell.

mysql> exit

Passo 4 - Instalar Icinga2 e 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.gpg

Execute os seguintes comandos para criar e adicionar as informações do repositório do Icinga2 à lista de fontes APT.

$ echo "deb [signed-by=/usr/share/keyrings/icinga-archive-keyring.gpg] https://packages.icinga.com/ubuntu 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/ubuntu icinga-`lsb_release -cs` main" | sudo tee -a /etc/apt/sources.list.d/$(lsb_release -cs)-icinga.list

Atualize a lista de repositórios do sistema.

$ sudo apt update

Instale o Icinga2 e os plugins de monitoramento.

$ sudo apt install icinga2 monitoring-plugins -y

Passo 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-mysql

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 inserir a senha MySQL para o banco de dados icinga2. Digite a senha configurada na etapa 3 para continuar.

Digite a senha do banco de dados para Icinga2

Você será solicitado a confirmar a senha novamente.

Confirme a senha do Icinga2

Em seguida, você será solicitado a habilitar o recurso ido-mysql. Selecione Sim para continuar.

Recurso IDO-MySQL do Icinga

Você pode verificar os detalhes do banco de dados no arquivo /etc/icinga2/features-available/ido-mysql.conf.

$ 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

Reinicie o serviço Icinga2.

$ sudo systemctl restart icinga2

Verifique o status do serviço.

$ sudo systemctl status icinga2
? icinga2.service - Sistema de monitoramento de host/serviço/rede Icinga
     Loaded: loaded (/lib/systemd/system/icinga2.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/icinga2.service.d
             ??limits.conf
     Active: active (running) since Mon 2023-05-01 08:02:36 UTC; 1s ago
    Process: 9823 ExecStartPre=/usr/lib/icinga2/prepare-dirs /etc/default/icinga2 (code=exited, status=0/SUCCESS)
   Main PID: 9828 (icinga2)
     Status: "Inicialização concluída."
      Tasks: 10
     Memory: 17.6M
        CPU: 657ms
     CGroup: /system.slice/icinga2.service
             ??9828 /usr/lib/x86_64-linux-gnu/icinga2/sbin/icinga2 --no-stack-rlimit daemon --close-stdio -e /var/log/icinga2/error.log
             ??9846 /usr/lib/x86_64-linux-gnu/icinga2/sbin/icinga2 --no-stack-rlimit daemon --close-stdio -e /var/log/icinga2/error.log
             ??9849 /usr/lib/x86_64-linux-gnu/icinga2/sbin/icinga2 --no-stack-rlimit daemon --close-stdio -e /var/log/icinga2/error.log

Passo 6 - Configurar a API do Icinga2

Para gerenciar e configurar o monitoramento do 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 setup

Você 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 novo 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: Criando 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.
Feito.

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.conf

Adicione o seguinte código ao final do arquivo.

/** 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 icinga2

O próximo passo é instalar a interface da 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.

Passo 7 - Instalar Nginx

O Ubuntu 22.04 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/null

Adicione o repositório para a versão estável do Nginx.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list

Atualize os repositórios do sistema.

$ sudo apt update

Instale o Nginx.

$ sudo apt install nginx

Verifique a instalação.

$ nginx -v
nginx version: nginx/1.24.0

Inicie o servidor Nginx.

$ sudo systemctl start nginx

Passo 8 - Instalar SSL

Precisamos instalar o Certbot para gerar o certificado SSL. Você pode instalar o Certbot usando o repositório do Ubuntu ou pegar a versão mais recente usando a ferramenta Snapd. Usaremos a versão Snapd.

O Ubuntu 22.04 vem com o Snapd instalado por padrão. Execute os seguintes comandos para garantir que sua versão do Snapd esteja atualizada.

$ sudo snap install core && sudo snap refresh core

Instale o Certbot.

$ sudo snap install --classic certbot

Use 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/certbot

Execute 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.com

O 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 4096

Verifique o serviço do agendador de renovação do Certbot.

$ sudo systemctl list-timers

Você encontrará snap.certbot.renew.service como um dos serviços agendados para execução.

NEXT                        LEFT          LAST                        PASSED         UNIT                     ACTIVATES
------------------------------------------------------------------------------------------------------------------------------------
Mon 2023-05-01 13:37:57 UTC 3h 45min left Mon 2023-05-01 07:20:42 UTC 2h 31min ago   ua-timer.timer           ua-timer.service
Mon 2023-05-01 14:39:29 UTC 4h 47min left Sat 2023-02-04 16:04:18 UTC 2 months ago   motd-news.timer          motd-news.service
Mon 2023-05-01 15:53:00 UTC 6h left       n/a                         n/a            snap.certbot.renew.timer snap.certbot.renew.service

Faça um teste do processo para verificar se a renovação do SSL está funcionando corretamente.

$ sudo certbot renew --dry-run

Se você não ver erros, está tudo pronto. Seu certificado será renovado automaticamente.

Passo 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-imagick

Configurar PHP-FPM

Abra o arquivo /etc/php/8.1/fpm/pool.d/www.conf.

$ sudo nano /etc/php/8.1/fpm/pool.d/www.conf

Precisamos 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 = nginx

Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.

Reinicie o serviço PHP-FPM.

$ sudo systemctl restart php8.1-fpm

Configurar Nginx

Crie e abra o arquivo /etc/nginx/conf.d/icinga.conf para edição.

$ sudo nano /etc/nginx/conf.d/icinga.conf

Cole 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.1-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.conf

Adicione 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: arquivo de configuração /etc/nginx/nginx.conf teste é bem-sucedido

Reinicie o serviço Nginx.

$ sudo systemctl restart nginx

Passo 10 - Preparar Configuração da Web

Antes de acessar o Icinga Web, precisamos configurá-lo. Ao 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 é: 3c4d4e155635f512

Anote o token porque você precisará dele mais tarde. Você sempre pode recuperá-lo mais tarde usando o seguinte comando.

$ sudo icingacli setup token show
O token de configuração atual é: 3c4d4e155635f512

O próximo passo é criar um banco de dados e um usuário de banco de dados. Faça login no shell do MySQL.

$ sudo mysql -u root -p

Crie o banco de dados Icinga Web.

mysql> CREATE DATABASE icingaweb2;

Crie a conta de usuário SQL para o Icinga Web.

mysql> CREATE USER 'icingaweb2'@'localhost' IDENTIFIED BY 'Your_password3';

Conceda todos os privilégios no banco de dados ao usuário.

mysql> GRANT ALL PRIVILEGES ON icingaweb2.* TO 'icingaweb2'@'localhost';

Atualize os privilégios do usuário.

mysql> FLUSH PRIVILEGES;

Saia do shell.

mysql> exit

Passo 11 - Configurar IcingaWeb

Abra a URL https://icinga.example.com em seu navegador e você verá a seguinte tela.

Página de Configuração do Icinga Web

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

Configuração dos Módulos do Icinga

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.

Página de Requisitos do Icinga

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

Tipo de Autenticação do Icinga

O tipo de autenticação é 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.

Credenciais do Banco de Dados do Icinga Web

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.

Backend de Autenticação do Icinga

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.

Detalhes do Administrador do Icinga

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.

Configuração do Aplicativo do Icinga

Deixe todos os valores padrão para a configuração do aplicativo e do log e clique em Próximo para prosseguir. Você será solicitado a revisar a configuração na última página.

Revisão da Configuração do Icinga

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.

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.

Detalhes da API do Icinga

Preencha as credenciais da API criadas na etapa 6 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.

Segurança do Monitoramento do Icinga

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.

Revisão da Configuração de Monitoramento do Icinga

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

Instalação do Icinga Concluída

Uma vez concluído com sucesso, clique no botão Login no Icinga Web 2 para abrir a página de login.

Página de Login do Icinga Web

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

Painel do Icinga Web

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

Página de Serviços do Icinga Web

Passo 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 wizard

Você será solicitado 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]: n

Em 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.

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, digite 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.com

Em seguida, você será solicitado a 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]: n

Na 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...

Feito.

Agora reinicie seu daemon Icinga 2 para finalizar a instalação!

Reinicie o serviço para aplicar as alterações.

$ sudo systemctl restart icinga2

E 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'
365cd931d3091537622a95b113b17775893a224f

Anote o ticket para uso posterior.

Passo 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/ubuntu 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/ubuntu 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 -y

Verifique 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
     Loaded: loaded (/lib/systemd/system/icinga2.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/icinga2.service.d
             ??limits.conf
     Active: active (running) since Tue 2023-05-02 07:32:07 UTC; 59min ago
   Main PID: 7602 (icinga2)
     Status: "Inicialização concluída."
      Tasks: 8
     Memory: 13.9M
        CPU: 1.018s
     CGroup: /system.slice/icinga2.service
             ??7602 /usr/lib/x86_64-linux-gnu/icinga2/sbin/icinga2 --no-stack-rlimit daemon --close-stdio -e /var/log/icinga2/error.log
             ??7620 /usr/lib/x86_64-linux-gnu/icinga2/sbin/icinga2 --no-stack-rlimit daemon --close-stdio -e /var/log/icinga2/error.log
             ??7623 /usr/lib/x86_64-linux-gnu/icinga2/sbin/icinga2 --no-stack-rlimit daemon --close-stdio -e /var/log/icinga2/error.log

Inicie o Assistente de Nós Icinga para inicializar o agente no servidor cliente.

$ sudo icinga2 node wizard

Você será solicitado 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]: Y

Em seguida, você será solicitado a especificar o nome comum. Deixe o valor padrão e pressione Enter para prosseguir.

Iniciando o assistente de configuração de 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]: Y

Em seguida, digite 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 mestre/satélite:
Host do endpoint mestre/satélite (endereço IP ou FQDN): 199.247.31.184
Host/Porta de Ligação do Mestre/Satélite []: 5665

Digite N para rejeitar a adição de mais endpoints mestres.

Adicionar mais endpoints mestres/satélites? [y/N]: N

Em 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:          May  1 08:28:26 2023 GMT
 Válido até:         Jun  1 08:28:26 2024 GMT
 Serial:              53:50:d4:1a:85:c5:70:5b:b1:f6:0e:c3:b6:e4:db:62:df:8d:5e:d9

 Algoritmo de Assinatura: sha256WithRSAEncryption
 Nomes Alternativos do Assunto:   icinga.example.com
 Impressão Digital:         DC BB 90 68 29 E5 C4 B5 74 F5 BC 8C BF A1 8F BF D2 9D A4 E5 A9 9A 43 2C 3B 24 AE A9 CD 19 32 F4

Essas informações estão corretas? [y/N]: Y

Em seguida, digite o ticket de solicitação gerado na etapa anterior.

Por favor, especifique o ticket de solicitação gerado em seu Icinga 2 mestre (opcional).
 (Dica: # icinga2 pki ticket --cn 'client.example.com'): 365cd931d3091537622a95b113b17775893a224f

Deixe 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]: Y

Pressione 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.com

Pressione 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]: N

Pressione N para pular desabilitar as 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...

Feito.

Agora reinicie seu daemon Icinga 2 para finalizar a instalação!

Reinicie o serviço Icinga para aplicar as alterações de configuração.

$ sudo systemctl restart icinga2

Passo 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.conf

Cole 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.conf

Cole o seguinte código nele.

// Ping apply Service "Ping" { check_command = "ping4" assign where host.address // verificação executada 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 -C

Você receberá uma saída semelhante.

[2023-05-02 11:21:23 +0000] information/cli: Carregador de aplicativo Icinga (versão: r2.13.7-1)
[2023-05-02 11:21:23 +0000] information/cli: Carregando arquivo(s) de configuração.
[2023-05-02 11:21:23 +0000] information/ConfigItem: Confirmando item(s) de configuração.
[2023-05-02 11:21:23 +0000] information/ApiListener: Minha identidade API: icinga.example.com
[2023-05-02 11:21:23 +0000] information/ConfigItem: Instanciado 1 IcingaApplication.
[2023-05-02 11:21:23 +0000] information/ConfigItem: Instanciado 1 Host.
[2023-05-02 11:21:23 +0000] information/ConfigItem: Instanciado 1 FileLogger.
[2023-05-02 11:21:23 +0000] information/ConfigItem: Instanciado 1 IdoMysqlConnection.
[2023-05-02 11:21:23 +0000] information/ConfigItem: Instanciado 1 CheckerComponent.
[2023-05-02 11:21:23 +0000] information/ConfigItem: Instanciado 4 Zones.
[2023-05-02 11:21:23 +0000] information/ConfigItem: Instanciado 2 Endpoints.
[2023-05-02 11:21:23 +0000] information/ConfigItem: Instanciado 2 ApiUsers.
[2023-05-02 11:21:23 +0000] information/ConfigItem: Instanciado 1 ApiListener.
[2023-05-02 11:21:23 +0000] information/ConfigItem: Instanciado 1 NotificationComponent.
[2023-05-02 11:21:23 +0000] information/ConfigItem: Instanciado 244 CheckCommands.
[2023-05-02 11:21:23 +0000] information/ConfigItem: Instanciado 4 Services.
[2023-05-02 11:21:23 +0000] information/ScriptGlobal: Dumping variables to file '/var/cache/icinga2/icinga2.vars'
[2023-05-02 11:21:23 +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 icinga2

Passo 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.

Página de Hosts do Painel do Icinga Web

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.

Detalhes dos Serviços do Cliente do Icinga Web

Isso confirma que o cliente está enviando estatísticas corretamente para o servidor mestre do Icinga.

Conclusão

Isso conclui nosso tutorial sobre como instalar o Software de Monitoramento Icinga em um servidor Ubuntu 22.04 e configurá-lo para monitorar uma máquina cliente executando o mesmo sistema operacional. Se você tiver alguma dúvida, poste nos comentários abaixo.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.