zabbix-mineВ данной статье я расскажу об установке сервера Zabbix из исходных кодов на Debian Squeeze. Безусловно можно скачать уже готовые пакеты, но в официальном репозитории лежит совсем древняя версия 1.8, а неофициальным я не особенно доверяю. Также веским аргументом сборки из исходников является возможность точного подбора необходимых модулей.

Необходимые ингредиенты:

1. Debian Squeeze. В примере я использую версию 6.0.7 x64 netinst с галкой SSH server.

2. MySQL 5.6. Zabbix успешно ставится и на более старые версии, но в MySQL 5.6 значительно увеличена производительность InnoDB, что крайне важно для больших инсталляций. Инструкция по настройке MySQL 5.6 публиковалась ранее. Вы можете ознакомиться с ней в статье MySQL 5.6 с поддержкой NoSQL на Debian Squeeze.

Подготовка к установке.

Если условия, представленные выше, соблюдены — мы можем начать установку Zabbix.

1. Для начала нам нужно подготовить окружение. Для этого установим gcc и make.

Создадим пользователя и группу Zabbix.

1. Нам необходим архив с исходниками, который можно взять по адресу http://www.zabbix.com/download.php

В нашем случае это версия Zabbix 2.0.5.

На момент написания статьи актуальная ссылка тут.

Распакуем архив:

Для того, чтобы посмотреть возможные варианты компиляции, выполним команду.

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

Рассмотрим подробнее секцию Optional Features, точнее ряд ключей:

  • —enable-server  Этот ключ включает сборку сервера.
  • —enable-proxy Этот ключ включает сборку прокси. В рамках этой статьи мы не будем его использовать.
  • —enable-agent Этот ключ включает сборку. Так как сервер будет мониторить в т.ч. сам себя, поставим его обязательно.
  • —enable-java Если есть потребность в мониторинге Java, нужна компиляция с этим ключом. Для его использования нам потребуется Java, которую можно поставить командой:
  • —enable-ipv6 Ключ включает поддержку ipv6.

Перейдем к секции Optional Packages:

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

  • —with-mysql[=ARG]  Данный ключ укажет, что необходима компиляция с поддержкой MySQL. В нашем случае он обязателен. Если сервер MySQL стоит на отдельном сервере либо не стоит полного MySQL —  требуется установка:
  • —with-jabber[=DIR]  Если мы захотим использовать Jabber для уведомлений, укажем этот ключ. Требуется установка: 
  • —with-libcurl[=DIR]  Если мы хотим мониторить Web сервисы, укажем этот ключ. Требуется установка: 
  • —with-iodbc[=ARG]  или —with-unixodbc[=ARG]  Если мы захотим мониторить базы данных, нам понадобится один из этих ключей в зависимости от окружения. В примере используется iodbc. Требуется установка: 
  • —with-net-snmp[=ARG] или —with-ucd-snmp[=ARG] При использовании проверок SNMP, нам потребуется один из ключей. Так как NET-SNMP является продолжением UCD-SNMP, по возможности используйте его. Требуется установка:
  • —with-ssh2[=DIR] Ключ необходим при проверках SSH.
  • —with-openipmi[=DIR]  Если нам потребуется мониторинг по IPMI, укажем этот ключ. По возможности избегайте частых проверок по причине тормознутости модулей IPMI (будь то решения от Supermicro или от HP). Требуется установка: 
  •   —with-ldap[=DIR]  Включение поддержки проверок ldap.

В примере мы будем компилировать Zabbix почти со всеми ключами. В реальных инсталляциях чем меньше, тем лучше.

Создадим конфигурационный скрипт.

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

Теперь нам осталось только запустить make install.

После компиляции нам потребуется создание и легкий тюнинг загруженных скриптов.

Для этого копируем загрузочные скрипты в init.d.

Демоны должны загружаться при запуске, поэтому пропишем автозагрузку.

Опс, ничего не получилось. Мы получили ошибки:

Дело в скриптах. необходимо будет их подправить.

Изменим шапки (В начале файла обозначены #) на представленные ниже

Теперь повторим попытку настройки автозапуска.

На этот раз все должно пройти без сучка без задоринки.

Настройка MySQL.

Прежде чем залить базу Zabbix на MySQL сервер, необходимо слегка изменить настройки MySQL.

Обязательно необходимо указать кодировку, в которой будут создаваться базы и таблицы.

Для этого добавим информацию о кодировке в my.cnf. В примере указан путь к my.cnf в случае, если MySQL 5.6 устанавливался по инструкции, указанной в начале статьи.

Откроем файл my.cnf

В секции [mysqld] добавим строки.

Перезапустим сервер.

Проверим кодировку:

Должен вернуться аналогичный результат:

Если все ок, сразу создадим базу Zabbix.

Теперь необходимо залить базы.

Для этого переходим в директорию с необходимыми sql файлами.

В конфиге Zabbix сервера необходимо прописать настройки подключения к БД.

Проверьте значение параметров DBName, DBUser, DBPassword.

С базой закончили, теперь перейдем к фронтенду.

Установка фронтенда Zabbix.

Фронтенд Zabbix представляет из себя набор PHP скриптов, следовательно для его работы нам потребуется WEB сервер и PHP5.

Установим их.

Перейдем к директории со скриптами.

Скопируем директорию PHP с папку WEB сервера.

Изменим владельца файлов.

Перезагрузим сервер.

Загрузим агент и сервер zabbix.

Перейдем к фронтенду:

http://Server/zabbix

После нажатия кнопки Next на первом экране появится окно пречеков.

zabin1

Как видим, ряд настроек PHP, выставленный по умолчанию, не устраивает.

Для того, чтобы продолжить, нам нужно поправить несколько значений в php.ini.

В файле приведем значения всех параметров к рекомендуемым.

PHP time zone можно заполнить согласно данным, приведенным на сайте PHP http://php.net/manual/ru/timezones.php

Для Москвы параметр будет выглядеть так:

После всех изменений перезагрузим Apache.

Если все параметры выставлены правильно, после нажатия кнопки Retry в окне проверок, все загорится зеленым и мы сможем нажать кнопку Next.

На 3-м экране укажем настройки подключения к БД.

При тесте коннекта, если мы ставили MySQL 5.6, возникнет проблема:

Опять идем в настройки PHP.

Ищем параметр:

Раскомментируем его и прописываем его значение.

Снова перезагружаем Apache.

Теперь проверка БД пройдет без нареканий.

Далее все время жмем Next и в итоге попадаем в окно ввода логина/пароля.

Логинимся под логином admin, паролем zabbix.

Бинго! Zabbix работает!

Русский язык в Zabbix 2.0.

При попытке изменить язык фронтенда на русский (Profile в верхнем правом углу), языки кроме английского будут недоступны. Чтобы это исправить, вернемся в консоль и выполним команду:

Для поддержки русского найдем локаль ru_RU.UTF-8 UTF-8 и установим ее.

После этого перезагрузим Apache и получим возможность выбора русского языка.

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

На этом все, спасибо за внимание.