Nesta página
1 Criando Zabbix agent no Windows
Visão Geral
Esta seção demonstra como construir binários do agente Zabbix para Windows a partir de fontes com ou sem TLS..
Compilando OpenSSL
Os passos a seguir ajudarão a compilar OpenSSL a partir de fontes em MS Windows 10 (64-bit).
- Para compilar OpenSSL em uma máquina com Windows, você precisará:
- C compilador (por exemplo, VS 2017 RC),
- NASM (https://www.nasm.us/),
- Perl (e.g. Strawberry Perl a partir de http://strawberryperl.com/),
- Perl module Text::Template (cpan Text::Template).
- Obtenha as fontes OpenSSL a partir de https://www.openssl.org/. A versão OpenSSL 1.1.1 é usada.
- Desempacote as fontes OpenSSL. Por exemplo, em E:\openssl-1.1.1.
- Abra uma linha de comando Window. Por exemplo, o x64 Native Tools Command Prompt para VS 2017 RC.
- Vá para o diretório de fontes do OpenSSL. Por exemplo, E:\openssl-1.1.1.
- Verifique que o NASM possa ser encontrado:
e:\openssl-1.1.1> nasm --version NASM version 2.13.01 compiled on May 1 2017
- Verifique que o NASM possa ser encontrado:
- Configure OpenSSL, por exemplo:
e:\openssl-1.1.1> perl E:\openssl-1.1.1\Configure VC-WIN64A no-shared no-capieng no-srp no-gost no-dgram no-dtls1-method no-dtls1_2-method --api=1.1.0 --prefix=C:\OpenSSL-Win64-111-static --openssldir=C:\OpenSSL-Win64-111-static- Observe a opção 'não compartilhada': se 'não compartilhada' for usada, em seguida as bibliotecas estáticas OpenSSL libcrypto.lib e libssl.lib serão 'autossuficientes' e os resultados em binários Zabbix serão incluídos. Os próprios OpenSSL não necessitam de OpenSSL DLLs externos. Vantagem: Os binários Zabbix podem ser copiados para outras máquinas com Windows, sem bibliotecas OpenSSL. Desvantagem: quando uma nova versão de correção de bugs for lançada, o Zabbix agent necessita ser recompilado e reinstalado.
- Se 'não compartilhado' não for usado, em seguida as bibliotecas estáticas libcrypto.lib e libssl.lib serão utilizadas em OpenSSL DLLs em tempo de execução. Vantagem: quando uma nova versão de correção de bugs for lançada, provavelmente você poderá atualizar apenas OpenSSL DLLs, sem recompilar o Zabbix agent. Desvantagem: copiar o Zabbix agent para outra máquina, requer também copiar OpenSSL DLLs.
- Compile OpenSSL, execute os testes, instale:
e:\openssl-1.1.1> nmake e:\openssl-1.1.1> nmake test ... All tests successful. Files=152, Tests=1152, 501 wallclock secs ( 0.67 usr + 0.61 sys = 1.28 CPU) Result: PASS e:\openssl-1.1.1> nmake install_sw'install_sw' instalar apenas os componentes de software (por exemplo: bibliotecas, arquivos de cabeçalho, mas não a documentação). Caso você deseje instalar tudo, utilize o "nmake install".
Compilando PCRE
- Baixe a biblioteca PCRE ou a PCRE2 (suportadas desde a versão Zabbix 6.0) (https://pcre.org/).
- Extraia para diretório E:\pcre2-10.39.
- Instale o CMake a partir de https://cmake.org/download/. Durante a instalação, selecione: e verifique que o cmake\bin esteja no seu atalho (versão testada 3.9.4).
- Crie um diretório de compilação vazio, preferencialmente um subdiretório da origem dir. Por exemplo, E:\pcre2-10.39\build.
- Abra um comando windows. Por exemplo, the x64 Native Tools Command Prompt para VS 2017 e naquele ambiente, execute cmake-gui. Não tente iniciar Cmake a partir do menu Widows Start, já que isso pode levar a erros.
- Digite E:\pcre2-10.39 e E:\pcre2-10.39\build para a origem e construa diretórios, respectivamente.
- Aperte o botão "Configurar".
- Ao especificar o gerador para este projeto, selecione "NMake Makefiles".
- Crie um novo diretório de instalação vazio. Por exemplo, E:\pcre2-10.39-install.
- Em seguida, o GUI listará múltiplas opções de configuração. Certifique-se que as seguintes opções estejam selecionadas:
- PCRE_SUPPORT_UNICODE_PROPERTIES ON
- PCRE_SUPPORT_UTF ON
- CMAKE_INSTALL_PREFIX E:\pcre2-10.39-install
- Aperte em "Configurar" novamente. O botão adjacente "Generate" deverá estar ativo.
- Aperte "Generate".
- No evento em que ocorrer erros, é recomendável que você exclua o cache CMake antes de tentar repetir o processo de construção do CMake. No CMake GUI, o cache pode ser excluído selecionado o "File > Delete Cache".
- O diretório de compilação agora deve conter um sistema de de compilação utilizável - Makefile.
- Abra um comando Windows. Por exemplo, the x64 Native Tools Command Prompt para VS 2017 e navegue até o Makefile, mencionado acima.
- Execute o comando NMake:
E:\pcre2-10.39\build> nmake install
Compilando Zabbix
Os seguintes passos ajudarão você a compilar o Zabbix a partir das fontes no MS Windows 10 (64-bit). Ao compilar o Zabbix com/sem suporte TLS, a única diferença significante é o passo 4.
- Em uma máquina Linux, verifique a fonte a partir do
git:
$ git clone https://git.zabbix.com/scm/zbx/zabbix.git $ cd zabbix $ ./bootstrap.sh $ ./configure --enable-agent --enable-ipv6 --prefix=`pwd` $ make dbschema $ make dist - Copie e desempacote o arquivo. Por exemplo, zabbix-4.4.0.tar.gz, em uma máquina Windows.
- Vamos assumir que as fontes estão em e:\zabbix-4.4.0. Abra um comando no windows. Por exemplo, e.g. the x64 Native Tools Command Prompt para VS 2017 RC. Vá para E:\zabbix-4.4.0\build\win32\project.
- Compile zabbix_get, zabbix_sender and zabbix_agent.
- sem TLS:
E:\zabbix-4.4.0\build\win32\project> nmake /K PCREINCDIR=E:\pcre2-10.39-install\include PCRELIBDIR=E:\pcre2-10.39-install\lib - com TLS:
E:\zabbix-4.4.0\build\win32\project> nmake /K -f Makefile_get TLS=openssl TLSINCDIR=C:\OpenSSL-Win64-111-static\include TLSLIBDIR=C:\OpenSSL-Win64-111-static\lib PCREINCDIR=E:\pcre2-10.39-install\include PCRELIBDIR=E:\pcre2-10.39-install\lib E:\zabbix-4.4.0\build\win32\project> nmake /K -f Makefile_sender TLS=openssl TLSINCDIR="C:\OpenSSL-Win64-111-static\include TLSLIBDIR="C:\OpenSSL-Win64-111-static\lib" PCREINCDIR=E:\pcre2-10.39-install\include PCRELIBDIR=E:\pcre2-10.39-install\lib E:\zabbix-4.4.0\build\win32\project> nmake /K -f Makefile_agent TLS=openssl TLSINCDIR=C:\OpenSSL-Win64-111-static\include TLSLIBDIR=C:\OpenSSL-Win64-111-static\lib PCREINCDIR=E:\pcre2-10.39-install\include PCRELIBDIR=E:\pcre2-10.39-install\lib
- sem TLS:
- Os binários novos estão localizados em e:\zabbix-4.4.0\bin\win64. Como o OpenSSL foi compilado com a opção 'não compartilhar', os binários do Zabbix contêm o OpenSSL internamente e podem ser copiados para outras máquina que não possuem o OpenSSL.
Compilando Zabbix com LibreSSL
O processo é similar a compilar com OpenSSL, mas agora você precisará fazer pequenas alterações nos arquivos localizados no diretório:
build\win32\project:
- No Makefile_tls exclua
/DHAVE_OPENSSL_WITH_PSK, por exemplo, encontre:
CFLAGS = $(CFLAGS) /DHAVE_OPENSSL /DHAVE_OPENSSL_WITH_PSK
e substitua por
CFLAGS = $(CFLAGS) /DHAVE_OPENSSL
- No Makefile_common.inc adicione
/NODEFAULTLIB:LIBCMTpor exemplo, encontre:
/MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DYNAMICBASE:NO /PDB:$(TARGETDIR)\$(TARGETNAME).pdb
e substitua por
/MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DYNAMICBASE:NO /PDB:$(TARGETDIR)\$(TARGETNAME).pdb /NODEFAULTLIB:LIBCMT