Установка Zabbix-сервера версии 2_2

Установка Zabbix-сервера

Для начала имеем свежеустановленную ОС Debian 7.0 без графической оболочки, установлена только базовая система. Требуется на ней поднять Zabbix-сервер и сервер SSH + компилятор

apt-get install openssh-server mc mysql-server mysql-client gcc make

Далее я предпочел вести всю настройку через ssh от root, мне так было удобнее. Я знаю, что неправильно, но другого выхода неыло так как был известен только рутовый пароль
Отключим репозиторий с установочного диска, чтобы при установке ПО система не требовала вставить болванку:

nano /etc/apt/sources.list

Комментируем строку

deb cdrom:[Debian GNU/Linux 6.0.7 _Squeeze_ - Official i386 CD Binary-1 20130223-13:15]/ squeeze main

Иначе будет требовать вставить диск с установочником Дебиана. Нам это не надо, у нас есть тырнеты и будем качать самые свежие установочники из сети.

Создадим группу и юзера zabbix:

groupadd zabbix
useradd -r -g zabbix zabbix

Скачиваем исходники заббикса, в моем случае это версия 2.2.2:

wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.2.2/zabbix-2.2.2.tar.gz

Распаковываем архив

tar -xzf zabbix-2.2.2.tar.gz
cd zabbix-2.2.2/

Смотрим возможные варианты компиляции и определяем, что нам еще нужно доустановить:

./configure –help

Так как я ставлю сервер на MySQL, буду мониторить Web-сервисы, базы данных и рабочие станции по SNMP, то я доустанавливаю следующие компоненты. Советую их ставить по одному, так как на разных машинах могут быть варианты.

apt-get install libcurl4-openssl-dev iodbc libiodbc2 default-jdk libmysqlclient-dev libiksemel-dev libcurl4-openssl-dev libsnmp-dev libopenipmi-dev

Компилируем

./configure  --enable-server --enable-agent  --enable-java  --with-mysql --with-libcurl  --with-iodbc --with-net-snmp  --with-ssh2 --with-openipmi --with-ldap

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

Рассмотрим подробнее секцию 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.

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

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

make install
cp misc/init.d/debian/zabbix-server /etc/init.d/
cp misc/init.d/debian/zabbix-agent /etc/init.d/

Меняем шапки скриптов:

nano /etc/init.d/zabbix-server

Вместо существующей шапки пишем:

#! /bin/sh
## BEGIN INIT INFO
 #Provides:          zabbix-server
 #Required-Start:    $remote_fs $network
 #Required-Stop:     $remote_fs
 #Default-Start:     2 3 4 5
 #Default-Stop:      0 1 6
 #hould-Start:      mysql
 #Should-Stop:       mysql
 #Short-Description: Start zabbix-server daemon
## END INIT INFO
nano /etc/init.d/zabbix-agent

Вместо существующей шапки пишем:

#!/bin/sh
### BEGIN INIT INFO
 #Provides: zabbix-agent
 #Required-Start: $local_fs $remote_fs
 #Required-Stop: $local_fs $remote_fs
 #Should-Start: $all
 #Should-Stop: $all
 #Default-Start: 2 3 4 5
 #Default-Stop: 0 1 6
 #Short-Description: Start/stop Zabbix-agent
 #Description: Start/stop Zabbix-agent
### END INIT INFO

Прописываем их в автозагрузку:

update-rc.d zabbix-server defaults
update-rc.d zabbix-agent defaults

Изменяем настройки кодировки MySQL:

nano /etc/mysql/my.cnf

В секции [mysqld] дописываем:

collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

Перезапускаем MySQL:

service mysql restart

Создаем БД zabbix:

mysql -uroot -p
create database zabbix;
exit

Заливаем служебные базы заббикса:

cd database/mysql
mysql -uroot -p -b zabbix < schema.sql
mysql -uroot -p -b zabbix < images.sql
mysql -uroot -p -b zabbix < data.sql

Правим конфиг заббикса на предмет подключения к БД:

nano /usr/local/etc/zabbix_server.conf

Проверяем значения параметров DBName, DBUser, DBPassword. Мне пришлось раскомментировать строчку DBPassword и прописать пароль.

Далее устанавливаем веб-морду заббикса:

apt-get install apache2 php5 php5-mysql php5-gd
cd /root/zabbix-2.2.2/frontends/
cp -a php /var/www/zabbix/
chown -R www-data:www-data /var/www/zabbix/

Правим конфиг php как этого требует zabbix

nano /etc/php5/apache2/php.ini
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Europe/Moscow

Перезапускаем apache:

service apache2 restart

Зайдем на веб-морду сервера zabbix по адресу http://<ServerIP>/zabbix

логин и пароль zabbix/zabbix

все остальное зависит только от Ваших хотелок и умения писать триггеры