Monitoramento · 21 min read · Nov 09, 2025

Como Instalar e Configurar o Nagios no Rocky Linux 9

Nagios é um sistema de monitoramento open-source popular e um dos mais poderosos. Ele monitora sua infraestrutura de TI e mantém suas redes, servidores, aplicações e processos funcionando sem problemas. Com um sistema de monitoramento, você pode detectar problemas antes que eles ocorram e corrigi-los rapidamente para economizar custos e tempo de inatividade.

Este tutorial ensina como instalar e configurar o Nagios em um servidor Rocky Linux 9. Também faremos algumas configurações básicas e instalaremos o Nagios Remote Plugin Executor (NPRE), que nos permite monitorar hosts remotos.

Pré-requisitos

  1. Um servidor rodando Rocky Linux 9.
  2. Um usuário não-sudo com privilégios de root.
  3. O SELinux está desativado. Para este tutorial, mesmo que você mantenha o SELinux ativado, funcionará sem problemas. Mas dependendo dos monitores do Nagios que você usar, você precisará configurar o SELinux ou será melhor mantê-lo desativado.
  4. Outro servidor rodando Rocky Linux 9 que você deseja monitorar.
  5. Certifique-se de que tudo está atualizado. $ sudo dnf update

Passo 1 - Configurar o Firewall

O primeiro passo é configurar o firewall. O servidor Rocky Linux vem com o firewall Firewalld.

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

$ sudo firewall-cmd --state

Você deve obter a seguinte saída.

running

Verifique os serviços/portas permitidos atualmente.

$ sudo firewall-cmd --permanent --list-services

Deve mostrar a seguinte saída.

dhcpv6-client mdns ssh

Permita as portas HTTP e HTTPS.

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https

Verifique novamente o status do firewall.

$ sudo firewall-cmd --permanent --list-services

Você deve ver uma saída semelhante.

dhcpv6-client http https mdns ssh

Recarregue o Firewall.

$ sudo firewall-cmd --reload

Passo 2 - Instalar Apache e PHP

Para rodar o Nagios, você precisará do Apache junto com o PHP instalado.

Instale e habilite o serviço Apache.

$ sudo dnf install httpd
$ sudo systemctl enable httpd

Para instalar o PHP, usaremos o Repositório Remi. Instale o Repositório Remi e habilite o PHP 8.1.

$ sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm
$ sudo dnf module reset php -y
$ sudo dnf module enable php:remi-8.1 -y

Instale o PHP e vários módulos PHP comuns.

$ sudo dnf install -y php php-gd php-curl

Verifique a instalação do PHP.

$ php --version
PHP 8.1.16 (cli) (built: Feb 14 2023 18:59:41) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.1.16, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.16, Copyright (c), by Zend Technologies

Habilite o PHP e inicie o serviço.

$ sudo systemctl enable --now php-fpm

Reinicie o serviço Apache para que a alteração tenha efeito.

$ sudo systemctl restart httpd

Você pode verificar a instalação do Apache e do PHP criando um arquivo info.php no diretório /var/www/html que foi criado pelo instalador do Apache.

$ sudo nano /var/www/html/info.php

Cole o seguinte código no editor.

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

Abra a URL http:///info.php em seu navegador e você deve ser recebido pela seguinte página.

Página de Informações do PHP

Passo 3 - Instalar o Nagios

A maior parte deste tutorial exigirá que você instale e trabalhe em seu servidor principal.

Instalar Dependências

Este tutorial exigirá que o Nagios e seus plugins sejam construídos a partir do código-fonte. Portanto, você precisa instalar algumas bibliotecas de desenvolvimento primeiro. Precisamos do repositório EPEL também, mas ele foi instalado automaticamente com o repositório Remi na etapa anterior, então podemos pular isso aqui.

$ sudo dnf install gcc glibc glibc-common gd gd-devel make net-snmp openssl-devel unzip wget gettext autoconf net-snmp-utils postfix automake perl-Net-SNMP

Baixar o Nagios

Baixe a versão mais recente da página de lançamentos do GitHub do Nagios. No momento do tutorial, 4.4.10 é a versão mais recente disponível. Modifique o comando caso você queira uma versão diferente.

$ cd ~
$ sudo wget -O nagios.tar.gz https://github.com/NagiosEnterprises/nagioscore/releases/download/nagios-4.4.10/nagios-4.4.10.tar.gz

