Установка 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
все остальное зависит только от Ваших хотелок и умения писать триггеры