Pesquisa de site

Como instalar o Icinga2 no RHEL, Rocky e AlmaLinux


Icinga2 é um aplicativo de monitoramento e alerta de rede de código aberto rico em recursos que é uma bifurcação da ferramenta de monitoramento Nagios.

Ele foi construído para resolver as deficiências do Nagios e introduzir novos recursos, como uma interface de usuário melhorada e moderna, uma API REST para integração de novas extensões sem a necessidade de fazer alterações no o núcleo Icinga e conectores de banco de dados adicionais.

Icinga2 monitora a disponibilidade de hosts e também de serviços. Alguns desses serviços incluem SNMP, HTTP, HTTPS e SSH. Ele também monitora dispositivos de rede, como roteadores e switches.

Icinga também reúne métricas e gera logs para fornecer uma visão completa da sua infraestrutura de rede. Os logs e métricas são então visualizados em painéis para colocar tudo em um contexto melhor.

Neste artigo, mostramos como instalar o aplicativo de monitoramento Icinga2 no RHEL, Rocky Linux e AlmaLinux.

Pré-requisitos

Como requisito para instalar o Icinga2, você precisa ter a pilha LAMP instalada. Um pouco de cuidado aqui – Icinga2 requer PHP 7.3 e versões posteriores para instalação.

Já temos um tutorial sobre como instalar o LAMP no RHEL 8 – Use este artigo para instalar o servidor web Apache e o servidor de banco de dados MariaDB apenas, pois as instruções se concentram na instalação do PHP 7.2 que não é suportado pelo Icinga2.

Na primeira etapa deste guia, orientaremos você no processo de instalação do PHP 7.4 e dos módulos necessários.

Etapa 1: Instale PHP e módulos PHP

Com o Apache e o MariaDB instalados, vamos instalar o PHP 7.4. Se você tiver o PHP 7.2 e versões posteriores instaladas, remova-o executando:

sudo dnf remove php

Em seguida, redefina o módulo PHP atual no sistema.

sudo dnf module reset php

Depois disso, liste as versões do PHP disponíveis conforme mostrado.

sudo dnf module list php

Em seguida, habilite o PHP 7.4.

sudo dnf module enable php:7.4

Uma vez habilitado o módulo PHP 7.4, instale o PHP e as extensões PHP necessárias.

sudo dnf install php-gd php-mbstring php-mysqlnd php-curl php-devel php-pear php-xml php-cli php-soap php-intl php-json php-ldap php-xmlrpc php-zip php-json php-common php-opcache php-gmp php-pgsql make -y

Icinga2 também requer a extensão php-imagick. No entanto, isso não pode ser instalado de maneira convencional como fizemos com os outros módulos PHP.

Para instalar a extensão, execute os seguintes comandos:

dnf install -y ImageMagick ImageMagick-devel
sudo pecl install imagick

Em seguida, mude para o usuário root e anexe as extensões ao arquivo PHP.INI.

su -
echo "extension=imagick.so" > /etc/php.d/20-imagick.ini

Para aplicar as alterações, reinicie o servidor web Apache.

sudo systemctl restart httpd

Etapa 2: Instale o Icinga2 no RHEL 8

Para instalar o Icinga2, precisamos adicionar o repositório Icinga, pois Icinga2 não está hospedado nos repositórios AppStream.

Para fazer isso, primeiro habilite o repositório EPEL.

sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

Em seguida, ative a chave de assinatura GPG.

sudo rpm --import https://packages.icinga.com/icinga.key

Em seguida, crie um arquivo de repositório no diretório /etc/yum.repos.d.

sudo vim  /etc/yum.repos.d/icinga2.repo

Cole o seguinte bloco de código

 
[icinga2]
name=Icinga 2 Repository for EPEL 8
baseurl=https://packages.icinga.com/epel/8/release
enabled=1

Salve e saia do arquivo do repositório. Em seguida, atualize os pacotes de cache,

sudo dnf makecache

Com o repositório adicionado, instale o pacote Icinga2 e outros pacotes Icinga2 associados.

