1 Compilando o Zabbix agent no Windows
Visão geral
Esta página demonstra como compilar o Zabbix agent a partir do código-fonte no Windows 10 (64 bits).
Estas instruções se aplicam às versões do Windows compatíveis com o Visual Studio 2022.
A compilação do Zabbix agent requer:
- Compilador C (incluído no Build Tools for Visual Studio 2022)
- OpenSSL (para os recursos de criptografia do Zabbix)
- PCRE2 (Expressões Regulares Compatíveis com Perl; para os recursos de correspondência de padrões de expressões regulares do Zabbix)
Você pode compilar o Zabbix agent usando um dos seguintes métodos:
- Usando o vcpkg—uma abordagem automatizada que simplifica o gerenciamento de dependências usando um gerenciador de pacotes C++.
- Compilação manual—uma abordagem manual que requer a instalação de todas as dependências antes de compilar o agent.
Dependendo das suas necessidades de monitoramento, bibliotecas adicionais podem ser necessárias. Para obter mais informações, consulte Requisitos.
Antes de iniciar o processo de compilação, observe o seguinte:
- Para executar comandos, use o "x64 Native Tools Command Prompt" (incluído no Build Tools for Visual Studio 2022), iniciado por um usuário com permissões suficientes para gravar em pastas protegidas.
- Recomenda-se criar um diretório de trabalho em
C:\Zabbixpara todos os arquivos de código-fonte e pastas de compilação. No entanto, os componentes compilados devem ser instalados emC:\Program Files\Zabbix\x64.
Compilando o Zabbix agent com vcpkg
Esta seção contém instruções para compilar o Zabbix agent com o vcpkg, um gerenciador de pacotes que simplifica o gerenciamento de dependências e a integração com projetos em C++.
1. Baixe e instale o Build Tools for Visual Studio 2022. Durante a instalação, selecione a carga de trabalho Desenvolvimento para desktop com C++, que inclui as ferramentas necessárias para compilar o agent com o vcpkg:
- Compilador C (Microsoft Visual C++)
- Ferramenta de linha de comando NMake
- Gerenciador de pacotes vcpkg
- "x64 Native Tools Command Prompt"
2. Abra o cmd.exe com privilégios de administrador, inicialize o vcpkg e instale as dependências necessárias para compilar o Zabbix agent (isso pode levar algum tempo):
cd C:\Zabbix
vcpkg new --application
vcpkg add port pcre2
vcpkg add port openssl
vcpkg install --triplet x64-windows-static --x-install-root="C:\Program Files\Zabbix\x64"
3. Baixe o arquivo compactado do código-fonte do Zabbix e extraia-o em C:\Zabbix\zabbix-7.4.0.
4. Navegue até o diretório de compilação do Zabbix (C:\Zabbix\zabbix-7.4.0\build\win32\project) e crie o seguinte script build.bat;
certifique-se de especificar corretamente os diretórios nos quais o OpenSSL e o PCRE2 estão instalados:
:: Defina o caminho de instalação do vcpkg:
set vcpkg=C:\Program Files\Zabbix\x64\x64-windows-static
:: Execute o processo de compilação:
nmake -f Makefile CPU=AMD64 ^
PCRE2INCDIR="%vcpkg%\include" ^
PCRE2LIBDIR="%vcpkg%\lib" ^
TLS=openssl ^
TLSINCDIR="%vcpkg%\include" ^
TLSLIBDIR="%vcpkg%\lib" ^
LIBS="$(LIBS) Crypt32.lib" ^
all
5. Abra o "x64 Native Tools Command Prompt" e compile o Zabbix agent executando o script:
cd C:\Zabbix\zabbix-7.4.0\build\win32\project
build.bat
Se você abriu um prompt de comando diferente, inicialize primeiro o ambiente de compilação do Visual Studio:
"%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x64
cd C:\Zabbix\zabbix-7.4.0\build\win32\project
build.bat
Coloque entre aspas os caminhos que contêm espaços.
Após a compilação, os binários dos componentes do Zabbix estarão localizados em C:\Zabbix\zabbix-7.4.0\bin\win64.
O arquivo de configuração do Zabbix agent está localizado em C:\Zabbix\zabbix-7.4.0\conf.
Para executar o agent, copie zabbix_agent.exe e seu arquivo de configuração para uma pasta dedicada (por exemplo, C:\Zabbix\agent) e execute o agent:
mkdir C:\Zabbix\agent
copy C:\Zabbix\zabbix-7.4.0\bin\win64\zabbix_agent.exe C:\Zabbix\agent\
copy C:\Zabbix\zabbix-7.4.0\conf\zabbix_agent.win.conf C:\Zabbix\agent\
C:\Zabbix\agent\zabbix_agent.exe -c C:\Zabbix\agent\zabbix_agent.win.conf
Compilando o agent do Zabbix manualmente
Este método de compilação do agent do Zabbix é adequado para usuários que precisam de controle total sobre o ambiente de compilação ou estão em um ambiente restrito onde usar o vcpkg não é possível.
Esta seção contém instruções para compilar o agent do Zabbix manualmente, o que inclui instalar as ferramentas de compilação e dependências necessárias (Perl, OpenSSL, PCRE2) e, em seguida, compilar o agent.
Instalando ferramentas de compilação
1. Baixe e instale o Build Tools for Visual Studio 2022. Durante a instalação, certifique-se de selecionar a carga de trabalho Desenvolvimento para desktop com C++, que inclui as ferramentas necessárias para compilar o agent manualmente:
- Compilador C (Microsoft Visual C++)
- Ferramenta de linha de comando NMake
- "x64 Native Tools Command Prompt"
Instalando o OpenSSL
Para compilar o Zabbix agent sem suporte a TLS, prossiga para a seção Instalando o PCRE2.
1. Baixe e instale o Strawberry Perl (disponível como instalador MSI).
Durante a instalação, especifique C:\Zabbix\Strawberry como a pasta de instalação.
2. Instale o módulo Perl Text::Template:
cpanm Text::Template
3. Verifique se o Netwide Assembler (NASM; necessário para compilar o OpenSSL) foi compilado durante a instalação do Strawberry Perl:
nasm -v
# NASM version 2.16.01 compiled on May 3 2024
Se o NASM não estiver compilado, instale-o manualmente. Para obter mais informações, consulte a documentação do NASM.
4. Baixe o arquivo-fonte do OpenSSL e extraia-o em C:\Zabbix\openssl-3.5.0.
5. Acesse o diretório extraído e configure o OpenSSL, por exemplo:
cd C:\Zabbix\openssl-3.5.0
perl Configure VC-WIN64A no-shared no-capieng no-winstore no-srp no-gost no-dgram no-dtls1-method no-dtls1_2-method --api=1.1.0 --prefix="C:\Program Files\Zabbix\x64\OpenSSL" --openssldir="C:\Program Files\Zabbix\x64\OpenSSL"
Se você escolher um diretório personalizado para o OpenSSL ao compilar o Zabbix agent no Windows (por exemplo, C:\zabbix ou C:\openssl-64bit), certifique-se de revogar o acesso de gravação desse diretório para usuários que não sejam administradores.
Caso contrário, o agent carregará as configurações de SSL de um caminho que pode ser modificado por usuários sem privilégios, resultando em uma possível vulnerabilidade de segurança.
- A opção
no-sharedfaz com que libcrypto.lib e libssl.lib sejam bibliotecas estáticas autocontidas do OpenSSL, de modo que os binários do Zabbix incluam o OpenSSL sem precisar de DLLs externas. Isso significa que os binários do Zabbix podem ser copiados para outras máquinas Windows sem as bibliotecas do OpenSSL; no entanto, quando uma nova versão de correção de bugs do OpenSSL for lançada, será necessário recompilar o Zabbix agent. - Sem a opção
no-shared, o Zabbix depende das DLLs do OpenSSL em tempo de execução. Isso significa que as atualizações do OpenSSL podem não exigir a recompilação do Zabbix agent; no entanto, ao copiá-lo para outras máquinas, as DLLs do OpenSSL também deverão ser copiadas.
Para obter mais informações sobre outras opções de configuração do OpenSSL, consulte a documentação do OpenSSL.
6. Compile o OpenSSL e execute os testes (observe que isso pode levar algum tempo):
Execute os testes sem privilégios administrativos; caso contrário, isso poderá causar resultados inesperados ou riscos de segurança. Se alguns testes falharem, consulte a documentação do OpenSSL para obter informações sobre solução de problemas.
nmake
nmake test
...
All tests successful.
Files=325, Tests=3101, 822 wallclock secs ( 4.81 usr + 0.81 sys = 5.62 CPU)
Result: PASS
7. Instale o OpenSSL:
nmake install
Para instalar somente os componentes de software (bibliotecas e arquivos de cabeçalho, mas não a documentação), você pode usar nmake install_sw.
Instalando o PCRE2
1. Baixe e instale o CMake (disponível como instalador MSI).
Durante a instalação, certifique-se de especificar C:\Zabbix\CMake como a pasta de instalação e selecione a opção Add CMake to the PATH environment variable.
2. Baixe o arquivo de origem do PCRE2 e extraia-o para C:\Zabbix\pcre2-10.45.
3. Crie um diretório build no diretório extraído do PCRE2 e navegue até ele:
mkdir C:\Zabbix\pcre2-10.45\build
cd C:\Zabbix\pcre2-10.45\build
4. Configure o PCRE2:
cmake -G "NMake Makefiles" -DPCRE_SUPPORT_UNICODE_PROPERTIES=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="C:\Program Files\Zabbix\x64\PCRE2" "C:\Zabbix\pcre2-10.45"
Se ocorrerem erros, recomenda-se excluir o cache do CMake antes de tentar repetir o processo de build do CMake.
O cache (CMakeCachecache.txt) pode ser localizado no diretório build do diretório extraído do PCRE2.
5. Compile o PCRE2 usando o NMake:
nmake
6. Instale o PCRE2:
cmake --install .
Compilando o agent do Zabbix
1. Baixe o arquivo compactado do código-fonte do Zabbix e extraia-o em C:\Zabbix\zabbix-7.4.0.
Se precisar gerar um arquivo compactado do código-fonte a partir do repositório de código-fonte bruto (por exemplo, para aplicar patches personalizados ou compilar a partir do código-fonte mais recente), execute os seguintes comandos em uma máquina Linux:
git clone https://git.zabbix.com/scm/zbx/zabbix.git
cd zabbix
./bootstrap.sh
./configure
make dist
Isso criará um arquivo compactado do código-fonte, que poderá ser copiado para uma máquina Windows.
2. Navegue até o diretório de compilação do Zabbix, abra o "x64 Native Tools Command Prompt" e compile o agent do Zabbix (ou outros componentes); certifique-se de especificar corretamente os diretórios nos quais o OpenSSL e o PCRE2 estão instalados:
# Se você abriu um prompt de comando diferente, inicialize primeiro o ambiente de compilação do Visual Studio:
"%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x64
cd C:\Zabbix\zabbix-7.4.0\build\win32\project
# Com suporte a TLS:
nmake /K -f Makefile_agent PCRE2INCDIR="C:\Program Files\Zabbix\x64\PCRE2\include" PCRE2LIBDIR="C:\Program Files\Zabbix\x64\PCRE2\lib" TLS=openssl TLSINCDIR="C:\Program Files\Zabbix\x64\OpenSSL\include" TLSLIBDIR="C:\Program Files\Zabbix\x64\OpenSSL\lib"
nmake /K -f Makefile_get PCRE2INCDIR="C:\Program Files\Zabbix\x64\PCRE2\include" PCRE2LIBDIR="C:\Program Files\Zabbix\x64\PCRE2\lib" TLS=openssl TLSINCDIR="C:\Program Files\Zabbix\x64\OpenSSL\include" TLSLIBDIR="C:\Program Files\Zabbix\x64\OpenSSL\lib"
nmake /K -f Makefile_sender PCRE2INCDIR="C:\Program Files\Zabbix\x64\PCRE2\include" PCRE2LIBDIR="C:\Program Files\Zabbix\x64\PCRE2\lib" TLS=openssl TLSINCDIR="C:\Program Files\Zabbix\x64\OpenSSL\include" TLSLIBDIR="C:\Program Files\Zabbix\x64\OpenSSL\lib"
# Sem suporte a TLS:
nmake /K -f Makefile_agent PCRE2INCDIR="C:\Program Files\Zabbix\x64\PCRE2\include" PCRE2LIBDIR="C:\Program Files\Zabbix\x64\PCRE2\lib"
nmake /K -f Makefile_get PCRE2INCDIR="C:\Program Files\Zabbix\x64\PCRE2\include" PCRE2LIBDIR="C:\Program Files\Zabbix\x64\PCRE2\lib"
nmake /K -f Makefile_sender PCRE2INCDIR="C:\Program Files\Zabbix\x64\PCRE2\include" PCRE2LIBDIR="C:\Program Files\Zabbix\x64\PCRE2\lib"
Coloque entre aspas os caminhos que contêm espaços.
Após a compilação, os binários dos componentes do Zabbix estarão localizados em C:\Zabbix\zabbix-7.4.0\bin\win64.
O arquivo de configuração do agent do Zabbix está localizado em C:\Zabbix\zabbix-7.4.0\conf.
Para executar o agent, copie zabbix_agent.exe e seu arquivo de configuração para uma pasta dedicada (por exemplo, C:\Zabbix\agent) e execute o agent:
mkdir C:\Zabbix\agent
copy C:\Zabbix\zabbix-7.4.0\bin\win64\zabbix_agentd.exe C:\Zabbix\agent\
copy C:\Zabbix\zabbix-7.4.0\conf\zabbix_agentd.win.conf C:\Zabbix\agent\
C:\Zabbix\agent\zabbix_agentd.exe -c C:\Zabbix\agent\zabbix_agentd.win.conf -f