Extraia o arquivo tar.

$ sudo tar zxf nagios.tar.gz

Mova o diretório extraído para o diretório /usr/src.

sudo mv nagios-4.4.10 /usr/src/nagios

Mude para o diretório /usr/src/nagios.

$ cd /usr/src/nagios

Compilar o Nagios

O próximo passo é compilar o Nagios a partir de seus arquivos de origem. Execute o script configure para realizar verificações para garantir que todas as dependências estejam presentes.

$ sudo ./configure

Você deve obter uma saída semelhante após a conclusão bem-sucedida do script.

* Resumo da configuração para nagios 4.4.10 2023-01-17 *:

 Opções Gerais:
 -------------------------
        Executável do Nagios:  nagios
        Usuário/grupo do Nagios:  nagios,nagios
       Usuário/grupo do comando:  nagios,nagios
             Broker de Eventos:  sim
        Instalar ${prefix}:  /usr/local/nagios
    Instalar ${includedir}:  /usr/local/nagios/include/nagios
                Arquivo de bloqueio:  /run/nagios.lock
   Diretório de resultados de verificação:  /usr/local/nagios/var/spool/checkresults
           Diretório de inicialização:  /lib/systemd/system
  Diretório conf.d do Apache:  /etc/httpd/conf.d
             Programa de e-mail:  /usr/sbin/sendmail
                  SO do Host:  linux-gnu
          Método IOBroker:  epoll

 Opções da Interface Web:
 ------------------------
                 URL HTML:  http://localhost/nagios/
                  URL CGI:  http://localhost/nagios/cgi-bin/
 Traceroute (usado pelo WAP):  

Revise as opções acima para precisão. Se parecerem corretas,
digite 'make all' para compilar o programa principal e os CGIs.

Inicie a compilação.

$ sudo make all

Criar Usuário e Grupo do Nagios

Crie um novo usuário e grupo que executarão o processo do Nagios.

$ sudo make install-groups-users

Você deve ver a seguinte saída.

groupadd -r nagios
useradd -g nagios nagios

Adicione o usuário apache ao grupo nagios.

$ sudo usermod -a -G nagios apache

Instalar os Binários do Nagios

Execute o seguinte comando para instalar os binários do Nagios, CGIs e arquivos HTML.

$ sudo make install

Criar Diretório de Comandos Externos

O Nagios pode processar comandos de aplicativos externos e, para isso, precisa que um diretório seja configurado.

$ sudo make install-commandmode
/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/var/rw
chmod g+s /usr/local/nagios/var/rw

* Diretório de comandos externos configurado *

Instalar Arquivos de Configuração do Nagios

Instale os arquivos de configuração de exemplo.

$ sudo make install-config

Instalar Arquivos de Configuração do Apache

Execute o seguinte comando para instalar os arquivos de configuração do Apache.

$ sudo make install-webconf

Reinicie o servidor web para ativar a configuração.

$ sudo systemctl restart httpd

Criar um Arquivo de Serviço Systemd

Execute o seguinte comando para instalar um arquivo de unidade systemd.

$ sudo make install-daemoninit

Habilitar Autenticação HTTP

Você pode bloquear a interface web do Nagios via autenticação HTTP. Execute o seguinte comando para usar htpasswd para criar o usuário. Você será solicitado a fornecer uma senha.

$ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Nova senha:
Re-digite nova senha:
Adicionando senha para o usuário nagiosadmin

O nome padrão para o usuário é nagiosadmin. Você pode usar outro nome de usuário substituindo todas as instâncias de nagiosadmin no arquivo /usr/local/nagios/etc/cgi.cfg pelo nome de usuário preferido. Ou você pode adicionar o nome de usuário usando uma vírgula como a seguinte.

authorized_for_system_information=nagiosadmin, username1
authorized_for_configuration_information=nagiosadmin, username1
authorized_for_system_commands=nagiosadmin, username1
authorized_for_all_services=nagiosadmin, username1
authorized_for_all_hosts=nagiosadmin, username1
authorized_for_all_service_commands=nagiosadmin, username1
authorized_for_all_host_commands=nagiosadmin, username1