sudo dnf install icinga2 icinga2-ido-mysql icinga2-selinux  vim-icinga2 -y

Em seguida, instale os plug-ins do Nagios que serão usados no monitoramento de hosts físicos e virtuais.

sudo dnf install nagios-plugins-all -y

Em seguida, habilite o módulo Icinga2 ido-mysql e outros recursos.

sudo icinga2 feature enable ido-mysql syslog command

Em seguida, reinicie o Icinga para que as alterações sejam aplicadas.

sudo systemctl restart icinga2

Etapa 3: Crie um banco de dados para o módulo MySQL Icinga-IDO

O recurso mysql icinga2-IDO (Icinga Data Output) é um recurso de back-end que agrupa e exporta todas as informações de configuração e status para um banco de dados. Por esse motivo, precisamos criar um banco de dados para o recurso Icinga2-ido-mysql.

Então, faça login no servidor de banco de dados MySQL:

sudo mysql -u root -p

Crie um banco de dados e também um usuário de banco de dados para Icinga2. Em seguida, conceda todos os privilégios do usuário do banco de dados ao banco de dados Icinga2.

> CREATE DATABASE icinga2;
> GRANT ALL PRIVILEGES ON icinga2.* TO 'icinga2_user'@'localhost' IDENTIFIED BY 'P@ssword321';

Aplique as alterações e saia do servidor de banco de dados.

> FLUSH PRIVILEGES;
> EXIT;

Em seguida, importe o esquema do banco de dados da seguinte maneira. Será solicitada uma senha, após a qual você deverá fornecer a senha do banco de dados.

sudo mysql -u root -p icinga2 < /usr/share/icinga2-ido-mysql/schema/mysql.sql

Continuando, edite o arquivo de configuração ido-mysql.

sudo vim /etc/icinga2/features-available/ido-mysql.conf

Remova o comentário do bloco do banco de dados e especifique os detalhes do banco de dados.

Salvar e sair.

Em seguida, inicie e habilite Icinga2.

sudo systemctl start icinga2
sudo systemctl enable icinga2

Em seguida, verifique o status de Icinga2 conforme mostrado.

sudo systemctl status icinga2

A partir do resultado abaixo, fica claro que o Icinga está instalado e funcionando conforme o esperado.

Etapa 4: Instale o IcingaWeb2 no RHEL 8

IcingaWeb2 é uma ferramenta de monitoramento baseada na web de código aberto que também incorpora uma interface de linha de comando. Ele suporta todos os recursos de backend do Icinga, como Icinga-ido-mysql, Icinga core, Icinga2 e outros módulos.

Para instalar o IcingaWeb2, instale o PowerTools usando o seguinte comando.

sudo dnf install 'dnf-command(config-manager)'
sudo dnf config-manager --set-enabled powertools

Assim que a instalação for concluída, instale o IcingaWeb2 e a CLI conforme mostrado.

sudo dnf install icingaweb2 icingacli

Etapa 5: Crie um banco de dados para IcingaWeb2

Assim como criamos um esquema de banco de dados para o recurso Icinga2-IDO-mysql, também precisamos criar um segundo esquema para Icinga Web2.

Então, mais uma vez, faça login no servidor de banco de dados.

sudo mysql -u root -p

Crie um banco de dados e um usuário de banco de dados para IcingaWeb2 e conceda todas as permissões ao usuário do banco de dados no banco de dados Icinga Web2.

> CREATE DATABASE icingaweb2;
> GRANT ALL ON icingaweb2.* TO icingaweb2@localhost IDENTIFIED BY 'P@ssword321';

Salve as alterações e saia.

> FLUSH PRIVILEGES;
> QUIT

Quando o Icinga2 foi instalado, um novo arquivo de configuração para o Icinga2 foi criado. Você pode visualizá-lo conforme mostrado.

cat /etc/httpd/conf.d/icingaweb2.conf

Você precisa reiniciar o servidor web Apache para que as alterações entrem em vigor.

sudo systemctl restart httpd

Além disso, você também precisa definir o modo SELinux como ‘permissivo’ da seguinte maneira.

sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

