Zabbix Documentation 4.2

3.04.04.45.0 (current)| In development:5.2 (devel)| Unsupported:1.82.02.22.43.23.44.2Guidelines

User Tools

Site Tools


Sidebar

ru:manual:installation:install:win_agent

Сборка Zabbix агента на Windows

Обзор

Этот раздел демонстрирует как собрать бинарные файлы Zabbix Windows агента из исходного кода с или без TLS.

Компиляция OpenSSL

Следующие шаги помогут вам в компилировании OpenSSL из исходного кода на MS Windows 10 (64-bit).

  1. Для компиляции OpenSSL вам потребуется Windows машина с:
    1. C компилятором (например, VS 2017 RC),
    2. Perl (например, Strawberry Perl с http://strawberryperl.com/),
    3. Perl модуль Text::Template (cpan Text::Template).
  2. Наличие OpenSSL исходного кода с https://www.openssl.org/. Здесь использован OpenSSL 1.1.1.
  3. Разархивируйте исходный код OpenSSL, например, в E:\openssl-1.1.1.
  4. Откройте окно командной строки, например, x64 Native Tools Command Prompt for VS 2017 RC.
  5. Перейдите в директорию с исходным кодом OpenSSL, например в E:\openssl-1.1.1.
    1. Удостоверьтесь, что NASM можно найти:
      e:\openssl-1.1.1> nasm --version
      NASM version 2.13.01 compiled on May  1 2017
  6. Настройте OpenSSL, например:
    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
    • Обратите внимание на опцию 'no-shared': если используется 'no-shared', тогда статические библиотеки OpenSSL libcrypto.lib и libssl.lib будут 'самодостаточными' и в результате бинарные файлы Zabbix будут включать в себя OpenSSL, не потребуется внешних DLL от OpenSSL. Преимущество: бинарные файлы Zabbix можно копировать на другие Windows машины без библиотек OpenSSL. Недостаток: когда будет выпущена новая версия OpenSSL с исправлением ошибок, будет необходимо перекомпилировать и переустановить Zabbix агента.
    • Если 'no-shared' не используется, тогда статические библиотеки libcrypto.lib и libssl.lib будут использоваться во время выполнения DLL OpenSSL. Преимущество: когда будет выпущена новая версия OpenSSL с исправлением ошибок, возможно вы сможете обновить только OpenSSL DLL, без необходимости перекомпиляции Zabbix агента. Недостаток: при копировании Zabbix агента на другую машину необходимо также копировать OpenSSL DLL.
  7. Скомпилируйте OpenSSL, выполните тесты, установите:
    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' установит только компоненты приложения (т.е. библиотеки, файлы заголовков, но без документации). Если вы хотите установить всё, используйте "nmake install".

Компиляция PCRE

  1. Загрузите PCRE библиотеку (обязательная библиотека начиная с Zabbix 4.0) from pcre.org, version 8.XX; не pcre2 (ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.41.zip)
  2. Извлеките в директорию E:\pcre-8.41
  3. Установите CMake с https://cmake.org/download/, в процессе установки выберите: и убедитесь, что cmake\bin находится в вашей директории (протестировано с версией 3.9.4).
  4. Создайте новую, пустую директорию для сборки, предпочтительно поддиректорию в директории с исходным кодом. Например, E:\pcre-8.41\build.
  5. Откройте окно командной строки, например x64 Native Tools Command Prompt for VS 2017 и из этой среды окружения выполните cmake-gui. Не пытайтесь запустить Cmake из меню Старт Windows, так как это может привести к ошибкам.
  6. Введите E:\pcre-8.41 и E:\pcre-8.41\build для директорий с исходным кодом и сборки, соответственно.
  7. Надмите на "Configure" кнопку.
  8. Когда выбираете генератор для этого проекта, выберите "NMake Makefiles".
  9. Создайте новую, пустую директорию инсталляции. Например, E:\pcre-8.41-install.
  10. Затем GUI перечислит несколько опций конфигурации. Убедитесь, что следующие опции выбраны:
    • PCRE_SUPPORT_UNICODE_PROPERTIES ON
    • PCRE_SUPPORT_UTF ON
    • CMAKE_INSTALL_PREFIX E:\pcre-8.41-install
  11. Нажмите "Configure" снова. Соседняя кнопка "Generate" теперь должна быть активна.
  12. Нажмите "Generate".
  13. В случае возникновения ошибок рекомендуется удалить CMake кэш перед попыткой повторения процесса сборки CMake. В CMake GUI кэш можно удалить выбрав "File > Delete Cache".
  14. Директория сборки теперь должна содержать пригодный для использования систему сборки - Makefile.
  15. Откройте окно командной строки, например, x64 Native Tools Command Prompt for VS 2017 и перейдите к упомянутому выше Makefile.
  16. Запустите команду NMake:
    E:\pcre-8.41\build> nmake install

Компиляция Zabbix

Следующие шаги помогут вам в компилировании Zabbix из исходного кода на MS Windows 10 (64-bit). При компиляции Zabbix с/без поддержки TLS единственное существенное отличие отражено в 4 шаге.

  1. На Linux машине скачайте исходный код с SVN:
    $ svn co svn://svn.zabbix.com/tags/4.2.0
    $ cd 4.2.0/
    $ ./bootstrap.sh
    $ ./configure --enable-agent --enable-ipv6 --prefix=`pwd`
    $ make dbschema
    $ make dist
  2. Скопируйте и распакуйте архив, например, zabbix-4.2.0.tar.gz, на Windows машине.
  3. Давайте предположим, что исходный код расположен в e:\zabbix-4.2.0. Откройте окно командной строки, например, x64 Native Tools Command Prompt for VS 2017 RC. Перейдите в e:\4.2.0\build\win32\project.
  4. Скомпилируйте zabbix_get, zabbix_sender и zabbix_agent.
    • без TLS:
      E:\zabbix-4.2.0\build\win32\project> nmake /K PCREINCDIR=E:\pcre-8.41-install\include PCRELIBDIR=E:\pcre-8.41-install\lib
    • с TLS:
      E:\zabbix-4.2.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:\pcre-8.41-install\include PCRELIBDIR=E:\pcre-8.41-install\lib
      E:\zabbix-4.2.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:\pcre-8.41-install\include PCRELIBDIR=E:\pcre-8.41-install\lib
      E:\zabbix-4.2.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:\pcre-8.41-install\include PCRELIBDIR=E:\pcre-8.41-install\lib
  5. Новые бинарные файлы будут располагаться в e:\zabbix-4.2.0\bin\win64. Поскольку OpenSSL был скомпилирован с опцией 'no-shared', бинарные файлы Zabbix содержат внутри себя OpenSSL и их можно копировать на другие машины, на которых нет OpenSSL.

Компиляция Zabbix с LibreSSL

Процесс схож с компилированием с поддержкой OpenSSL, но вам необходимо небольшие изменения в файлах, которые расположены в build\win32\project директории:

  • В Makefile_tls удалите /DHAVE_OPENSSL_WITH_PSK, т.е. найдите
    CFLAGS =	$(CFLAGS) /DHAVE_OPENSSL /DHAVE_OPENSSL_WITH_PSK
    и замените на
    CFLAGS =	$(CFLAGS) /DHAVE_OPENSSL
  • В Makefile_common.inc добавьте /NODEFAULTLIB:LIBCMT, т.е. найдите
    /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DYNAMICBASE:NO /PDB:$(TARGETDIR)\$(TARGETNAME).pdb
    и замените на
    /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DYNAMICBASE:NO /PDB:$(TARGETDIR)\$(TARGETNAME).pdb /NODEFAULTLIB:LIBCMT