One place for hosting & domains

      Zabbix

      Como instalar e configurar o Zabbix para monitorar servidores remotos com segurança no Ubuntu 20.04


      O autor selecionou o Computer History Museum para receber uma doação como parte do programa Write for DOnations.

      Introdução

      O Zabbix é um software de monitoramento de código aberto para redes e aplicativos. Ele oferece monitoramento em tempo real de milhares de métricas coletadas a partir de servidores, máquinas virtuais, dispositivos de rede e aplicativos Web. Essas métricas podem ajudar você a determinar a integridade atual da sua infraestrutura de TI e a detectar problemas com componentes de hardware ou software antes que os clientes se queixem. As informações úteis são armazenadas em um banco de dados para que você possa analisar os dados ao longo do tempo e melhorar a qualidade dos serviços prestados ou planejar atualizações para o seu equipamento.

      O Zabbix utiliza diversas opções para coletar métricas, incluindo o monitoramento sem agente de serviços de usuário e arquitetura cliente-servidor. Para coletar métricas do servidor, ele usa um pequeno agente no cliente monitorado para coletar dados e enviá-los para o servidor do Zabbix. O Zabbix suporta comunicação criptografada entre o servidor e os clientes conectados, para que seus dados estejam protegidos enquanto viajam por redes inseguras.

      O servidor do Zabbix armazena seus dados em um banco de dados relacional alimentado pelo MySQL ou PostgreSQL. Você também pode armazenar dados históricos em bancos de dados NoSQL como o Elasticsearch e o TimescaleDB. O Zabbix fornece uma interface Web para que você possa visualizar dados e configurar as definições do sistema.

      Neste tutorial, você irá configurar o Zabbix em duas máquinas Ubuntu 20.04. Uma será configurada como o servidor do Zabbix e a outra como um cliente que você irá monitorar. O servidor do Zabbix irá usar um banco de dados MySQL para gravar os dados de monitoramento e usar o Nginx para atender à interface Web.

      Pré-requisitos

      Para seguir este tutorial, será necessário:

      • Dois servidores Ubuntu 20.04 configurados seguindo o Guia de configuração inicial de servidor para o Ubuntu 20.04, incluindo um usuário não root com privilégios sudo e um firewall configurado com o ufw. Em um dos servidores, você irá instalar o Zabbix; este tutorial irá se referir a ele como o servidor Zabbix. Ele irá monitorar seu segundo servidor; este segundo servidor será referido como o segundo servidor Ubuntu.

      • O servidor que irá executar o servidor Zabbix precisa do Nginx, MySQL e PHP instalados. Siga os Passos 1-3 do nosso guia sobre a Pilha LEMP no Ubuntu 20.04 para configurá-los em seu servidor Zabbix.

      • Um nome de domínio registrado. Este tutorial utilizará your_domain durante todo o processo. Você pode comprar um nome de domínio do Namecheap, obter um gratuitamente com o Freenom ou usar o registrador de domínios de sua escolha.

      • Ambos os registros de DNS a seguir serão configurados para o seu servidor Zabbix. Se você estiver usando a DigitalOcean, consulte nossa documentação de DNS para maiores detalhes sobre como adicioná-los.

        • Um registro A com your_domain apontando para o endereço IP público do seu servidor Zabbix.
        • Um registro A com o www.your_domain apontando para o endereço de IP público do seu servidor Zabbix.

      Além disso, o servidor Zabbix é usado para acessar informações valiosas sobre sua infraestrutura. Dessa forma, para garantir que usuários não autorizados tenham acesso a ele, é importante que você mantenha seu servidor seguro instalando um certificado TLS/SSL. Isso é opcional, mas altamente recomendado. Se você quiser proteger seu servidor, siga o guia do Let’s Encrypt no Ubuntu 20.04 depois do Passo 3 deste tutorial.

      Passo 1 — Instalando o servidor Zabbix

      Primeiro, você precisa instalar o Zabbix no servidor onde instalou o MySQL, o Nginx e o PHP. Faça login nesta máquina com seu usuário não root:

      • ssh sammy@zabbix_server_ip_address

      O Zabbix está disponível no gerenciador de pacotes do Ubuntu, mas está desatualizado. Sendo assim, use o repositório oficial do Zabbix para instalar a versão estável mais recente. Baixe e instale o pacote de configuração do repositório:

      • wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
      • sudo dpkg -i zabbix-release_5.0-1+focal_all.deb

      Você verá o seguinte resultado:

      Output

      Selecting previously unselected package zabbix-release. (Reading database ... 64058 files and directories currently installed.) Preparing to unpack zabbix-release_5.0-1+focal_all.deb ... Unpacking zabbix-release (1:5.0-1+focal) ... Setting up zabbix-release (1:5.0-1+focal) ...

      Atualize o índice de pacotes para que o novo repositório seja incluído:

      Em seguida, instale o servidor Zabbix e o front-end Web com suporte ao banco de dados MySQL:

      • sudo apt install zabbix-server-mysql zabbix-frontend-php

      Além disso, instale o agente Zabbix, que lhe permitirá coletar dados sobre o status do próprio servidor Zabbix.

      • sudo apt install zabbix-agent

      Antes de poder utilizar o Zabbix, você precisa configurar um banco de dados para conter os dados que o servidor Zabbix irá coletar de seus agentes. Você pode fazer isso no próximo passo.

      Passo 2 — Configurando o banco de dados MySQL para o Zabbix

      Você precisa criar um novo banco de dados MySQL e preenchê-lo com algumas informações básicas para torná-lo adequado para o Zabbix. Você também criará um usuário específico para este banco de dados para que o Zabbix não faça login no MySQL com a conta root.

      Faça login no MySQL com o usuário root:

      Crie o banco de dados Zabbix com suporte a caracteres UTF-8:

      • create database zabbix character set utf8 collate utf8_bin;

      Em seguida, crie o usuário que o servidor Zabbix irá usar,dê-lhe acesso ao novo banco de dados e defina a senha para o usuário:

      • create user zabbix@localhost identified by 'your_zabbix_mysql_password';
      • grant all privileges on zabbix.* to zabbix@localhost;

      Isso ajeita a situação do usuário e do banco de dados. Saia do console do banco de dados

      Em seguida, será necessário importar o esquema inicial e os dados. A instalação do Zabbix forneceu-lhe um arquivo que configura isso.

      Execute o comando a seguir para configurar o esquema e importar os dados no banco de dados zabbix. Use o zcat, já que os dados no arquivo estão comprimidos:

      • zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

      Digite a senha para o usuário zabbix do MySQL que você configurou quando solicitado.

      Este comando pode demorar um ou dois minutos para ser executado. Se aparecer o erro ERROR 1045 (28000): Access need for userzabbix@'localhost' (using password: YES), então certifique-se de que você usou a senha certa para o usuário zabbix.

      Para que o servidor Zabbix use este banco de dados, é preciso definir a senha do banco de dados no arquivo de configuração do servidor Zabbix. Abra o arquivo de configuração no seu editor de texto preferido. Este tutorial usará o nano.

      • sudo nano /etc/zabbix/zabbix_server.conf

      Procure pela seguinte parte do arquivo:

      /etc/zabbix/zabbix_server.conf

      ...
      ### Option: DBPassword                           
      #       Database password. Ignored for SQLite.   
      #       Comment this line if no password is used.
      #                                                
      # Mandatory: no                                  
      # Default:                                       
      # DBPassword=
      ...
      

      Esses comentários no arquivo explicam como se conectar ao banco de dados. Você precisa definir o valor do DBPassword no arquivo como sendo a senha para o usuário do seu banco de dados. Adicione esta linha após esses comentários para configurar o banco de dados:

      /etc/zabbix/zabbix_server.conf

      ...
      DBPassword=your_zabbix_mysql_password
      ...
      

      Salve e feche o zabbix_server.conf pressionando CTRL+X, seguido de Y e, em seguida, ENTER se estiver usando o nano.

      Agora, você configurou o servidor Zabbix para se conectar ao banco de dados. Em seguida, você irá configurar o servidor Web do Nginx para atender o front-end do Zabbix.

      Passo 3 — Configurando o Nginx para o Zabbix

      Para configurar o Nginx automaticamente, instale o pacote de configuração automática:

      • sudo apt install zabbix-nginx-conf

      Como resultado, você receberá o arquivo de configuração /etc/zabbix/nginx.conf, bem como um link para ele no diretório de configuração do Nginx /etc/nginx/conf.d/zabbix.conf.

      Em seguida, é preciso fazer alterações neste arquivo. Abra o arquivo de configuração:

      • sudo nano /etc/zabbix/nginx.conf

      O arquivo contém uma configuração de bloco do servidor Nginx gerada automaticamente. Ele contém duas linhas que determinam o nome do servidor e em qual porta ele está escutando:

      /etc/zabbix/nginx.conf

      server {
      #        listen          80;
      #        server_name     example.com;
      ...
      

      Descomente as duas linhas, e substitua o example.com pelo nome do seu domínio. Suas configurações vão ficar assim:

      /etc/zabbix/nginx.conf

      server {
              listen          80;
              server_name     your_domain;
      ...
      

      Salve e feche o arquivo. Em seguida, teste para garantir que não haja erros de sintaxe em qualquer um dos seus arquivos do Nginx e recarregue a configuração:

      • sudo nginx -t
      • sudo nginx -s reload

      Agora que o Nginx está configurado para atender o front-end do Zabbix, você fará algumas modificações em sua configuração do PHP para que a interface Web do Zabbix funcione corretamente.

      Nota: Como mencionado na seção de pré-requisitos, é recomendado que você habilite o SSL/TLS no seu servidor. Se você quiser fazer isso, siga nosso tutorial sobre o Let’s Encrypt no Ubunutu 20.04 antes de seguir para o Passo 4 para obter um certificado SSL gratuito para o Nginx. Este processo irá detectar automaticamente o bloco do seu servidor Zabbix e configurá-lo para o HTTPS. Depois de obter seus certificados SSL/TLS, retorne para completar este tutorial.

      Passo 4 — Configurando o PHP para o Zabbix

      A interface Web do Zabbix é escrita em PHP e requer algumas configurações especiais do servidor PHP. O processo de instalação do Zabbix criou um arquivo PHP-FPM de configuração que contém essas configurações. Ele está localizado no diretório /etc/zabbix e é carregado automaticamente pelo PHP-FPM. Você precisa fazer uma pequena alteração neste arquivo. Sendo assim, abra o arquivo da seguinte forma:

      • sudo nano /etc/zabbix/php-fpm.conf

      O arquivo contém as configurações PHP que atendem aos requisitos necessários para a interface Web do Zabbix. No entanto, a configuração de fuso horário vem transformada em comentário por padrão. Para garantir que o Zabbix use o horário correto, é necessário definir o fuso horário apropriado:

      /etc/zabbix/php-fpm.conf

      ...
      php_value[max_execution_time] = 300
      php_value[memory_limit] = 128M
      php_value[post_max_size] = 16M
      php_value[upload_max_filesize] = 2M
      php_value[max_input_time] = 300
      php_value[max_input_vars] = 10000
      ; php_value[date.timezone] = Europe/Riga
      

      Descomente a linha de fuso horário destacada no bloco de código anterior e altere-a para o seu fuso horário. Você pode usar esta lista de fusos horários suportados para encontrar o fuso certo para você. Então, salve e feche o arquivo.

      Agora, reinicie o PHP-FPM para aplicar essas novas configurações:

      • sudo systemctl restart php7.4-fpm.service

      Agora, você pode iniciar o servidor Zabbix:

      • sudo systemctl start zabbix-server

      Em seguida, verifique se o servidor Zabbix está sendo executado corretamente:

      • sudo systemctl status zabbix-server

      Você verá o seguinte status:

      Output

      ● zabbix-server.service - Zabbix Server Loaded: loaded (/lib/systemd/system/zabbix-server.service; disabled; vendor preset: enabled) Active: active (running) since Fri 2020-06-12 05:59:32 UTC; 36s ago Process: 27026 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS) ...

      Por fim, habilite o servidor para que seja iniciado durante a inicialização do sistema:

      • sudo systemctl enable zabbix-server

      O servidor está configurado e conectado ao banco de dados do servidor. Em seguida, configure o front-end Web.

      Passo 5 — Configurando a interface Web do Zabbix

      A interface web permite que você veja relatórios e adicione os hosts que deseja monitorar. No entanto, ela precisa de alguns ajustes iniciais antes que você possa usá-la. Inicie seu navegador e vá para o endereço http://zabbix_server_name ou https://zabbix_server_name caso tenha configurado o Let’s Encrypt. Na primeira tela, você verá uma mensagem de boas-vindas. Clique em Next step (Próximo passo) para continuar.

      Na próxima tela, você verá a tabela que lista todos os pré-requisitos para executar o Zabbix.

      Pré-requisitos

      Todos os valores nesta tabela devem ser OK. Portanto, verifique se eles estão de acordo. Certifique-se de descer e observar todos os pré-requisitos. Depois de verificar se tudo está pronto, clique em Next step para prosseguir.

      A próxima tela pede informações sobre a conexão do banco de dados.

      Conexão BD

      Você já informou o servidor Zabbix sobre seu banco de dados, mas a interface Web do Zabbix também precisa de acesso ao banco de dados para gerenciar os hosts e ler dados. Portanto, digite as credenciais do MySQL que você configurou no Passo 2. Clique em Next step para prosseguir.

      Na próxima tela, deixe as opções nos valores padrão.

      Detalhes do servidor Zabbix

      O Name é opcional; ele é usado na interface Web para distinguir um servidor de outro caso você tenha vários servidores de monitoramento. Clique em Next step para prosseguir.

      A próxima tela irá mostrar o resumo da pré-instalação para que você possa confirmar se tudo está correto.

      Resumo

      Clique em Next step para prosseguir para a tela final.

      A configuração da interface Web agora foi concluída. Esse processo cria o arquivo de configuração /usr/share/zabbix/conf/zabbix.conf.php. Se quiser, você pode fazer um backup dele para usá-lo no futuro. Clique em Finish para prosseguir para a tela de login. O usuário padrão é o Admin e a senha é zabbix.

      Antes de fazer login, configure o agente Zabbix no seu segundo servidor Ubuntu.

      Passo 6 — Instalando e configurando o agente Zabbix

      Agora, você precisa configurar o software agente que enviará dados de monitoramento para o servidor Zabbix.

      Faça login no segundo servidor Ubuntu:

      • ssh sammy@second_ubuntu_server_ip_address

      Assim como no servidor Zabbix, execute os comandos a seguir para instalar o pacote de configuração do repositório:

      • wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
      • sudo dpkg -i zabbix-release_5.0-1+focal_all.deb

      Em seguida, atualize o índice do pacote:

      Depois disso, instale o agente Zabbix:

      • sudo apt install zabbix-agent

      Embora o Zabbix dê suporte à criptografia baseada em certificados, configurar uma autoridade de certificados está fora do escopo deste tutorial. Mas é possível usar chaves pré-compartilhadas (PSK) para proteger a conexão entre o servidor e o agente.

      Primeiro, gere uma PSK:

      • sudo sh -c "openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk"

      Mostre a chave usando o cat para que você possa copiá-la em algum lugar:

      • cat /etc/zabbix/zabbix_agentd.psk

      A chave se parecerá com esta:

      Output

      75ad6cb5e17d244ac8c00c96a1b074d0550b8e7b15d0ab3cde60cd79af280fca

      Salve ela para mais tarde; você precisará dela para configurar o host.

      Agora, edite as configurações do agente Zabbix para estabelecer sua conexão segura com servidor Zabbix. Abra o arquivo de configuração do agente no seu editor de texto:

      • sudo nano /etc/zabbix/zabbix_agentd.conf

      Cada configuração dentro deste arquivo é documentada através de comentários informativos ao longo do arquivo, mas você só precisa editar algumas delas.

      Primeiro, você precisa editar o endereço IP do servidor Zabbix. Procure a seguinte sessão:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: Server
      #       List of comma delimited IP addresses, optionally in CIDR notation, or DNS names of Zabbix servers and Zabbix proxies.
      #       Incoming connections will be accepted only from the hosts listed here.
      #       If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally
      #       and '::/0' will allow any IPv4 or IPv6 address.
      #       '0.0.0.0/0' can be used to allow any IPv4 address.
      #       Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
      #
      # Mandatory: yes, if StartAgents is not explicitly set to 0
      # Default:
      # Server=
      
      Server=127.0.0.1
      ...
      

      Mude o valor padrão para o IP do seu servidor Zabbix:

      /etc/zabbix/zabbix_agentd.conf

      ...
      Server=zabbix_server_ip_address
      ...
      

      Por padrão, o servidor Zabbix se conecta ao agente. Mas para algumas verificações (por exemplo, monitorando dos logs), uma conexão reversa é necessária. Para uma operação correta, é necessário especificar o endereço do servidor Zabbix e um nome de host único.

      Encontre a seção que configura as verificações ativas e altere os valores padrão:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ##### Active checks related
      
      ### Option: ServerActive
      #       List of comma delimited IP:port (or DNS name:port) pairs of Zabbix servers and Zabbix proxies for active checks.
      #       If port is not specified, default port is used.
      #       IPv6 addresses must be enclosed in square brackets if port for that host is specified.
      #       If port is not specified, square brackets for IPv6 addresses are optional.
      #       If this parameter is not specified, active checks are disabled.
      #       Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1]
      #
      # Mandatory: no
      # Default:
      # ServerActive=
      
      ServerActive=zabbix_server_ip_address
      
      ### Option: Hostname
      #       Unique, case sensitive hostname.
      #       Required for active checks and must match hostname as configured on the server.
      #       Value is acquired from HostnameItem if undefined.
      #
      # Mandatory: no
      # Default:
      # Hostname=
      
      Hostname=Second Ubuntu Server
      ...
      

      Em seguida, encontre a seção que configura a conexão segura ao servidor Zabbix e habilite o suporte às chaves pré-compartilhadas. Encontre a seção TLSConnect, que se parece com esta:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: TLSConnect
      #       How the agent should connect to server or proxy. Used for active checks.
      #       Only one value can be specified:
      #               unencrypted - connect without encryption
      #               psk         - connect using TLS and a pre-shared key
      #               cert        - connect using TLS and a certificate
      #
      # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
      # Default:
      # TLSConnect=unencrypted
      ...
      

      Em seguida, adicione esta linha para configurar o suporte às chaves pré-compartilhadas:

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSConnect=psk
      ...
      

      Depois disso, localize a seção TLSAccept, que se parece com esta:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: TLSAccept
      #       What incoming connections to accept.
      #       Multiple values can be specified, separated by comma:
      #               unencrypted - accept connections without encryption
      #               psk         - accept connections secured with TLS and a pre-shared key
      #               cert        - accept connections secured with TLS and a certificate
      #
      # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
      # Default:
      # TLSAccept=unencrypted
      ...
      

      Configure as conexões de entrada para suportarem chaves pré-compartilhadas, adicionando esta linha:

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSAccept=psk
      ...
      

      Depois disso, localize a seção TLSPSKIdentity, que se parece com esta:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: TLSPSKIdentity
      #       Unique, case sensitive string used to identify the pre-shared key.
      #
      # Mandatory: no
      # Default:
      # TLSPSKIdentity=
      ...
      

      Escolha um nome único para identificar sua chave pré-compartilhada, adicionando esta linha:

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSPSKIdentity=PSK 001
      ...
      

      Você irá usá-lo como a PSK ID ao adicionar seu host através da interface Web do Zabbix.

      Então, defina a opção que aponta para sua chave pré-compartilhada previamente criada. Localize a opção TLSPSKFile:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: TLSPSKFile
      #       Full pathname of a file containing the pre-shared key.
      #
      # Mandatory: no
      # Default:
      # TLSPSKFile=
      ...
      

      Adicione esta linha para apontar o agente Zabbix para o seu arquivo PSK que você criou:

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSPSKFile=/etc/zabbix/zabbix_agentd.psk
      ...
      

      Salve e feche o arquivo. Agora, você pode reiniciar o agente Zabbix e defini-lo para iniciar durante a inicialização do sistema:

      • sudo systemctl restart zabbix-agent
      • sudo systemctl enable zabbix-agent

      Para garantir que tudo esteja funcionando, verifique se o agente Zabbix está sendo executado corretamente:

      • sudo systemctl status zabbix-agent

      Você verá o seguinte status, indicando que o agente está em execução:

      Output

      ● zabbix-agent.service - Zabbix Agent Loaded: loaded (/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-06-12 08:19:54 UTC; 25s ago ...

      O agente irá escutar na porta 10050 para conexões vindas do servidor. Configure o UFW para permitir conexões nesta porta:

      Aprenda mais sobre o UFW em Como configurar um firewall com o UFW no Ubuntu 20.04.

      Seu agente agora está pronto para enviar dados para o servidor Zabbix. Mas para poder usá-lo, é necessário conectar-se a ele a partir do console Web do servidor. No próximo passo, você irá finalizar a configuração.

      Passo 7 — Adicionando o novo host ao servidor Zabbix

      Instalar um agente em um servidor que você deseja monitorar corresponde a apenas metade do processo. Cada host que você quiser monitorar precisa estar registrado no servidor Zabbix. Isso pode ser feito através da interface Web.

      Faça login na interface Web do servidor Zabbix navegando até o endereço http://zabbix_server_name ou https://zabbix_server_name:

      A tela de login do Zabbix

      Assim que estiver conectado, clique em Configuration e depois em Hosts na barra de navegação à esquerda. Então, clique no botão Create host no canto superior direito da tela. Isso abrirá a página de configuração do host.

      Criando um host

      Altere o valor do Host name (nome do host) e IP address (endereço IP) e para que reflitam o nome do host e endereço IP do seu segundo servidor Ubuntu. Em seguida, adicione o host a um grupo. Você pode selecionar um grupo existente, como por exemplo, Linux servers, ou criar seu próprio grupo. O host pode pertencer a vários grupos. Para fazer isso, digite o nome de um grupo existente ou novo no campo Groups e selecione o valor desejado na lista proposta.

      Antes de adicionar o grupo, clique na guia Templates.

      Adicionando um modelo ao host

      Digite Template OS Linux by Zabbix agent no campo Search e então selecione-o na lista para adicionar este modelo ao host.

      Em seguida, vá até a guia Encryption . Selecione PSK para ambos Connections to host e Connections from host. Então, defina PSK identity como PSK 001, que é o valor da configuração TLSPSKIdentity do agente Zabbix que você configurou anteriormente. Então, defina o valor de PSK como a chave que você gerou para o agente Zabbix. Ela é aquela armazenada no arquivo /etc/zabbix/zabbix_agentd.psk na máquina do agente.

      Configurando a criptografia

      Por fim, clique no botão Add no final do formulário para criar o host.

      Você verá seu novo host na lista. Espere por um minuto e recarregue a página. Você verá rótulos verdes indicando que tudo está funcionando corretamente e que a conexão está criptografada.

      Zabbix shows your new host

      Caso tenha servidores adicionais que precise monitorar, faça login em cada host, instale o agente Zabbix, gere uma chave PSK, configure o agente e adicione o host à interface Web seguindo os mesmo passos que você seguiu para adicionar seu primeiro host.

      O servidor Zabbix agora está monitorando seu segundo servidor Ubuntu. Agora, configure notificações de e-mail para ser notificado sobre problemas que venham a acontecer.

      Passo 8 — Configurando as notificações de e-mail

      O Zabbix é compatível automaticamente com muitos tipos de notificações: e-mail, OTRS, Slack, Telegram, SMS, etc. Veja a lista completa de integrações no site do Zabbix.

      Para exemplificar, este tutorial irá configurar notificações para o tipo de mídia Email.

      Clique em Administration e então em Media types na barra de navegação à esquerda. Você verá a lista de todos os tipos de mídia. Existem duas opções pré-configuradas para e-mails: notificação com texto sem formatação e as notificações em HTML. Neste tutorial você irá usar uma notificação com texto sem formatação. Clique em Email.

      Ajuste as opções SMTP de acordo com as configurações fornecidas pelo seu serviço de e-mail. Este tutorial usa as capacidades SMTP do Gmail para configurar as notificações de e-mail; caso queira obter mais informações sobre como fazer esta configuração, consulte How To Use Google’s SMTP Server.

      Nota: se você usar a verificação de dois passos com o Gmail, é necessário gerar uma senha de app para o Zabbix. Será necessário inserir uma senha de app apenas uma vez durante a configuração. Encontre mais instruções sobre como gerar esta senha no Google Help Center.

      Se estiver usando o Gmail, digite smtp.gmail.com no campo SMTP server, 465 no campo SMTP server port, gmail.com em SMTP helo e seu e-mail em SMTP email. Em seguida, escolha SSL/TLS para Connection security e Username and password para Authentication. Digite seu endereço Gmail em Username, e a senha do app que você gerou a partir da sua conta Google em Password.

      Configurando o tipo e-mail de mídia

      Na guia Message templates, você pode ver a lista de mensagens pré-definidas para vários tipos de notificações. Por fim, clique no botão Update no final do formulário para atualizar os parâmetros de e-mail.

      Agora, você pode testar o envio de notificações. Para fazer isso, clique no link sublinhado Test na linha correspondente.

      Uma janela pop-up aparecerá. Digite seu endereço de e-mail no campo Send to e clique no botão Test. Você verá uma mensagem sobre o envio ter sido realizado com sucesso e receberá uma mensagem de teste.

      Testando o e-mail

      Feche o pop-up clicando no botão Cancel.

      Agora, crie um novo usuário. Clique em Administration, e então em Users na barra de navegação à esquerda. Você verá a lista de usuários. Em seguida, clique no botão Create user no canto superior direito da tela. Isso abrirá a página de configuração do usuário:

      Criando um usuário

      Digite o novo nome de usuário no campo Alias e configure uma nova senha. Em seguida, adicione o usuário ao grupo de administradores. Digite Zabbix administrators no campo Groups e selecione-o na lista proposta.

      Depois de ter adicionado o grupo, clique na guia Media e clique no link Add sublinhado (e não no botão Add abaixo dele). Uma janela pop-up aparecerá.

      Adicionando um e-mail

      Selecione a opção Email na lista suspensa Type. Digite seu endereço de e-mail no campo Send to . Você pode deixar o resto das opções em seus valores padrão. Clique no botão Add no final para enviar.

      Agora, navegue até a guia Permission. Selecione Zabbix Super Admin no menu suspenso User type.

      Por fim, clique no botão Add no final do formulário para criar o usuário.

      Nota: Usar a senha padrão não é seguro. Para alterar a senha do usuário Admin embutido, clique no alias (apelido) dado na lista de usuários. Em seguida, clique em Change password, digite uma nova senha e confirme as alterações clicando no botão Update.

      Agora, você precisa habilitar as notificações. Clique na guia Configuration e então Actions na barra de navegação à esquerda. Você verá uma ação pré-configurada, responsável por enviar notificações para todos os administradores do Zabbix. Para revisar e alterar as configurações, clique em seu nome. Para os fins deste tutorial, use os parâmetros padrão. Para habilitar a ação, clique no link Disabled vermelho na coluna Status.

      Agora, tudo está pronto para receber alertas. No próximo passo, você irá gerar um alerta para testar sua configuração de notificação.

      Passo 9 — Gerando um alerta de teste

      Neste passo, você irá gerar um alerta de teste para garantir que tudo esteja conectado. Por padrão, o Zabbix mantém o controle da quantidade de espaço em disco livre em seu servidor. Ele detecta automaticamente todas as montagens de disco e adiciona as verificações correspondentes. Essa descoberta é executada a cada hora, então você precisa esperar um tempo para que a notificação seja ativada.

      Crie um arquivo temporário que seja grande o suficiente para acionar o alerta de uso do sistema de arquivos do Zabbix. Para fazer isso, faça login em seu segundo servidor Ubuntu caso ainda não esteja conectado:

      • ssh sammy@second_ubuntu_server_ip_address

      Em seguida, determine quanto espaço livre você tem no servidor. Use o comando df para descobrir:

      O comando df irá relatar o uso do espaço em disco do seu sistema de arquivos, e o -h tornará o resultado humanamente legível. Você verá uma saída como a seguinte:

      Output

      Filesystem Size Used Avail Use% Mounted on /dev/vda1 78G 1.4G 77G 2% /

      Neste caso, o espaço livre é 77G. Seu espaço livre pode ser diferente.

      Use o comando fallocate, que lhe permite pré-alocar ou desalocar espaço para um arquivo de forma a criar um arquivo que ocupe mais de 80% do espaço em disco disponível. Isso será o suficiente para acionar o alerta:

      • fallocate -l 70G /tmp/temp.img

      Após cerca de uma hora, o Zabbix acionará um alerta sobre a quantidade de espaço em disco livre e executará a ação que você configurou, enviando a mensagem de notificação. Você pode verificar sua caixa de entrada para ver a mensagem vinda do servidor Zabbix. A mensagem será parecida com esta:

      Problem started at 09:49:08 on 2020.06.12
      Problem name: /: Disk space is low (used > 80%)
      Host: Second Ubuntu Server
      Severity: Warning
      Operational data: Space used: 71.34 GB of 77.36 GB (92.23 %)
      Original problem ID: 106
      

      Também é possível navegar até a guia Monitoring e então Dashboard para ver a notificação e os detalhes dela.

      Painel principal

      Agora que você sabe que os alertas estão funcionando, exclua o arquivo temporário que você criou para recuperar seu espaço em disco:

      Depois de um minuto o Zabbix enviará a mensagem de recuperação e o alerta desaparecerá do painel principal.

      Conclusão

      Neste tutorial, você aprendeu como configurar uma solução de monitoramento simples e segura que irá ajudá-lo a monitorar o estado dos seus servidores. Agora, ele é capaz de alertá-lo sobre problemas e você tem a oportunidade de analisar os processos que ocorrem em sua infraestrutura de TI.

      Para saber mais sobre como montar uma infraestrutura de monitoramento, confira Monitoring topic page.



      Source link

      Comment installer et configurer Zabbix et configurer des serveurs à distance sur Ubuntu 20.04


      L’auteur a choisi le Computer History Museum comme bénéficiaire d’une donation dans le cadre du programme Write for Donations.

      Introduction

      Zabbix est un logiciel de surveillance open-source pour les réseaux et les applications. Il permet de surveiller en temps réel des milliers de métriques collectées à partir de serveurs, de machines virtuelles, de périphériques réseau et d’applications web. Ces métriques peuvent vous aider à déterminer la santé actuelle de votre infrastructure informatique et à détecter les problèmes liés aux composants matériels ou logiciels avant que les clients ne se plaignent. Les informations utiles sont stockées dans une base de données afin que vous puissiez analyser les données au fil du temps et améliorer la qualité des services fournis ou planifier la mise à niveau de votre équipement.

      Zabbix utilise plusieurs options pour rassembler des métriques, notamment la surveillance sans agent des services aux utilisateurs et l’architecture client-serveur. Pour collecter les métriques du serveur, il utilise un petit agent sur le client surveillé pour rassembler les données et les envoyer au serveur Zabbix. Zabbix prend en charge la communication cryptée entre le serveur et les clients connectés, de sorte que vos données sont protégées lorsqu’elles circulent sur des réseaux non sécurisés.

      Le serveur Zabbix stocke ses données dans une base de données relationnelle alimentée par MySQL ou PostgreSQL. Vous pouvez également stocker des données historiques dans des bases de données NoSQL comme Elasticsearch et TimescaleDB. Zabbix fournit une interface web qui vous permet de visualiser les données et de configurer les paramètres du système.

      Dans ce tutoriel, vous allez configurer Zabbix sur deux machines Ubuntu 20.04. L’un sera configuré comme le serveur Zabbix, et l’autre comme un client que vous surveillerez. Le serveur Zabbix utilisera une base de données MySQL pour enregistrer les données de surveillance et utilisera Nginx pour servir l’interface web.

      Conditions préalables

      Pour suivre ce tutoriel, vous aurez besoin de :

      • Deux serveurs Ubuntu 20.04 configurés en suivant le Guide de configuration initiale du serveur pour Ubuntu 20.04, comprenant un non root user avec des privilèges sudo et un pare-feu configuré avec ufw. Sur un serveur, vous installerez Zabbix ; ce tutoriel fera référence à ce dernier comme étant le serveur Zabbix. Il surveillera votre second serveur ; ce second serveur sera appelé le second serveur Ubuntu.

      • Le serveur qui fera fonctionner le serveur Zabbix nécessite l’installation de Nginx, MySQL et PHP. Suivez les étapes 1 à 3 de notre guide LAMP Stack Ubuntu 20.04 pour les configurer sur votre serveur Zabbix.

      • Un nom de domaine enregistré. Tout au long de ce tutoriel, nous utiliserons your_domain. Vous pouvez acheter un nom de domaine sur Namecheap, en obtenir un gratuitement avec Freenom, ou utiliser le bureau d’enregistrement de domaine de votre choix.

      • Les deux enregistrements DNS suivants ont été configurés pour votre serveur Zabbix. Si vous utilisez DigitalOcean, veuillez consulter notre documentation DNS pour plus de détails sur la façon de les ajouter.

        • Un enregistrement A avec your_domain pointant sur l’adresse IP publique de votre serveur Zabbix.
        • Un enregistrement A avec www.your_domain​​​​​​ pointant sur l’adresse IP publique de votre serveur Zabbix.

      En outre, comme le serveur Zabbix est utilisé pour accéder à des informations précieuses sur votre infrastructure auxquelles vous ne voudriez pas que des utilisateurs non autorisés accèdent, il est important que vous gardiez votre serveur sécurisé en installant un certificat TLS/SSL. Ceci est facultatif mais fortement encouragé. Si vous souhaitez sécuriser votre serveur, suivez les instructions du guide Let’s Encrypt sur Ubuntu 20.04 après l’étape 3 de ce tutoriel.

      Étape 1 – Installer le serveur Zabbix

      Tout d’abord, vous devez installer Zabbix sur le serveur sur lequel vous avez installé MySQL, Nginx et PHP. Connectez-vous à cette machine en tant que non-root user :

      • ssh sammy@zabbix_server_ip_address

      Zabbix est disponible dans le gestionnaire de packages d’Ubuntu, mais il est dépassé. Utilisez donc le dépôt officiel de Zabbix pour installer la dernière version stable. Téléchargez et installez le paquet de configuration du dépôt :

      • wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
      • sudo dpkg -i zabbix-release_5.0-1+focal_all.deb

      Vous verrez le résultat suivant :

      Output

      Selecting previously unselected package zabbix-release. (Reading database ... 64058 files and directories currently installed.) Preparing to unpack zabbix-release_5.0-1+focal_all.deb ... Unpacking zabbix-release (1:5.0-1+focal) ... Setting up zabbix-release (1:5.0-1+focal) ...

      Mettez à jour l’index des packages afin que le nouveau dépôt soit inclus :

      Ensuite, installez le serveur Zabbix et le frontend web avec le support de la base de données MySQL :

      • sudo apt install zabbix-server-mysql zabbix-frontend-php

      Installez également l’agent Zabbix, qui vous permettra de recueillir des données sur l’état du serveur Zabbix lui-même.

      • sudo apt install zabbix-agent

      Avant de pouvoir utiliser Zabbix, vous devez créer une base de données contenant les données que le serveur Zabbix collectera auprès de ses agents. Vous pouvez le faire lors de la prochaine étape.

      Étape 2 – Configurer la base de données MySQL pour Zabbix

      Vous devez créer une nouvelle base de données MySQL et la remplir avec quelques informations de base afin de la rendre compatible avec Zabbix. Vous créerez également un utilisateur spécifique pour cette base de données afin que Zabbix ne se connecte pas à MySQL avec le compte root.

      Connectez-vous à MySQL en tant que root user :

      Créez la base de données Zabbix avec le support des caractères UTF-8 :

      • create database zabbix character set utf8 collate utf8_bin;

      Créez ensuite un utilisateur que le serveur Zabbix utilisera, donnez-lui accès à la nouvelle base de données et définissez le mot de passe de l’utilisateur :

      • create user zabbix@localhost identified by 'your_zabbix_mysql_password';
      • grant all privileges on zabbix.* to zabbix@localhost;

      Cela prend soin de l’utilisateur et de la base de données. Sortez de la console de la base de données.

      Ensuite, vous devez importer le schéma et les données initiales. L’installation de Zabbix vous a fourni un fichier qui permet de configurer cela.

      Exécutez la commande suivante pour configurer le schéma et importer les données dans la base de données zabbix. Utilisez zcat car les données dans le fichier sont compressées :

      • zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

      Entrez le mot de passe pour l’utilisateur MySQL zabbix que vous avez configuré lorsque vous y avez été invité.

      L’exécution de cette commande peut prendre une minute ou deux. Si vous voyez l’erreur ERROR 1045 (28000): Access denied for userzabbix@ 'localhost' (using password: YES) alors assurez-vous que vous avez utilisé le bon mot de passe pour l’utilisateur zabbix.

      Pour que le serveur Zabbix puisse utiliser cette base de données, vous devez définir le mot de passe de la base de données dans le fichier de configuration du serveur Zabbix. Ouvrez le fichier de configuration dans votre éditeur de texte préféré. Ce tutoriel utilisera nano :

      • sudo nano /etc/zabbix/zabbix_server.conf

      Cherchez la section suivante du dossier :

      /etc/zabbix/zabbix_server.conf

      ...
      ### Option: DBPassword                           
      #       Database password. Ignored for SQLite.   
      #       Comment this line if no password is used.
      #                                                
      # Mandatory: no                                  
      # Default:                                       
      # DBPassword=
      ...
      

      Ces commentaires dans le dossier expliquent comment se connecter à la base de données. Vous devez définir la valeur du DBPassword dans le fichier au mot de passe de l’utilisateur de votre base de données.   Ajoutez cette ligne après ces commentaires pour configurer la base de données :

      /etc/zabbix/zabbix_server.conf

      ...
      DBPassword=your_zabbix_mysql_password
      ...
      

      Enregistrez et fermez zabbix_server.conf en appuyant sur CTRL+X, puis sur Y et enfin sur ENTER si vous utilisez nano.

      Vous avez maintenant configuré le serveur Zabbix pour vous connecter à la base de données. Ensuite, vous configurerez le serveur web Nginx pour servir le frontend Zabbix.

      Étape 3 – Configurer Nginx pour Zabbix

      Pour configurer Nginx automatiquement, installez le paquet de configuration automatique :

      • sudo apt install zabbix-nginx-conf

      Vous obtiendrez ainsi le fichier de configuration/etc/zabbix/nginx.conf, ainsi qu’un lien vers celui-ci dans le répertoire de configuration de Nginx /etc/nginx/conf.d/zabbix.conf.

      Ensuite, vous devez apporter des modifications à ce dossier. Ouvrez le fichier de configuration :

      • sudo nano /etc/zabbix/nginx.conf

      Le fichier contient une configuration de bloc serveur Nginx générée automatiquement. Il contient deux lignes qui déterminent le nom du serveur et le port sur lequel il écoute :

      /etc/zabbix/nginx.conf

      server {
      #        listen          80;
      #        server_name     example.com;
      ...
      

      Décommentez les deux lignes, et remplacez example.com par votre nom de domaine. Vos paramètres ressembleront à ceci :

      /etc/zabbix/nginx.conf

      server {
              listen          80;
              server_name     your_domain;
      ...
      

      Enregistrez et fermez le fichier. Ensuite, procédez à un test pour vous assurer qu’il n’y a aucune erreur de syntaxe dans aucun de vos fichiers Nginx et relancez la configuration :

      • sudo nginx -t
      • sudo nginx -s reload

      Maintenant que Nginx est configuré pour servir le frontend de Zabbix, vous allez apporter quelques modifications à votre configuration PHP afin que l’interface web de Zabbix fonctionne correctement.

      Note : Comme mentionné dans la section « Prérequis », il est recommandé d’activer SSL/TLS sur votre serveur. Si vous souhaitez le faire, suivez notre tutoriel Ubuntu 20.04 Let’s Encrypt avant de passer à l’étape 4 afin d’obtenir un certificat SSL gratuit pour Nginx. Ce processus détectera automatiquement le blocage de votre serveur Zabbix et le configurera pour le HTTPS. Après avoir obtenu vos certificats SSL/TLS, vous pouvez revenir et compléter ce tutoriel.

      Étape 4 – Configurer PHP pour Zabbix

      L’interface web de Zabbix est écrite en PHP et nécessite quelques réglages spéciaux du serveur PHP. Le processus d’installation de Zabbix a créé un fichier de configuration PHP-FPM qui contient ces paramètres. Il se trouve dans le répertoire /etc/zabbix et est chargé automatiquement par PHP-FPM. Vous devez apporter une petite modification à ce dossier, alors ouvrez-le avec ce qui suit :

      • sudo nano /etc/zabbix/php-fpm.conf

      Le fichier contient les paramètres PHP qui répondent aux exigences nécessaires pour l’interface web Zabbix. Toutefois, le réglage du fuseau horaire est commenté par défaut. Pour être sûr que Zabbix utilise la bonne heure, vous devez définir le fuseau horaire approprié :

      /etc/zabbix/php-fpm.conf

      ...
      php_value[max_execution_time] = 300
      php_value[memory_limit] = 128M
      php_value[post_max_size] = 16M
      php_value[upload_max_filesize] = 2M
      php_value[max_input_time] = 300
      php_value[max_input_vars] = 10000
      ; php_value[date.timezone] = Europe/Riga
      

      Décommentez la ligne de fuseau horaire mise en évidence dans le bloc de code précédent et changez-la pour votre fuseau horaire. Vous pouvez utiliser cette liste de fuseaux horaires pris en charge pour trouver celui qui vous correspond. Maintenant, enregistrez et fermez le fichier.

      Redémarrez PHP-FPM pour appliquer ces nouveaux paramètres :

      • sudo systemctl restart php7.4-fpm.service

      Vous pouvez maintenant démarrer le serveur Zabbix :

      • sudo systemctl start zabbix-server

      Ensuite, vérifiez si le serveur Zabbix fonctionne correctement :

      • sudo systemctl status zabbix-server

      Vous verrez le résultat suivant :

      Output

      ● zabbix-server.service - Zabbix Server Loaded: loaded (/lib/systemd/system/zabbix-server.service; disabled; vendor preset: enabled) Active: active (running) since Fri 2020-06-12 05:59:32 UTC; 36s ago Process: 27026 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS) ...

      Enfin, permettez au serveur de démarrer au moment du démarrage :

      • sudo systemctl enable zabbix-server

      Le serveur est configuré et connecté à la base de données. Ensuite, mettez en place le frontend web.

      Étape 5 – Configurer les paramètres de l’interface web Zabbix

      L’interface web vous permet de voir les rapports et d’ajouter des hôtes que vous souhaitez surveiller, mais elle nécessite une configuration initiale avant de pouvoir être utilisée. Lancez votre navigateur et allez à l’adresse http://zabbix_server_name ou https://zabbix_server_name si vous avez configuré Let’s Encrypt. Sur le premier écran, vous verrez un message de bienvenue. Cliquez sur Next step pour continuer.

      Sur l’écran suivant, vous verrez le tableau qui énumère toutes les conditions préalables à l’exécution de Zabbix.

      Conditions préalables

      Toutes les valeurs de ce tableau doivent être correctes, vérifiez donc qu’elles le sont. N’oubliez pas de faire défiler vers le bas et d’examiner toutes les conditions préalables. Une fois que vous avez vérifié que tout est prêt, cliquez sur Next step pour continuer.

      L’écran suivant demande des informations sur la connexion à la base de données.

      Connexion à la BD

      Vous avez parlé de votre base de données au serveur Zabbix, mais l’interface web Zabbix a également besoin d’un accès à la base de données pour gérer les hôtes et lire les données. Saisissez donc les identifiants MySQL que vous avez configurés à l’étape 2. Cliquez sur Next step pour continuer.

      Sur l’écran suivant, vous pouvez laisser les options à leurs valeurs par défaut.

      Détails du serveur Zabbix

      Le Name est facultatif ; il est utilisé dans l’interface web pour distinguer un serveur d’un autre dans le cas où vous avez plusieurs serveurs de surveillance. Cliquez sur Next step pour continuer.

      L’écran suivant affichera le résumé de pré-installation afin que vous puissiez confirmer que tout est correct.

      Résumé

      Cliquez sur Next step pour passer à l’écran final.

      La configuration de l’interface web est maintenant terminée. Ce processus crée le fichier de configuration /usr/share/zabbix/conf/zabbix.conf.php, que vous pouvez sauvegarder et utiliser à l’avenir. Cliquez sur Finish pour passer à l’écran de connexion.   L’utilisateur par défaut est Admin et le mot de passe est zabbix.

      Avant de vous connecter, installez l’agent Zabbix sur votre deuxième serveur Ubuntu.

      Étape 6 – Installer et configurer l’agent Zabbix

      Vous devez maintenant configurer le logiciel d’agent qui enverra les données de surveillance au serveur Zabbix.

      Connectez-vous au deuxième serveur Ubuntu :

      • ssh sammy@second_ubuntu_server_ip_address

      Tout comme sur le serveur Zabbix, exécutez les commandes suivantes pour installer le package de configuration du dépôt :

      • wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
      • sudo dpkg -i zabbix-release_5.0-1+focal_all.deb

      Ensuite, mettez à jour l’index des packages :

      Installez ensuite l’agent Zabbix :

      • sudo apt install zabbix-agent

      Bien que Zabbix supporte le cryptage par certificat, la mise en place d’une autorité de certification dépasse le cadre de ce tutoriel. Mais vous pouvez utiliser des clés pré-partagées (PSK) pour sécuriser la connexion entre le serveur et l’agent.

      D’abord, générez une PSK :

      • sudo sh -c "openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk"

      Montrez la clé en utilisant le chat pour que vous puissiez la copier quelque part :

      • cat /etc/zabbix/zabbix_agentd.psk

      La clé ressemblera à quelque chose comme ça :

      Output

      75ad6cb5e17d244ac8c00c96a1b074d0550b8e7b15d0ab3cde60cd79af280fca

      Gardez-la pour plus tard ; vous en aurez besoin pour configurer l’hôte.

      Maintenant, modifiez les paramètres de l’agent Zabbix pour établir sa connexion sécurisée au serveur Zabbix. Ouvrez le fichier de configuration de l’agent dans votre éditeur de texte :

      • sudo nano /etc/zabbix/zabbix_agentd.conf

      Chaque paramètre de ce dossier est documenté par des commentaires informatifs tout au long du dossier, mais vous ne devez modifier que certains d’entre eux.

      Vous devez d’abord modifier l’adresse IP du serveur Zabbix. Trouvez la section suivante :

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: Server
      #       List of comma delimited IP addresses, optionally in CIDR notation, or DNS names of Zabbix servers and Zabbix proxies.
      #       Incoming connections will be accepted only from the hosts listed here.
      #       If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally
      #       and '::/0' will allow any IPv4 or IPv6 address.
      #       '0.0.0.0/0' can be used to allow any IPv4 address.
      #       Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
      #
      # Mandatory: yes, if StartAgents is not explicitly set to 0
      # Default:
      # Server=
      
      Server=127.0.0.1
      ...
      

      Changez la valeur par défaut pour l’IP de votre serveur Zabbix :

      /etc/zabbix/zabbix_agentd.conf

      ...
      Server=zabbix_server_ip_address
      ...
      

      Par défaut, le serveur Zabbix se connecte à l’agent. Mais pour certains contrôles (par exemple, la surveillance des journaux), une connexion inverse est nécessaire. Pour un fonctionnement correct, vous devez spécifier l’adresse du serveur Zabbix et un nom d’hôte unique.

      Trouvez la section qui configure les contrôles actifs et modifiez les valeurs par défaut :

      /etc/zabbix/zabbix_agentd.conf

      ...
      ##### Active checks related
      
      ### Option: ServerActive
      #       List of comma delimited IP:port (or DNS name:port) pairs of Zabbix servers and Zabbix proxies for active checks.
      #       If port is not specified, default port is used.
      #       IPv6 addresses must be enclosed in square brackets if port for that host is specified.
      #       If port is not specified, square brackets for IPv6 addresses are optional.
      #       If this parameter is not specified, active checks are disabled.
      #       Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1]
      #
      # Mandatory: no
      # Default:
      # ServerActive=
      
      ServerActive=zabbix_server_ip_address
      
      ### Option: Hostname
      #       Unique, case sensitive hostname.
      #       Required for active checks and must match hostname as configured on the server.
      #       Value is acquired from HostnameItem if undefined.
      #
      # Mandatory: no
      # Default:
      # Hostname=
      
      Hostname=Second Ubuntu Server
      ...
      

      Ensuite, trouvez la section qui configure la connexion sécurisée au serveur Zabbix et activez le support des clés pré-partagées. Trouvez la section TLSConnect, qui ressemble à ceci :

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: TLSConnect
      #       How the agent should connect to server or proxy. Used for active checks.
      #       Only one value can be specified:
      #               unencrypted - connect without encryption
      #               psk         - connect using TLS and a pre-shared key
      #               cert        - connect using TLS and a certificate
      #
      # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
      # Default:
      # TLSConnect=unencrypted
      ...
      

      Ajoutez ensuite cette ligne pour configurer le support des clés pré-partagées :

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSConnect=psk
      ...
      

      Ensuite, localisez la section TLSAccept, qui ressemble à ceci :

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: TLSAccept
      #       What incoming connections to accept.
      #       Multiple values can be specified, separated by comma:
      #               unencrypted - accept connections without encryption
      #               psk         - accept connections secured with TLS and a pre-shared key
      #               cert        - accept connections secured with TLS and a certificate
      #
      # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
      # Default:
      # TLSAccept=unencrypted
      ...
      

      Configurez les connexions entrantes pour prendre en charge les clés pré-partagées en ajoutant cette ligne :

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSAccept=psk
      ...
      

      Ensuite, trouvez la section TLSPSKIdentity, qui ressemble à ceci :

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: TLSPSKIdentity
      #       Unique, case sensitive string used to identify the pre-shared key.
      #
      # Mandatory: no
      # Default:
      # TLSPSKIdentity=
      ...
      

      Choisissez un nom unique pour identifier votre clé pré-partagée en ajoutant cette ligne :

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSPSKIdentity=PSK 001
      ...
      

      Vous l’utiliserez comme identifiant PSK lorsque vous ajouterez votre hôte via l’interface web Zabbix.

      Définissez ensuite l’option qui pointe vers votre clé pré-partagée créée précédemment. Repérez l’option TLSPSKFile :

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: TLSPSKFile
      #       Full pathname of a file containing the pre-shared key.
      #
      # Mandatory: no
      # Default:
      # TLSPSKFile=
      ...
      

      Ajoutez cette ligne pour pointer l’agent Zabbix vers votre fichier PSK que vous avez créé :

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSPSKFile=/etc/zabbix/zabbix_agentd.psk
      ...
      

      Enregistrez et fermez le fichier. Vous pouvez maintenant redémarrer l’agent Zabbix et le configurer pour qu’il démarre au moment du démarrage :

      • sudo systemctl restart zabbix-agent
      • sudo systemctl enable zabbix-agent

      Pour faire bonne mesure, vérifiez que l’agent Zabbix fonctionne correctement :

      • sudo systemctl status zabbix-agent

      Vous verrez le statut suivant, indiquant que l’agent est en cours d’exécution :

      Output

      ● zabbix-agent.service - Zabbix Agent Loaded: loaded (/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-06-12 08:19:54 UTC; 25s ago ...

      L’agent écoutera au port 10050 pour les connexions à partir du serveur. Configurez l’UFW pour permettre les connexions à ce port :

      Pour en savoir plus sur UFW, consultez le tutoriel Comment configurer un pare-feu avec UFW sur Ubuntu 20.04.

      Votre agent est maintenant prêt à envoyer des données au serveur Zabbix. Mais pour l’utiliser, vous devez y accéder à partir de la console web du serveur. Dans l’étape suivante, vous allez compléter la configuration.

      Étape 7 – Ajouter le nouvel hôte au serveur Zabbix

      L’installation d’un agent sur un serveur que vous souhaitez surveiller ne représente que la moitié du processus. Chaque hôte que vous souhaitez surveiller doit être enregistré sur le serveur Zabbix, ce que vous pouvez faire via l’interface web.

      Connectez-vous à l’interface web du serveur Zabbix en naviguant à l’adresse http://zabbix_server_name ou https://zabbix_server_name :

      L'écran de connexion Zabbix

      Lorsque vous vous êtes connecté, cliquez sur Configuration et ensuite sur Hosts dans la barre de navigation de gauche. Cliquez ensuite sur le bouton Create host dans le coin supérieur droit de l’écran. Cela ouvrira la page de configuration de l’hôte.

      Créer un hôte

      Ajustez le Host name et l’adresse IP pour refléter le nom d’hôte et l’adresse IP de votre second serveur Ubuntu, puis ajoutez l’hôte à un groupe. Vous pouvez sélectionner un groupe existant, par exemple des serveurs Linux ou créer votre propre groupe. L’hôte peut faire partie de plusieurs groupes. Pour ce faire, entrez le nom d’un groupe existant ou nouveau dans le champ de saisie Groups et sélectionnez la valeur souhaitée dans la liste proposée.

      Avant d’ajouter le groupe, cliquez sur l’onglet Templates.

      Ajout d'un modèle à l'hôte

      Tapez Template OS Linux by Zabbix agent dans le champ Search, puis sélectionnez-le dans la liste pour ajouter ce modèle à l’hôte.

      Ensuite, naviguez jusqu’à l’onglet Encryption. Sélectionnez PSK pour les connexions vers l’hôte et les connexions depuis l’hôte. Définissez ensuite l’identité PSK à PSK 001, qui est la valeur de la TLSPSKIdentity de l’agent Zabbix que vous avez configuré précédemment. Définissez ensuite la valeur PSK à la clé que vous avez générée pour l’agent Zabbix. C’est celle qui est stockée dans le fichier /etc/zabbix/zabbix_agentd.psk sur la machine de l’agent. 

      Configurer le cryptage

      Enfin, cliquez sur le bouton Add au bas du formulaire pour créer l’hôte.

      Vous verrez votre nouvel hôte dans la liste. Attendez une minute et rechargez la page pour voir les étiquettes vertes indiquant que tout fonctionne bien et que la connexion est cryptée.

      Zabbix montre votre nouvel hôte

      Si vous avez des serveurs supplémentaires à surveiller, connectez-vous à chaque hôte, installez l’agent Zabbix, générez un PSK, configurez l’agent et ajoutez l’hôte à l’interface web en suivant les mêmes étapes que celles que vous avez suivies pour ajouter votre premier hôte.

      Le serveur Zabbix surveille maintenant votre deuxième serveur Ubuntu. Maintenant, configurez des notifications par courrier électronique pour être informé des problèmes.

      Étape 8 – Configurer les notifications par courrier électronique

      Zabbix supporte automatiquement plusieurs types de notifications : courriel, OTRS, Slack, Télégramme, SMS, etc. Vous pouvez voir la liste complète des intégrations sur le site de Zabbix. 

      À titre d’exemple, ce tutoriel permettra de configurer les notifications pour le Type de support de courrier électronique.

      Cliquez sur Administration, puis sur Media types dans la barre de navigation de gauche. Vous verrez la liste de tous les types de médias. Il existe deux options préconfigurées pour les courriels : pour la notification en texte clair et pour les notifications en HTML. Dans ce tutoriel, vous utiliserez la notification en texte clair. Cliquez sur Email. 

      Ajustez les options SMTP en fonction des paramètres fournis par votre service de courrier électronique. Ce tutoriel utilise les capacités SMTP de Gmail pour configurer les notifications par e-mail. Si vous souhaitez obtenir plus d’informations sur la configuration, voir Comment utiliser le serveur SMTP de Google. 

      Note : Si vous utilisez la vérification en 2 étapes avec Gmail, vous devez générer un mot de passe d’application pour Zabbix. Vous n’aurez à saisir un mot de passe d’application qu’une seule fois lors de l’installation. Vous trouverez des instructions sur la manière de générer ce mot de passe dans le Centre d’aide Google.

      Si vous utilisez Gmail, tapez smtp.gmail.com pour le champ du serveur SMTP, 465 pour le champ du port du serveur SMTP, gmail.com pour SMTP helo, et votre courriel pour le SMTP email. Choisissez ensuite SSL/TLS pour la Connection security et Username and password pour Authentification. Entrez votre adresse Gmail comme Username et le mot de passe de l’application que vous avez généré à partir de votre compte Google comme mot de passe.

      Mise en place du type de support de courrier électronique

      Sous l’onglet Message templates, vous pouvez voir la liste des messages prédéfinis pour les différents types de notifications. Enfin, cliquez sur le bouton Update au bas du formulaire pour mettre à jour les paramètres du courrier électronique.

      Vous pouvez maintenant tester l’envoi de notifications. Pour ce faire, cliquez sur le lien Test souligné dans la ligne correspondante.

      Vous verrez une fenêtre pop-up. Saisissez votre adresse électronique dans le champ de saisie Send to et cliquez sur le bouton Test . Vous verrez un message sur l’envoi réussi et vous recevrez un message test.

      Tester le courrier électronique

      Fermez la fenêtre pop-up en cliquant sur le bouton Cancel.

      Maintenant, créez un nouvel utilisateur. Cliquez sur Administration et ensuite sur Users dans la barre de navigation de gauche. Vous verrez la liste des utilisateurs. Cliquez ensuite sur le bouton Create user dans le coin supérieur droit de l’écran. Cela ouvrira la page de configuration de l’utilisateur :

      Créer un utilisateur

      Entrez le nouveau nom d’utilisateur dans le champ de saisie Alias et créez un nouveau mot de passe. Ensuite, ajoutez l’utilisateur au groupe de l’administrateur. Tapez Zabbix administrators dans le champ Groups et sélectionnez-le dans la liste proposée.

      Une fois que vous avez ajouté le groupe, cliquez sur l’onglet Media et cliquez sur le lien souligné Add (et non le bouton Add en dessous). Vous verrez une fenêtre pop-up.

      Ajouter un courriel

      Sélectionnez l’option Email du menu déroulant Type. Saisissez votre adresse électronique dans le champ Send to. Vous pouvez laisser les autres options aux valeurs par défaut. Cliquez sur le bouton Add en bas pour soumettre. 

      Naviguez maintenant vers l’onglet Permissions. Sélectionnez Zabbix Super Admin dans le menu déroulant User type. 

      Enfin, cliquez sur le bouton Add au bas du formulaire pour créer l’utilisateur.

      Note : Utiliser le mot de passe par défaut n’est pas sûr. Afin de modifier le mot de passe de l’utilisateur intégré Admin, cliquez sur l’alias dans la liste des utilisateurs. Cliquez ensuite sur Change password, entrez un nouveau mot de passe et confirmez les changements en cliquant sur le bouton Update.

      Vous devez maintenant activer les notifications. Cliquez sur l’onglet Configuration, puis sur Actions dans la barre de navigation de gauche.  Vous verrez une action pré-configurée, qui est responsable de l’envoi des notifications à tous les administrateurs de Zabbix. Vous pouvez revoir et modifier les paramètres en cliquant sur son nom. Pour les besoins de ce tutoriel, utilisez les paramètres par défaut. Pour activer l’action, cliquez sur le lien en rouge Disabled dans la colonne Status.

      Vous êtes maintenant prêt à recevoir des alertes. Dans l’étape suivante, vous en générerez un pour tester votre configuration de notification.

      Étape 9 – Génération d’une alerte de test

      Au cours de cette étape, vous générerez une alerte de test pour vous assurer que tout est connecté. Par défaut, Zabbix garde une trace de l’espace disque disponible sur votre serveur. Il détecte automatiquement tous les supports de disque et ajoute les contrôles correspondants. Cette découverte est exécutée toutes les heures, vous devez donc attendre un certain temps pour que la notification soit déclenchée.

      Créez un fichier temporaire suffisamment important pour déclencher l’alerte d’utilisation du système de fichiers de Zabbix. Pour ce faire, connectez-vous à votre deuxième serveur Ubuntu si vous n’êtes pas déjà connecté :

      • ssh sammy@second_ubuntu_server_ip_address

      Ensuite, déterminez l’espace libre dont vous disposez sur le serveur. Vous pouvez utiliser la commande df pour le savoir :

      La commande df indiquera l’utilisation de l’espace disque de votre système de fichiers, et le -h rendra la sortie lisible à l’oeil humain. Vous verrez une sortie comme celle-ci :

      Output

      Filesystem Size Used Avail Use% Mounted on /dev/vda1 78G 1.4G 77G 2% /

      Dans ce cas, l’espace libre est de 77G. Votre espace libre peut être différent.

      Utilisez la commande fallocate, qui vous permet de pré-allouer ou de désallouer de l’espace à un fichier, pour créer un fichier qui occupe plus de 80 % de l’espace disque disponible. Cela sera suffisant pour déclencher l’alerte :

      • fallocate -l 70G /tmp/temp.img

      Après environ une heure, Zabbix déclenchera une alerte concernant la quantité d’espace disque disponible et exécutera l’action que vous avez configurée, en envoyant le message de notification. Vous pouvez vérifier dans votre boîte de réception si le message provient du serveur Zabbix. Vous verrez un message du type :

      Problem started at 09:49:08 on 2020.06.12
      Problem name: /: Disk space is low (used > 80%)
      Host: Second Ubuntu Server
      Severity: Warning
      Operational data: Space used: 71.34 GB of 77.36 GB (92.23 %)
      Original problem ID: 106
      

      Vous pouvez également accéder à l’onglet monitoring et ensuite au Dashboard pour voir la notification et ses détails. 

      Tableau de bord principal

      Maintenant que vous savez que les alertes fonctionnent, supprimez le fichier temporaire que vous avez créé afin de récupérer votre espace disque :

      Au bout d’une minute, Zabbix enverra le message de récupération et l’alerte disparaîtra du tableau de bord principal.

      Conclusion

      Dans ce tutoriel, vous avez appris à mettre en place une solution de surveillance simple et sécurisée qui vous aidera à surveiller l’état de vos serveurs. Il peut désormais vous avertir des problèmes, et vous avez la possibilité d’analyser les processus qui se produisent dans votre infrastructure informatique.

      Pour en savoir plus sur la mise en place d’une infrastructure de surveillance, consultez notre page thématique sur la surveillance.



      Source link

      Установка и настройка Zabbix для безопасного мониторинга удаленных серверов в Ubuntu 20.04


      Автор выбрал Computer History Museum для получения пожертвования в рамках программы Write for DOnations.

      Введение

      Zabbix — это программное обеспечение с открытым исходным кодом для мониторинга сетей и приложений. С его помощью можно выполнять мониторинг в режиме реального времени нескольких тысяч метрических показателей, собранных с серверов, виртуальных машин, сетевых устройств и веб-приложений. Эти параметры могут помочь вам определить текущее состояние инфраструктуры ИТ и выявить проблемы, связанные с компонентами аппаратного или программного обеспечения, до того, как на них пожалуется клиент. Полезная информация хранится в базе данных для возможности анализировать данные с течением времени и повышать качество предоставляемых услуг или планировать модернизацию оборудования.

      Zabbix использует несколько методов сбора метрических показателей, включая безагентный мониторинг услуг для пользователей и архитектуру клиент-сервер. Для сбора метрических показателей сервера используется маленький агент на отслеживаемом клиенте, который собирает данные и отправляет их на сервер Zabbix. Zabbix поддерживает зашифрованную связь между сервером и подключенными клиентами, что обеспечивает защиту данных во время перемещения по ненадежным сетям.

      Сервер Zabbix хранит свои данные в реляционной базе данных, работающей на базе MySQL или PostgreSQL. Также вы можете хранить исторические данные в таких базах данных, как Elasticsearch и TimescaleDB. Zabbix предоставляет веб-интерфейс для возможности просмотра данных и настройки системы.

      В этом обучающем модуле мы настроим Zabbix на двух компьютерах Ubuntu 20.04. Один из них будет настроен в качестве сервера Zabbix, а второй — в качестве клиента, который будет отслеживаться. Сервер Zabbix будет использовать базу данных MySQL для записи данных мониторинга и использовать Nginx для обслуживания веб-интерфейса.

      Предварительные требования

      Для данного обучающего модуля вам потребуется следующее:

      • Два сервера Ubuntu 20.04, настроенных в соответствии с указаниями обучающего модуля Начальная настройка сервера для Ubuntu 20.04, включая пользователя без привилегий root с привилегиями sudo и настроенный брандмауэр ufw. На одном сервере вы установите Zabbix. В этом обучающем модуле он будет называться сервер Zabbix. Он будет отслеживать ваш второй сервер, этот второй сервер будет называться второй сервер Ubuntu.

      • Для сервера, на базе которого будет работать сервер Zabbix, требуется установка Nginx, MySQL и PHP. Следуйте шагам 1–3 нашего обучающего руководства по набору LEMP Ubuntu 20.04 для их настройки на вашем сервере Zabbix.

      • Зарегистрированное доменное имя. В этом обучающем руководстве мы будем использовать your_domain. Вы можете купить доменное имя на Namecheap, получить его бесплатно на Freenom или воспользоваться услугами любого предпочитаемого регистратора доменных имен.

      • На вашем сервере Zabbix должны быть настроены обе нижеследующие записи DNS. Если вы используете DigitalOcean, ознакомьтесь с нашей документацией по DNS для получения подробной информации по их добавлению.

        • Запись A, где your_domain указывает на публичный IP-адрес вашего сервера Zabbix.
        • Запись A, где www.your_domain указывает на публичный IP-адрес вашего сервера Zabbix.

      Кроме того, поскольку сервер Zabbix используется для доступа к ценной информации о вашей инфраструктуре, которую вам нужно защищать от несанкционированного доступа, очень важно обеспечить защиту сервера сертификатом TLS/SSL. Это необязательно, но настоятельно рекомендуется. Если вы хотите защитить ваш сервер, следуйте указаниям руководства Let’s Encrypt в Ubuntu 20.04 после шага 3 этого обучающего модуля.

      Шаг 1 — Установка сервера Zabbix

      Во-первых, нужно установить Zabbix на сервере, на котором вы установили MySQL, Nginx и PHP. Выполните вход на эту машину в качестве пользователя без прав root:

      • ssh sammy@zabbix_server_ip_address

      Zabbix доступен в диспетчере пакетов Ubuntu, но он уже устарел, поэтому используйте официальный репозиторий Zabbix для установки последней стабильной версии. Загрузите и установите пакет конфигурации репозитория:

      • wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
      • sudo dpkg -i zabbix-release_5.0-1+focal_all.deb

      Результат будет выглядеть следующим образом:

      Output

      Selecting previously unselected package zabbix-release. (Reading database ... 64058 files and directories currently installed.) Preparing to unpack zabbix-release_5.0-1+focal_all.deb ... Unpacking zabbix-release (1:5.0-1+focal) ... Setting up zabbix-release (1:5.0-1+focal) ...

      Обновите индекс пакета, чтобы новый репозиторий включал:

      Затем установите сервер Zabbix и пользовательский веб-интерфейс с поддержкой базы данных MySQL:

      • sudo apt install zabbix-server-mysql zabbix-frontend-php

      Также установите агент Zabbix, который позволит вам собирать данные непосредственно о статусе сервера Zabbix.

      • sudo apt install zabbix-agent

      Перед тем, как вы сможете использовать Zabbix, необходимо создать базу данных для хранения данных, которые сервер Zabbix будет собирать от своих агентов. Это можно сделать на следующем шаге.

      Шаг 2 — Настройка базы данных MySQL для Zabbix

      Вам нужно создать новую базу данных MySQL и заполнить ее определенной базовой информацией, чтобы она была пригодна для Zabbix. Также вы создадите конкретного пользователя для этой базы данных, чтобы Zabbix не входил в MySQL с помощью учетной записи root.

      Войдите в MySQL в качестве пользователя root:

      Создайте базу данных Zabbix с поддержкой символов UTF-8:

      • create database zabbix character set utf8 collate utf8_bin;

      Затем создайте пользователя, которого будет использовать сервер Zabbix, предоставьте ему доступ к новой базе данных и установите пароль для пользователя:

      • create user zabbix@localhost identified by 'your_zabbix_mysql_password';
      • grant all privileges on zabbix.* to zabbix@localhost;

      Он защитит пользователя и базу данных. Выйдите из консоли базы данных.

      Далее вам потребуется импортировать начальную схему и данные. При установке Zabbix вам был предоставлен файл, который сделает это.

      Запустите следующую команду для настройки схемы и импорта данных в базу данных zabbix. Используйте zcat, так как данные в файле сжаты:

      • zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

      Введите пароль пользователя MySQL zabbix, который вы настроил при получении соответствующей инструкции.

      Выполнение этой команды может занять одну или две минуты. Если вы видите ошибку ERROR 1045 (28000): Access denied for userzabbix@'localhost' (using password: YES), убедитесь, что используете правильный пароль для пользователя zabbix.

      Чтобы сервер Zabbix использовал эту базу данных, вам нужно задать пароль базы данных в файле конфигурации сервера Zabbix. Откройте файл конфигурации в предпочитаемом текстовом редакторе. В этом обучающем руководстве мы будем использовать nano:

      • sudo nano /etc/zabbix/zabbix_server.conf

      Найдите следующую часть файла:

      /etc/zabbix/zabbix_server.conf

      ...
      ### Option: DBPassword                           
      #       Database password. Ignored for SQLite.   
      #       Comment this line if no password is used.
      #                                                
      # Mandatory: no                                  
      # Default:                                       
      # DBPassword=
      ...
      

      Эти комментарии в файле объясняют, как подключаться к базе данных. Вам необходимо задать значение DBPassword в файле для пароля для вашего пользователя базы данных. Добавьте эту строку после этих комментариев для настройки базы данных:

      /etc/zabbix/zabbix_server.conf

      ...
      DBPassword=your_zabbix_mysql_password
      ...
      

      Сохраните и закройте zabbix_server.conf​​​, нажав CTRL+X, а затем Y и ENTER, если вы используете nano.

      Теперь вы настроили сервер Zabbix для подключения к базе данных. Затем вы настроите веб-сервер Nginx для обслуживания пользовательского интерфейса Zabbix.

      Шаг 3 — Настройка Nginx для Zabbix

      Для автоматической настройки Nginx установите пакет автоматической настройки:

      • sudo apt install zabbix-nginx-conf

      В результате вы получите файл конфигурации /etc/zabbix/nginx.conf, а также ссылку на него в каталоге конфигурации Nginx /etc/zabbix/nginx.conf.

      Затем вам нужно внести изменения в этот файл. Откройте файл конфигурации:

      • sudo nano /etc/zabbix/nginx.conf

      Файл содержит автоматически сгенерированную конфигурацию серверного блока Nginx. Он содержит две строки, определяющие имя сервера и порт, который он прослушивает:

      /etc/zabbix/nginx.conf

      server {
      #        listen          80;
      #        server_name     example.com;
      ...
      

      Раскомментируйте две строки и замените example.com на свое доменное имя. Ваши настройки будут выглядеть следующим образом:

      /etc/zabbix/nginx.conf

      server {
              listen          80;
              server_name     your_domain;
      ...
      

      Сохраните и закройте файл. Проведите тестирования, чтобы убедиться в отсутствии ошибок синтаксиса в файлах Nginx, и повторно загрузите конфигурацию:

      • sudo nginx -t
      • sudo nginx -s reload

      Теперь, после настройки Nginx для обслуживания пользовательского интерфейса Zabbix, вы внесете некоторые изменения в настройку PHP, чтобы обеспечить правильность работы пользовательского интерфейса

      Примечание. Как указывалось в разделе предварительных требований, рекомендуется включить на сервере SSL/TLS. Если вы хотите сделать это, перед тем как перейти к шагу 4, выполните действия нашего обучающего модуля о Let’s Encrypt в Ubuntu 20.04 для получения бесплатного сертификата SSL для Nginx. Этот процесс автоматически обнаружит ваш серверный блок Zabbix и выполнит настройку для HTTPS. После получения сертификата SSL/TLS вы можете вернуться и завершить прохождение этого обучающего модуля.

      Шаг 4 — Настройка PHP для Zabbix

      Веб-интерфейс Zabbix написан на языке PHP, и для него требуется ряд специальных настроек сервера PHP. В ходе установки Zabbix был создан файл конфигурации PHP-FPM, который содержит эти настройки. Он расположен в каталоге /etc/zabbix и загружается автоматически PHP-FPM. Вам нужно внести небольшое изменение в этот файл, поэтому откройте его следующим образом:

      • sudo nano /etc/zabbix/php-fpm.conf

      Файл содержит параметры PHP, соответствующие необходимым требованиям для веб-интерфейса Zabbix. Однако настройка часового пояса комментируется по умолчанию. Чтобы Zabbix использовал правильное время, необходимо установить соответствующий часовой пояс:

      /etc/zabbix/php-fpm.conf

      ...
      php_value[max_execution_time] = 300
      php_value[memory_limit] = 128M
      php_value[post_max_size] = 16M
      php_value[upload_max_filesize] = 2M
      php_value[max_input_time] = 300
      php_value[max_input_vars] = 10000
      ; php_value[date.timezone] = Europe/Riga
      

      Раскомментируйте строку часового пояса, выделенную в предыдущем блоке кода, и измените ее на свой часовой пояс. Для поиска подходящего часового пояса можно воспользоваться этим списком поддерживаемых часовых поясов. Затем сохраните и закройте файл.

      Теперь перезапустите PHP-FPM для применения этих новых настроек:

      • sudo systemctl restart php7.4-fpm.service

      Теперь вы можете запустить сервер Zabbix:

      • sudo systemctl start zabbix-server

      Затем проверьте правильность работы сервера Zabbix:

      • sudo systemctl status zabbix-server

      Вы увидите следующий статус:

      Output

      ● zabbix-server.service - Zabbix Server Loaded: loaded (/lib/systemd/system/zabbix-server.service; disabled; vendor preset: enabled) Active: active (running) since Fri 2020-06-12 05:59:32 UTC; 36s ago Process: 27026 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS) ...

      Наконец, включите запуск сервера в момент загрузки:

      • sudo systemctl enable zabbix-server

      Сервер настроен и подключен к базе данных. Затем настройте веб-интерфейс.

      Шаг — Конфигурация настроек для веб-интерфейса Zabbix

      Веб-интерфейс позволяет видеть отчеты и добавлять хосты, которые вы хотите отслеживать, но для этого требуется определенная начальная настройка. Запустите браузер и перейдите по адресу http://zabbix_server_name или https://zabbix_server_name, если вы установили Let’s Encrypt. На первом экране вы увидите приветственное сообщение. Нажмите Next step (Далее), чтобы продолжить.

      На следующем экране вы увидите таблицу, где будут перечислены все предварительные требования для запуска Zabbix.

      Предварительные требования

      Рядом со всеми значениями в этой таблице должно стоять ОК, проверьте это. Обязательно прокрутите вниз и просмотрите все предварительные требования. Убедившись, что все готово, нажмите Next step (Далее), чтобы продолжить.

      Следующий экран запросит данные для подключения базы данных.

      Подключение базы занных

      Вы сообщили серверу Zabbix о вашей базе данных, но веб-интерфейсу Zabbix также необходим доступ к базе данных для управления хостами и считывания данных. Поэтому введите учетные данные MySQL, настроенные в шаге 2. Нажмите Next step (Далее), чтобы продолжить.

      На следующем экране вы можете оставить опции по умолчанию.

      Данные сервера Zabbix

      Name (Имя) необязательно; оно используется в веб-интерфейсе, чтобы различать серверы, если у вас несколько отслеживающих серверов. Нажмите Next step (Далее), чтобы продолжить.

      На следующем экране отобразится резюме предварительной установки, чтобы убедиться, что все указано верно.

      Summary

      Нажмите Next step (Далее), чтобы перейти к последнему экрану.

      Теперь установка веб-интерфейса завершена. В ходе этого процесса создается файл конфигурации /usr/share/zabbix/conf/zabbix.conf.php. Можно сделать его резервную копию и использовать в будущем. Нажмите Finish (Готово), чтобы перейти на экран входа. По умолчанию устанавливается пользователь Admin и пароль zabbix.

      Перед входом, установите агент Zabbix на вашем втором сервере Ubuntu.

      Шаг 6 — Установка и настройка агента Zabbix

      Теперь вам нужно настроить ПО агента, которое будет отправлять данные мониторинга на сервер

      Войдите на второй сервер Ubuntu:

      • ssh sammy@second_ubuntu_server_ip_address

      Как и на сервере Zabbix, запустите следующие команды для установки пакета конфигурации репозитория:

      • wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
      • sudo dpkg -i zabbix-release_5.0-1+focal_all.deb

      Затем обновите индекс пакета:

      Затем установите агент Zabbix:

      • sudo apt install zabbix-agent

      Хотя Zabbix поддерживает шифрование с помощью сертификата, настройка центра сертификации на входит в этот обучающий модуль. Но вы можете использовать предварительно предоставленные ключи (PSK)​​​ для защиты соединения между сервером и агентом.

      Сначала, сгенерируйте PSK:

      • sudo sh -c "openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk"

      Отобразите ключ с помощью cat​​​, чтобы скопировать его:

      • cat /etc/zabbix/zabbix_agentd.psk

      Ключ будет выглядеть примерно так:

      Output

      75ad6cb5e17d244ac8c00c96a1b074d0550b8e7b15d0ab3cde60cd79af280fca

      Сохраните его для дальнейшего использования. Он потребуется для конфигурации хоста.

      Теперь отредактируйте настройки агента Zabbix для установки безопасного подключения к серверу Zabbix. Откройте в файл конфигурации агента в своем текстовом редакторе:

      • sudo nano /etc/zabbix/zabbix_agentd.conf

      Каждая настройка в этом файле документируется с помощью информационных комментариев по всему файлу, но вам нужно отредактировать только некоторые из них.

      Сначала нужно отредактировать IP-адрес сервера Zabbix. Найдите следующий раздел:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: Server
      #       List of comma delimited IP addresses, optionally in CIDR notation, or DNS names of Zabbix servers and Zabbix proxies.
      #       Incoming connections will be accepted only from the hosts listed here.
      #       If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally
      #       and '::/0' will allow any IPv4 or IPv6 address.
      #       '0.0.0.0/0' can be used to allow any IPv4 address.
      #       Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
      #
      # Mandatory: yes, if StartAgents is not explicitly set to 0
      # Default:
      # Server=
      
      Server=127.0.0.1
      ...
      

      Измените значение по умолчанию на IP-адрес вашего сервера Zabbix:

      /etc/zabbix/zabbix_agentd.conf

      ...
      Server=zabbix_server_ip_address
      ...
      

      По умолчанию сервер Zabbix подключается к агенту. Но для некоторых проверок (например, для мониторинга журналов) требуется обратное подключение. Для правильной работы нужно указать адрес сервера Zabbix и уникальное имя хоста.

      Найдите раздел, который настраивает активные проверки и измените значения по умолчанию:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ##### Active checks related
      
      ### Option: ServerActive
      #       List of comma delimited IP:port (or DNS name:port) pairs of Zabbix servers and Zabbix proxies for active checks.
      #       If port is not specified, default port is used.
      #       IPv6 addresses must be enclosed in square brackets if port for that host is specified.
      #       If port is not specified, square brackets for IPv6 addresses are optional.
      #       If this parameter is not specified, active checks are disabled.
      #       Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1]
      #
      # Mandatory: no
      # Default:
      # ServerActive=
      
      ServerActive=zabbix_server_ip_address
      
      ### Option: Hostname
      #       Unique, case sensitive hostname.
      #       Required for active checks and must match hostname as configured on the server.
      #       Value is acquired from HostnameItem if undefined.
      #
      # Mandatory: no
      # Default:
      # Hostname=
      
      Hostname=Second Ubuntu Server
      ...
      

      Затем найдите раздел, который настраивает надежное подключение к серверу Zabbix и активирует поддержку предварительно предоставленный ключ Найдите раздел TLSConnect, который выглядит следующим образом:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: TLSConnect
      #       How the agent should connect to server or proxy. Used for active checks.
      #       Only one value can be specified:
      #               unencrypted - connect without encryption
      #               psk         - connect using TLS and a pre-shared key
      #               cert        - connect using TLS and a certificate
      #
      # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
      # Default:
      # TLSConnect=unencrypted
      ...
      

      Затем добавьте эту строку для конфигурации поддержки предварительно предоставленного ключа:

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSConnect=psk
      ...
      

      Затем найдите раздел TLSAccept, который выглядит следующим образом:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: TLSAccept
      #       What incoming connections to accept.
      #       Multiple values can be specified, separated by comma:
      #               unencrypted - accept connections without encryption
      #               psk         - accept connections secured with TLS and a pre-shared key
      #               cert        - accept connections secured with TLS and a certificate
      #
      # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
      # Default:
      # TLSAccept=unencrypted
      ...
      

      Настройте входящие соединения для поддержки предварительно предоставленных ключей, добавив эту строку:

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSAccept=psk
      ...
      

      Затем найдите раздел TLSPSKIdentity, который выглядит следующим образом:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: TLSPSKIdentity
      #       Unique, case sensitive string used to identify the pre-shared key.
      #
      # Mandatory: no
      # Default:
      # TLSPSKIdentity=
      ...
      

      Выберите уникальное имя для идентификации вашего предварительно предоставленного ключа, добавив эту строку:

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSPSKIdentity=PSK 001
      ...
      

      Вы будете использовать его в качестве идентификатора PSK при добавлении хоста через веб-интерфейс Zabbix.

      Затем установите опцию, которая указывает на ранее созданный предварительно предоставленный ключ. Найдите опцию TLSPSKfile:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: TLSPSKFile
      #       Full pathname of a file containing the pre-shared key.
      #
      # Mandatory: no
      # Default:
      # TLSPSKFile=
      ...
      

      Добавьте эту строку, чтобы направить агент Zabbix в созданный вами файл PSK:

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSPSKFile=/etc/zabbix/zabbix_agentd.psk
      ...
      

      Сохраните и закройте файл. Теперь вы можете перезапустить агент Zabbix и установить его запуск в момент загрузки:

      • sudo systemctl restart zabbix-agent
      • sudo systemctl enable zabbix-agent

      В дополнение к этому проверьте правильность работы агента Zabbix:

      • sudo systemctl status zabbix-agent

      Вы увидите следующий статус, указывающий на то, что агент работает:

      Output

      ● zabbix-agent.service - Zabbix Agent Loaded: loaded (/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-06-12 08:19:54 UTC; 25s ago ...

      Агент будет прослушивать порт 10050 для подключений с сервера. Настройте UFW для разрешения подключений к этому порту:

      Дополнительную информацию о UFW можно получить в статье Настройка брандмауэра с UFW в Ubuntu 20.04.

      Теперь ваш агент готов направлять данные на сервер Zabbix. Но для его использования необходимо подключаться к нему с веб-консоли сервера. В следующем шаге вы завершите настройку.

      Шаг 7 — Добавление нового хоста на сервер Zabbix

      Установка агента на сервер, который вы хотите отслеживать, составляет только половину процесса. Каждый хост, который вы хотите отслеживать, должен быть зарегистрирован на сервере Zabbix, что вы можете сделать через веб-интерфейс.

      Войдите в веб-интерфейс сервера Zabbix, перейдя по адресу http://zabbix_server_name​​​ или https://zabbix_server_name:

      Экран входа в Zabbix

      После того, как вы выполните вход, нажмите Configuration (Настройка), затем Hosts (Хосты) на левой панели управления. Затем нажмите кнопку Create host​​​​​​ (Создать хост) в верхнем правом углу экрана. Откроется страница настройки хоста.

      Создание хоста

      Настройте Имя хоста и IP-адрес, чтобы они отображали имя хоста и IP-адрес вашего второго сервера Ubuntu, а затем добавьте хост в группу. Вы можете выбрать существующую группу, например серверы Linux, или создать собственную группу. Хост может быть в нескольких группах. Для этого введите имя существующей или новой группы в поле Groups (Группы) и выберите желаемое значение из предлагаемого списка.

      Перед тем как добавить группу, нажмите на вкладку Templates​​​.

      Добавление шаблона в хост

      Введите Template OS Linux by Zabbix agent​​​ в поле Search​​​ (Поиск) и затем выберите его из списка, чтобы добавить этот шаблон в хост.

      Затем перейдите на вкладку Encryption (Шифрование). Выберите PSK для Connections to host (Входящие соединения на хост) и Connections from host​​​ (Исходящие соединения от хоста). Затем установите в PSK identity​​​ (Идентификация PSK) настройку PSK 001, которая является значением настройки TLSPSKIdentity агента Zabbix, настроенного ранее. Затем установите значение PSK для ключа, который вы сгенерировали для агента Zabbix. Он хранится в файле /etc/zabbix/zabbix_agentd.psk на компьютере агента.

      Настройка шифрования

      Наконец, нажмите кнопку Add​​​ (Добавить) внизу формы для создания хоста.

      Вы увидите новый хост в списке. Подождите минуту и перезагрузите страницу, чтобы появились зеленые отметки, указывающие, что все работает хорошо и соединение зашифровано.

      Zabbix

      Если у вас есть еще серверы для мониторинга, войдите в каждый хост, установите агент Zabbix, сгенерируйте PSK, настройте агент и добавьте хост в веб-интерфейс, выполнив те же действия, что и при добавлении первого хоста.

      Сервер Zabbix теперь отслеживает ваш второй сервер Ubuntu. Теперь настройте уведомления по электронной почте, чтобы знать о возникновении проблем.

      Шаг 8 — Настройка уведомлений по электронной почте

      Zabbix автоматически поддерживает несколько типов уведомлений: по электронной почте, в OTRS, Slack, Telegram​​​, СМС и т. д. Весь список совместимости можно увидеть на веб-сайте Zabbix.

      В качестве примера в этом обучающем модуле мы настроим уведомления по электронной почте.

      Нажмите Administration (Управление), а затем Media types (Типы связи) на левой панели навигации. Вы увидите список всех типов связи. Для электронной почты предусмотрено две предварительно настроенные опции: обычное текстовое уведомление и уведомления HTML. В этом обучающем модуле будет использоваться простое текстовое уведомление. Нажмите на Email​​​ (электронная почта).

      Настройте опции SMTP в соответствии с настройками, предоставленными вашей почтовой службой. В этом обучающем модуле используются возможности SMTP почтовой службы Gmail. При необходимости дополнительной информации об этой настройке см. Использование сервера SMTP Google.

      Примечание. Если вы используете двухэтапную аутентификацию для Gmail, необходимо сгенерировать пароль приложения для Zabbix. Пароль приложения вводится только один раз во время установки. Инструкции по генерированию этого пароля можно получить в Справочном центре Google.

      Если вы используете Gmail, введите smtp.gmail.com в поле SMTP server​​​ (Сервер SMTP), 465​​​​​​ в поле SMTP server port​​​ (Порт сервера SMTP), gmail.com в SMTP helo и ваш адрес электронной почты в SMTP email​​​ (Электронная почта SMTP). Затем выберите SSL/TLS для Connection security (Безопасность подключения) и Имя пользователя и пароль для Authentication​​​ (Аутентификация). Введите адрес Gmail в качестве Username (Имя пользователя) и пароль приложения, сгенерированный в учетной записи Google, в качестве Password (Пароль).

      Настройка электронной почты в качестве средства связи

      На вкладке Message templates (Шаблоны сообщений) вы увидите список стандартных сообщений для различных типов уведомлений. Наконец, нажмите кнопку Update​​​ (Обновить) внизу формы для обновления параметров электронной почты.

      Теперь вы можете протестировать отправку уведомлений. Для этого нажмите на подчеркнутую ссылку Test​​ (Тестирование) в соответствующей строке.

      Вы увидите всплывающее окно. Введите свой адрес электронной в поле Send to (Отправить) и нажмите кнопку Test Тестирование. Вы увидите сообщение об успешной отправке и получите тестовое сообщение.

      Тестирование электронной почты

      Закройте всплывающее окно, нажав кнопку Cancel (Отмена).

      Теперь создайте нового пользователя. Нажмите Administration (Управление), а затем Users (Пользователи) на левой панели навигации. Вы увидите список пользователей. Затем нажмите кнопку Create user (Создать пользователя) в верхнем правом углу экрана. Откроется страница настройки пользователя:

      Создание

      Введите новое имя пользователя в поле Alias (Псевдоним) и установите новый пароль. Затем добавьте пользователя в группу администратора. Введите Zabbix administrators в поле Groups (Группы) и выберите его из предложенного списка.

      После добавления группы нажмите на вкладку Media (Средство связи) и нажмите на подчеркнутую ссылку Add (не на кнопку Add (Добавить) под ней). Вы увидите всплывающее окно.

      Добавление электронной почты

      Выберите опцию Email (Электронная почта) из выпадающего списка поля Type (тип). Введите свой адрес электронной почты в поле Send to (Отправить). В остальных опциях можно оставить значения по умолчанию. Нажмите кнопку Add (Добавить) внизу для отправки.

      Теперь перейдите на вкладку Permissions (Разрешения). Выберите Zabbix Super Admin (Суперадминистратор Zabbix) из выпадающего меню поля User type (Тип пользователя).

      Наконец, нажмите кнопку Add​​​ (Добавить) внизу формы для создания пользователя.

      Примечание. Использование пароля по умолчанию небезопасно. Чтобы изменить пароль встроенного пользователя Admin (Администратор), нажмите на псевдоним в списке пользователей. Затем нажмите Change password (Изменить пароль), введите новый пароль и подтвердите изменения, нажав на кнопку Update (Обновить).

      Теперь необходимо включить уведомления. Нажмите на вкладку Configuration (Настройка), а затем Actions (Действия) на левой панели навигации. Вы увидите предварительно настроенное действие, отвечающее за отправку уведомлений всем администраторам Zabbix. Вы можете проверять и менять настройки, нажимая на названия. Для целей данного обучающего модуля используйте параметры по умолчанию. Чтобы активировать действие, нажмите на красную ссылку Disabled​​​ (Отключено) в столбце Status (Статус).

      Теперь вы готовы получать оповещения. В следующем шаге вы сгенерируете одно для тестирования настройки уведомлений.

      Шаг 9 — Создание тестового оповещения

      На этом шаге вы сгенерируете тестовое оповещение, чтобы убедиться, что все подключено. По умолчанию Zabbix отслеживает объем свободного места на диске на вашем сервере. Он автоматически обнаруживает все установки диска и добавляет соответствующие проверки. Это обнаружение выполняется каждый час, поэтому необходимо немного подождать, чтобы сработало уведомление.

      Создайте временный файл, чтобы он был достаточно большим, чтобы сработало оповещение об использовании файловой системы Для этого войдите на второй сервер Ubuntu, если вы еще не подключены:

      • ssh sammy@second_ubuntu_server_ip_address

      Затем определите, сколько есть свободного места на сервере. Чтобы выяснить это, можно использовать команду df​​​:

      Команда df будет сообщать об использовании места на диске в вашей файловой системе, а -h сделает читаемый вывод. Результат будет выглядеть примерно следующим образом:

      Output

      Filesystem Size Used Avail Use% Mounted on /dev/vda1 78G 1.4G 77G 2% /

      В этом случае свободное пространство составляет 77G. Ваше свободное пространство может отличаться.

      Используйте команду fallocate, которая позволяет предварительно распределять или освобождать пространство для файла или создавать файл, который занимает более 80 % имеющегося пространства на диске. Этого будет достаточно, чтобы сработало оповещение:

      • fallocate -l 70G /tmp/temp.img

      Приблизительно через час Zabbix активирует оповещение об объеме свободного пространства на диске и запустит действие, которое вы настроили, чтобы отправить сообщение с уведомлением. Вы можете проверить входящие на наличие сообщения с сервера Zabbix. Сообщение может выглядеть следующим образом:

      Problem started at 09:49:08 on 2020.06.12
      Problem name: /: Disk space is low (used > 80%)
      Host: Second Ubuntu Server
      Severity: Warning
      Operational data: Space used: 71.34 GB of 77.36 GB (92.23 %)
      Original problem ID: 106
      

      Также вы можете перейти на вкладку Monitoring (Мониторинг), а затем на Dashboard​​​ (Панель управления), чтобы увидеть уведомление и детали.

      Главная панель управления

      Теперь, когда вы знаете, как работают оповещения, удалите созданный временный файл, чтобы освободить место на диске:

      Через одну минуту Zabbix отправит сообщение и оповещение исчезнет с главной панели управления.

      Заключение

      В этом обучающем модуле вы узнали, как настраивать простое и надежное решение для мониторинга, которое поможет отслеживать состояние ваших серверов. Теперь вы сможете получать предупреждения о проблемах и иметь возможность анализировать процессы, происходящие в вашей ИТ-инфраструктуре.

      Дополнительную информацию о настройке инфраструктуры мониторинга можно найти на нашей тематической странице, посвященной мониторингу.



      Source link