Etapa 6: Conclua a configuração do Icinga2 no navegador

A etapa da instalação do Icinga2 é a criação de um token de configuração, que é um código exclusivo que será usado para autenticação na primeira etapa ao configurar o Icinga2 em um navegador.

Para gerar um token secreto, execute o comando:

sudo icingacli setup token create

Copie e mantenha o token de configuração seguro. Se você perder o token, poderá recuperá-lo executando o comando:

sudo icingacli setup token show

Neste ponto deste guia, todas as configurações estão sob controle. O que resta é concluir a instalação a partir de um navegador da web. Para fazer isso, navegue no URL mostrado

http://server-ip/icingaweb2/setup

Na página de boas-vindas, cole o token de configuração gerado anteriormente.

Depois de colar o token, clique em ‘Avançar’ para continuar. Isso leva você para a página ‘Módulos’. Isso fornece uma visão geral de todos os módulos que você pode ativar. Por padrão, o módulo ‘monitoramento’ está habilitado.

Ative seus módulos preferidos, role para baixo e clique em ‘Avançar’ para continuar.

Nesta seção, certifique-se de que todos os pré-requisitos do PHP foram atendidos, o que inclui módulos, bibliotecas e diretórios do PHP. Se tudo estiver certo, role para baixo e clique em ‘Avançar’.

Na página ‘Autenticação’, deixe tudo como está e clique em ‘Avançar’.

Na seção ‘Recurso de banco de dados’, preencha os detalhes do banco de dados para IcingaWeb2 conforme especificado na Etapa 5.

Para confirmar se os detalhes do banco de dados estão corretos, role até o fim e clique em ‘Validar configuração’.

Se tudo correr bem, você receberá uma notificação de que a configuração foi validada com sucesso.

Para passar para a próxima etapa, role para baixo e clique em ‘Avançar’. Para ‘Backend de autenticação’, basta clicar em ‘Avançar’ para aceitar os padrões.

Na próxima etapa, crie um usuário Admin que será usado para acessar e fazer login na interface web do Icinga2.

Para a seção ‘Monitoramento de aplicativos’, aceite os padrões e clique em ‘Avançar’.

Revise todas as alterações que você fez até agora ao longo do caminho. Se tudo estiver certo, clique em ‘Avançar’ e se desejar fazer alguma alteração, clique em ‘voltar’ e faça as alterações necessárias.

A próxima seção é a configuração do módulo de monitoramento para IcingaWeb2. Este é o módulo principal do Icinga Web 2 que oferece visualizações de status e relatórios com recursos robustos de filtro para rastrear eventos cruciais.

Clique em ‘Avançar’ para continuar.

Na próxima etapa, preencha o formulário com os detalhes do banco de dados para o recurso Icinga2-ido-mysql conforme especificado na Etapa 3.

Para validar a configuração, role para baixo e clique em ‘Validar configuração’.

Você receberá a notificação de que a configuração foi validada com sucesso.

Para prosseguir para a próxima etapa, role para baixo e clique em ‘Avançar’. Para ‘Transporte de comando’, use ‘Arquivo de comando local’ como tipo de transporte e clique em ‘Avançar’.

Na seção ‘Monitoramento de segurança’, clique em ‘Avançar’.

Mais uma vez, revise todas as configurações do módulo de monitoramento Icinga2. Se tudo estiver certo, clique em ‘Concluir’, caso contrário, volte e faça as alterações necessárias.

Se tudo correu bem com a configuração do Icinga Web 2, você deverá receber uma notificação de que o Icinga Web 2 foi configurado com sucesso. Para fazer login na interface da web, clique no link ‘Login no Icinga Web 2’.

Isso abre a interface do Icinga Web 2. Forneça os detalhes da conta de administrador e clique em ‘login’.

Isso leva você ao painel de monitoramento Icinga2 conforme mostrado.

E é isso. A partir daí você pode monitorar vários hosts e serviços dentro da sua infraestrutura de rede. Neste guia, orientamos você na instalação do Icinga Web 2 no RHEL 8, Rocky Linux e AlmaLinux.