Você pode adicionar usuários com acesso somente leitura habilitando a seguinte configuração no arquivo, removendo o hash (#) na frente dela. Em seguida, execute o htpasswd com o nome de usuário.

authorized_for_read_only=username2

Reinicie o servidor para que a configuração tenha efeito.

$ sudo systemctl restart httpd

Passo 4 - Instalar Plugins do Nagios

Instale os pré-requisitos necessários para os plugins do Nagios.

$ sudo dnf install epel-release
$ sudo dnf install -y gcc glibc glibc-common make gettext automake autoconf wget openssl-devel net-snmp net-snmp-utils postgresql-devel openldap-devel bind-utils samba-client fping openssh-clients lm_sensors perl-Net-SNMP

Baixe a versão mais recente da página do GitHub dos plugins do Nagios. No momento do tutorial, 2.4.3 é a versão mais recente disponível. Modifique o comando caso você queira uma versão diferente.

$ cd ~
$ sudo wget -O nagios-plugins.tar.gz https://github.com/nagios-plugins/nagios-plugins/releases/download/release-2.4.3/nagios-plugins-2.4.3.tar.gz

Extraia o arquivo tar.

$ sudo tar zxf nagios-plugins.tar.gz

Mova o diretório extraído para o diretório /usr/src.

$ sudo mv nagios-plugins-2.4.3 /usr/src/nagios-plugins

Mude de volta para o diretório /usr/src/nagios-plugins.

$ cd /usr/src/nagios-plugins

Execute os seguintes comandos para compilar e instalar os plugins.

$ sudo ./configure
$ sudo make
$ sudo make install

Passo 5 - Instalar o Plugin check_nrpe

Baixe a versão mais recente da página de lançamentos do NRPE no GitHub. No momento da redação deste tutorial, a versão mais recente disponível é 4.1.0. Modifique o seguinte comando caso você queira uma versão diferente.

$ cd ~
$ wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.1.0/nrpe-4.1.0.tar.gz

Extraia o arquivo.

$ tar zxf nrpe-*.tar.gz

Mova o diretório extraído para o diretório /usr/src.

$ sudo mv nrpe-4.1.0 /usr/src/nrpe

Mude para o diretório /usr/src/nrpe.

$ cd /usr/src/nrpe

Configure e instale o plugin.

$ sudo ./configure
$ sudo make check_nrpe
$ sudo make install-plugin

Isso colocará o plugin check_nrpe no diretório /usr/local/nagios/libexec/.

Passo 6 - Iniciar o Nagios

Com o Nagios e os plugins instalados, é hora de iniciar o serviço Nagios.

$ sudo systemctl start nagios

Verifique o status do serviço para ver se está funcionando corretamente.

$ sudo systemctl status nagios

Interface Web do Nagios

Abra a URL http:///nagios em seu navegador. Você deve ver um prompt de login.

Digite as credenciais que você criou durante o método de autenticação HTTP e você deve ser recebido pela seguinte tela.

Página Inicial do Nagios

Passo 7 - Monitorando Hosts

Para monitorar um host, você precisa instalar o Daemon NRPE e os plugins do Nagios no host. Vamos monitorar um servidor Rocky Linux 9 a partir do nosso servidor Nagios.

Faça login no seu host.

$ ssh user@monitored_server_ip

Instalar Plugins do Nagios

Instale os plugins do Nagios repetindo o passo 4 de antes.

Instalar NRPE

Instale os pré-requisitos necessários para o daemon NRPE.

$ sudo dnf install -y gcc glibc glibc-common openssl openssl-devel perl wget

Baixe o NRPE.

$ cd ~
$ wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.1.0/nrpe-4.1.0.tar.gz

Extraia o arquivo.

$ tar zxf nrpe-*.tar.gz

Mova o diretório extraído para o diretório /usr/src.

$ sudo mv nrpe-4.1.0 /usr/src/nrpe

Mude para o diretório NRPE.

$ cd /usr/src/nrpe

Configure e instale o NRPE.

$ sudo ./configure --enable-command-args
$ sudo make all

Crie o Usuário e grupo.

$ sudo make install-groups-users

Instale os Binários do NRPE, o daemon NRPE e o plugin check_npre.

$ sudo make install

Instale os arquivos de configuração.

$ sudo make install-config

Atualize o arquivo de serviços. O arquivo /etc/services é usado para traduzir nomes de serviços em números de porta.

$ sudo sh -c "echo >> /etc/services"
$ sudo sh -c "sudo echo '# Serviços do Nagios' >> /etc/services"
$ sudo sh -c "sudo echo 'nrpe    5666/tcp' >> /etc/services"

Instale o daemon de serviço NPRE.

$ sudo make install-init
$ sudo systemctl enable nrpe

Você precisa atualizar o arquivo de configuração NPRE localizado em /usr/local/nagios/etc/nrpe.cfg.

Abra o arquivo para edição.

$ sudo nano /usr/local/nagios/etc/nrpe.cfg

Por padrão, o NPRE escuta solicitações apenas do localhost (127.0.0.1). Você precisa adicionar o endereço IP do seu servidor Nagios ao arquivo.

allowed_hosts=127.0.0.1,10.25.5.2

A opção a seguir determina se o daemon NPRE permitirá que os clientes especifiquem argumentos de comando. Permita a opção inserindo o valor como 1, que habilita configurações avançadas do NPRE.

dont_blame_nrpe=1

Em seguida, ao rolar para baixo, você encontrará uma lista de comandos NRPE com suas definições. Todos eles estão comentados. Você precisa descomentá-los para que o Nagios possa usá-los.

Cada comando pode receber argumentos. Alguns dos comandos têm argumentos codificados na frente deles, enquanto outros podem aceitar argumentos do usuário. Cada comando pode ter as seguintes opções de notificação.

  • W significa estados de serviço de Aviso
  • C significa estados de serviço Crítico
  • R significa notificar sobre a recuperação do serviço (estados OK)

Assim, você pode especificar em que nível que tipo de notificação um comando pode enviar. Não vamos nos aprofundar na descrição detalhada e função de cada um dos comandos, pois estão além do escopo deste tutorial.

# Os seguintes exemplos usam argumentos de comando codificados...
# Este é de longe o método mais seguro de usar o NRPE

command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -r -w .15,.10,.05 -c .30,.25,.20
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200

# Os seguintes exemplos permitem argumentos fornecidos pelo usuário e podem
# ser usados apenas se o daemon NRPE foi compilado com suporte para
# argumentos de comando *E* a diretiva dont_blame_nrpe neste
# arquivo de configuração está definida como '1'. Isso representa um risco potencial de segurança, então
# certifique-se de ler o arquivo de SEGURANÇA antes de fazer isso.

### MÉTRICAS DO SISTEMA MISC ###
command[check_users]=/usr/local/nagios/libexec/check_users $ARG1$
command[check_load]=/usr/local/nagios/libexec/check_load $ARG1$
command[check_disk]=/usr/local/nagios/libexec/check_disk $ARG1$
command[check_swap]=/usr/local/nagios/libexec/check_swap $ARG1$
command[check_cpu_stats]=/usr/local/nagios/libexec/check_cpu_stats.sh $ARG1$
command[check_mem]=/usr/local/nagios/libexec/custom_check_mem -n $ARG1$

### SERVIÇOS GENÉRICOS ###
command[check_init_service]=sudo /usr/local/nagios/libexec/check_init_service $ARG1$
command[check_services]=/usr/local/nagios/libexec/check_services -p $ARG1$

### ATUALIZAÇÕES DO SISTEMA ###
command[check_yum]=/usr/local/nagios/libexec/check_yum
#command[check_apt]=/usr/local/nagios/libexec/check_apt

### PROCESSOS ###
command[check_all_procs]=/usr/local/nagios/libexec/custom_check_procs
command[check_procs]=/usr/local/nagios/libexec/check_procs $ARG1$

### ARQUIVOS ABERTOS ###
command[check_open_files]=/usr/local/nagios/libexec/check_open_files.pl $ARG1$

### CONEXÕES DE REDE ###
command[check_netstat]=/usr/local/nagios/libexec/check_netstat.pl -p $ARG1$ $ARG2$

Descomente os comandos acima removendo o símbolo # na frente deles. Você pode descomentar quantos comandos precisar.

Adicione o seguinte comando para verificar o espaço em disco da raiz.

command[check_root]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /

Uma vez que você tenha terminado, salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.

Permita a porta 5666, que é usada pelo plugin NPRE.

$ sudo firewall-cmd --permanent --add-port=5666/tcp

Recarregue o firewall.

$ sudo firewall-cmd --reload

Inicie o NPRE.

$ sudo systemctl start nrpe

Todos os comandos a partir daqui serão executados no servidor Nagios principal, a menos que especificado de outra forma.

Verifique se o NRPE está funcionando executando o seguinte comando em seu servidor Nagios principal.

$ /usr/local/nagios/libexec/check_nrpe -H monitored_server_ip

Você deve ver a seguinte saída.

NRPE v4.1.0

Para monitorar os hosts, você precisará criar arquivos de configuração para cada host que deseja monitorar. Esses hosts se tornarão acessíveis através da interface web do Nagios.

Crie o diretório para armazenar os arquivos de configuração e dê as permissões adequadas.

$ sudo mkdir /usr/local/nagios/etc/servers
$ sudo chown -R nagios:nagios /usr/local/nagios/etc/servers
$ sudo chmod g+w /usr/local/nagios/etc/servers

Abra o arquivo de configuração do Nagios /usr/local/nagios/etc/nagios.cfg para edição.

$ sudo nano /usr/local/nagios/etc/nagios.cfg

Encontre o seguinte arquivo e descomente removendo o # na frente dele.

cfg_dir=/usr/local/nagios/etc/servers

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

O próximo passo é adicionar o comando check_nrpe ao arquivo /usr/local/nagios/etc/objects/commands.cfg para que ele possa ser usado para monitorar hosts.

Abra o arquivo /usr/local/nagios/etc/objects/commands.cfg para edição.

$ sudo nano /usr/local/nagios/etc/objects/commands.cfg

Cole o seguinte código no final do arquivo.

define command {
    command_name   check_nrpe
    command_line   $USER1$/check_nrpe -H $HOSTADDRESS$ -t 30 -c $ARG1$ $ARG2$
}

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

Crie um novo arquivo de configuração para o host remoto no diretório /usr/local/nagios/etc/servers/.

$ sudo nano /usr/local/nagios/etc/servers/yourhost.cfg

Adicione o seguinte código substituindo o valor host_name pelo nome do seu host remoto, o valor alias pela descrição do seu host e o valor address pelo endereço IP do seu host remoto.

define host {
        use                             linux-server
        host_name                       monitored_server_host_name
        alias                           Meu servidor cliente
        address                         monitored_server_private_ip
        max_check_attempts              5
        check_period                    24x7
        notification_interval           30
        notification_period             24x7
}

Com essa configuração, o Nagios informará quando o host estiver ativo ou inativo. Você precisará adicionar mais serviços para monitorar coisas adicionais.

Adicione o seguinte bloco para verificar as estatísticas de conexão do host.

define service {
      use                             generic-service
      host_name                       monitored_server_host_name
      service_description             PING
      check_command                   check_ping!200.0,20%!400.0,90%
}

Adicione o seguinte bloco para monitorar a carga média do seu servidor.

define service {
        use                             generic-service
        host_name                       monitored_server_host_name
        service_description             Carga média
        check_command                   check_nrpe!check_load!-a '-w 0.7,0.6,0.5 -c 0.9,0.8,0.7'
}

A diretiva use generic-service diz ao Nagios para herdar de um modelo chamado generic-service pré-definido pelo Nagios.

Em seguida, adicione um bloco para monitorar o uso do disco. Modifique o comando com os rótulos de disco apropriados.

define service {
        use                             generic-service
        host_name                       monitored_server_host_name
        service_description             /dev/vda1 espaço livre
        check_command                   check_nrpe!check_disk!-a '-w 20% -c 10% -p /dev/vda1'
}

Monitore o SSH usando o seguinte bloco. O bloco a seguir verificará o servidor SSH e gerará um alerta se o servidor não responder dentro de 5 segundos.

define service {
    use                                 generic-service
    host_name                           monitored_server_host_name
    service_description                 Verificação da Versão SSH
    check_command                       check_ssh!-t 5
}

Vamos verificar o número total de processos em execução.

define service{                     
    use                                 generic-service            
    host_name                monitored_server_host_name            
    service_description      Total de Processos            
    check_command            check_nrpe!check_total_procs
}

Verifique os usuários atualmente conectados.

define service{                     
    use                                 generic-service            
    host_name                           monitored_server_host_name            
    service_description                 Usuários Atuais            
    check_command                        check_nrpe!check_users!-a '-w 5 -c 10'
}

Verifique o uso do disco SWAP.

define service{                     
    use                                 generic-service            
    host_name                           monitored_server_host_name            
    service_description                 Uso de SWAP            
    check_command                        check_nrpe!check_swap!-a '-w 40% -c 20%'
}

Verifique a partição raiz e seu uso de disco.

define service{
    use                                  generic-service
    host_name                            nagiosclient
    service_description                  Raiz / Partição
    check_command                        check_nrpe!check_disk!-a '-w 20% -c 10% -p /'
}

Verifique se um servidor HTTP está instalado.

define service {
    use                                  generic-service
    host_name                            nagiosclient
    service_description                  HTTP
    check_command                        check_http
}

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

Reinicie o Nagios.

$ sudo systemctl restart nagios

Verificar Monitores

Abra seu painel do Nagios e clique na opção Hosts na barra lateral esquerda. Você deve ver o host recém-configurado junto com o localhost na página.

Monitoramento de Hosts do Nagios

Clique no host recém-configurado (nagiosclient) e se tudo estiver configurado corretamente, você deve ver seu status. Pode levar um minuto ou mais para que o status apareça.

Monitoramento de Serviços do Host do Nagios

Para ver os serviços ou os monitores que configuramos, clique na opção Ver Detalhes do Status Para Este Host e você deve ser recebido pela seguinte página.

Status dos Monitores de Serviço do Nagios

Isso deve lhe dar uma ideia adequada de como seus hosts estão funcionando.

Passo 8 - Instalar Nginx

Você pode executar o Nagios diretamente via o IP do servidor ou hospedá-lo em seu nome de domínio. O Nagios já vem com arquivos de configuração do Apache, mas usaremos o Nginx para executá-lo. Usaremos o Nginx como um proxy reverso na frente do servidor web Apache.

O Apache já está rodando na porta 80. Portanto, precisamos mudar isso primeiro. E então, podemos executar o Nginx como um proxy.

Abra o arquivo /etc/httpd/conf/httpd.conf para edição.

$ sudo nano /etc/httpd/conf/httpd.conf

Mude a linha Listen 80 para Listen 8080. Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado. Como usaremos o nome de domínio para acessar o Nagios, não precisamos abrir a porta 8080 para acesso público.

Reinicie o servidor Apache.

$ sudo systemctl restart httpd

Em seguida, instale o Nginx.

O Rocky Linux 9 vem com uma versão mais antiga do Nginx. Você precisa baixar o repositório oficial do Nginx para instalar a versão mais recente.

Crie e abra o arquivo /etc/yum.repos.d/nginx.repo para criar o repositório oficial do Nginx.

$ sudo nano /etc/yum.repos.d/nginx.repo

Cole o seguinte código nele.

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

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

Instale o servidor Nginx.

$ sudo dnf install nginx

Verifique a instalação.

$ nginx -v
nginx version: nginx/1.22.1

Habilite e inicie o servidor Nginx.

$ sudo systemctl enable nginx --now

Passo 9 - Instalar e Configurar SSL

Antes de configurar o Nginx, configuraremos e configuraremos um certificado SSL para o domínio que vamos usar com o Nagios. No nosso caso, usaremos http://nagios.example.com.

Usaremos o instalador de pacotes Snapd para isso. Como o Rocky Linux não vem com ele, instale o instalador Snapd. Ele requer o repositório EPEL para funcionar, que já instalamos anteriormente, então podemos pular isso.

Instale o Snapd.

$ sudo dnf install -y snapd

Habilite e inicie o serviço Snap.

$ sudo systemctl enable snapd --now

Instale o pacote Snap core e certifique-se de que sua versão do Snapd esteja atualizada.

$ sudo snap install core && sudo snap refresh core

Crie os links necessários para o Snapd funcionar.

$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh

Emita o seguinte comando para instalar 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

Verifique a instalação.

$ certbot --version
certbot 2.3.0

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 nagios.example.com

O comando acima baixará um certificado para o diretório /etc/letsencrypt/live/nagios.example.com em seu servidor.

Gere um certificado de grupo Diffie-Hellman.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

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

$ sudo certbot renew --dry-run

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

Passo 10 - Configurar Nginx

Antes de configurar o Nginx, há outra alteração que devemos fazer. Por padrão, o Apache serve o Nagios via http://:8080/nagios. Agora, podemos configurar um proxy diretamente com o Nagios, mas ele será servido via https://nagios.example.com/nagios. Podemos fazer um redirecionamento no Nginx para a URL raiz, o que complica as coisas. Por essa razão, faremos uma alteração no Apache e no Nagios diretamente.

Primeiro, abra o arquivo /usr/local/nagios/etc/cgi.cfg para edição.

$ sudo nano /usr/local/nagios/etc/cgi.cfg

Mude url_html_path=/nagios para url_html_path=/.

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

Em seguida, abra /etc/httpd/conf.d/nagios.conf para edição.

$ sudo nano /etc/httpd/conf.d/nagios.conf

Mude ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin" para ScriptAlias /cgi-bin "/usr/local/nagios/sbin".

Comente a linha Alias /nagios "/usr/local/nagios/share" mudando-a para o seguinte.

#Alias /nagios "/usr/local/nagios/share" 

Adicione a seguinte linha abaixo dela.

DocumentRoot /usr/local/nagios/share

Adicione a seguinte linha ao topo do arquivo.


Adicione a seguinte linha na parte inferior do arquivo.


Uma vez que você tenha terminado, salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.

E por último, abra o arquivo /usr/local/nagios/share/config.inc.php para edição.

$ sudo nano /usr/local/nagios/share/config.inc.php

Mude $cfg['cgi_base_url']='/nagios/cgi-bin'; para $cfg['cgi_base_url']='/cgi-bin';.

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

Reinicie tanto o Apache quanto o Nagios.

$ sudo systemctl restart httpd
$ sudo systemctl restart nagios

Para confirmar que tudo funciona corretamente, abra a URL http://:1080 em seu navegador e você deve ver o Nagios funcionando corretamente. Além disso, certifique-se de que os dados dos Hosts estão sendo recebidos.

Uma vez que tudo esteja funcionando, podemos prosseguir para criar nosso arquivo de configuração para o Nginx.

Crie um arquivo de configuração para o Nagios no diretório /etc/nginx/conf.d.

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

Cole o seguinte código nele.

server {
     listen 80; listen [::]:80;
     server_name nagios.example.com;
     return 301 https://$host$request_uri;
}

server {
        server_name nagios.example.com;

        listen 443 ssl http2;
        listen [::]:443 ssl http2;

        access_log /var/log/nginx/nagios.access.log;
        error_log /var/log/nginx/nagios.error.log;

        ssl_certificate /etc/letsencrypt/live/nagios.example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/nagios.example.com/privkey.pem;
        ssl_trusted_certificate /etc/letsencrypt/live/nagios.example.com/chain.pem;
        ssl_session_timeout 1d;
        ssl_session_cache shared:MozSSL:10m;
        ssl_session_tickets off;

        ssl_protocols TLSv1.2 TLSv1.3;
        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_stapling on;
        ssl_stapling_verify on;
        ssl_dhparam /etc/ssl/certs/dhparam.pem;
 
       location / {
           proxy_pass http://127.0.0.1:8080;
           proxy_set_header Host $host;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-Proto $scheme;
       }
}

Uma vez que você tenha terminado, salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.

Valide o arquivo de configuração.

$ sudo nginx -t

Se você receber o seguinte erro, precisará editar o arquivo /etc/nginx/nginx.conf para adicionar/ajustar o tamanho da variável server_names_hash_bucket_size.

nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size

Abra o arquivo /etc/nginx/nginx.conf para edição.

$ sudo nano /etc/nginx/nginx.conf

Adicione a seguinte linha antes

server_names_hash_bucket_size  64;

Uma vez que você tenha terminado, salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado. Valide o Nginx novamente.

Se você não ver problemas, então reinicie o servidor Nginx.

$ sudo systemctl restart nginx

Configurar SELinux

Se você manteve o SELinux ativado, execute o seguinte comando para permitir que o Nginx se conecte à rede.

$ sudo setsebool -P httpd_can_network_connect on

Acesse o domínio https://nagios.example.com em seu navegador, e você deve ser recebido pela página inicial do Nagios.

Conclusão

Você instalou e configurou o Nagios em um servidor Rocky Linux 9 para monitorar vários serviços como carga, uso de disco/swap, usuários, total de processos, HTTP e SSH. Isso conclui nosso tutorial. Para aprender mais, você deve verificar a documentação oficial do Nagios que cobre monitoramento e vários comandos em grande detalhe. 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.