Centos 6.2 — Установка Zabbix 2.0

Совсем недавно вышла новая версия лучшей системы мониторинга Zabbix 2.0, с обновленным оформлением, исправлением ошибок и новыми «фичами». Пока в репозиториях еще нет пакетов для установки, будем ставить из выложенных исходников, на сайте zabbix.com.

Скачаем и распакуем архив с исходниками.

cd /home/
wget http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.0.0/zabbix-2.0.0.tar.gz
tar -xvf zabbix-2.0.0.tar.gz
cd zabbix-2.0.0

Приступим к конфигурированию и установке. Предположительно у Вас уже установлен MySQL и Apache + php.
Установим необходимые пакеты

yum install zlib-devel mysql-devel glibc-devel curl-devel gcc automake net-snmp-devel

Приступаем к установке непосредственно Zabbix.

./configure --enable-server --enable-agent --enable-proxy --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-openipmi 
make & make install
mkdir  /etc/zabbix
cd  ../..
cp /home/zabbix-2.0.0/conf/{zabbix_server.conf,zabbix_agentd.conf,zabbix_proxy.conf} /etc/zabbix/

Далее создаем базу в MySQL для Zabbix.

mysql -u root -p
mysql> create database zabbix character set utf8;
mysql> grant all privileges on zabbix.* to ‘zabbix’@'localhost’ identified by ‘zabbix’;
mysql>quit;

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

cd database/mysql/
cat mysql.sql | mysql -u zabbix -p zabbix
cat images_mysql.sql | mysql -u zabbix -p zabbix
cat data.sql | mysql -u zabbix -p zabbix

Далее отредактируем конфигурационные файлы сервисов Zabbix, обратите внимание, что собирали мы с zabbix_proxy, а это значить что теперь наш сервер будет работать на отличном от стандартного порту.
nano /etc/zabbix/zabbix_server.conf

ListenPort=10052
SourceIP=192.168.0.2
LogFile=/tmp/zabbix_server.log
LogFileSize=1
PidFile=/tmp/zabbix_server.pid
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBPort=3306
StartTrappers=1
SNMPTrapperFile=/tmp/zabbix_traps.tmp
SNMPTrapperFile=/tmp/zabbix_traps.tmp

Сервер в версии 2.0 будет принимать уже обработанные данные от серверов zabbix_proxy на порту 10052, таким образом мы распределим нагрузку с одного zabbix сервера на много zabbix_proxy серверов.
Далее настроим zabbix_proxy.
nano /etc/zabbix_proxy.conf

ProxyMode=0
Server=127.0.0.1
ServerPort=10052
Hostname=Zabbix proxy
ListenPort=10051
SourceIP=192.168.0.2
LogFile=/tmp/zabbix_proxy.log
LogFileSize=2
PidFile=/tmp/zabbix_proxy.pid
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
ProxyLocalBuffer=0
ProxyOfflineBuffer=1
HeartbeatFrequency=60
ConfigFrequency=3600
StartPollers=5
ListenIP=192.168.0.2

На этом конфигурация завершена, но службы запускать еще очень рано.
Добавим пользователя zabbix и дадим ему права на конфигурационные файлы.

useradd -m -s /bin/bash zabbix
chmod 400 /etc/zabbix/zabbix_server.conf
chown zabbix /etc/zabbix/zabbix_server.conf
cp misc/init.d/redhat/8.0/zabbix_server /etc/init.d/zabbix_server
cp misc/init.d/redhat/8.0/zabbix_agentd /etc/init.d/zabbix_agentd
cp misc/init.d/redhat/8.0/zabbix_agentd /etc/init.d/zabbix_proxy
chmod a+x /etc/init.d/zabbix_server
chmod a+x /etc/init.d/zabbix_proxy
chmod a+x /etc/init.d/zabbix_agentd

Редактируем в стартовых скриптах путь до папки, по умолчанию указанный не тот, который нам нужен.
nano /etc/init.d/zabbix_server
nano /etc/init.d/zabbix_agentd
nano /etc/init.d/zabbix_proxy
Приводим строку progdir к следующему виду.

progdir="/usr/local/sbin/"

Добавим скрипты в автозагрузку.

chkconfig --add zabbix_server
chkconfig --add zabbix_agentd
chkconfig --add zabbix_proxy
chkconfig --level 345 zabbix_server on
chkconfig --level 345 zabbix_agentd on
chkconfig --level 345 zabbix_proxy on

Теперь можно стартовать службы

service zabbix_server  start
service zabbix_agentd  start
service zabbix_proxy  start

Если какая либо из служб запустилась не верно, смотрим логи…

tail -50 /tmp/zabbix_server.log
tail -50 /tmp/zabbix_agentd.log
tail -50 /tmp/zabbix_proxy.log

Если ошибка запуска не ясна, можете писать кусок лога в комменты, помогу.
Едем дальше, службы запустились, пора заливать «веб-морду» (веб панель) ZABBIX. Для начала, скопируем скрыпты.

mkdir /var/www/html/zabbix
cp -r frontends/php/* /var/www/html/zabbix
chown apache:apache -R /var/www/html/zabbix/

Теперь нужно внести некоторые поправки в конфигурацию php. В файле nano /etc/php.ini приводим следующие строки к необходимому виду. Для удобства поиска, используем CTRL+W (в nano).

312 max_execution_time = 600
314 memory_limit = 256M
477 post_max_size = 32M
639 date.timezone = Europe/Moscow
1163 mbstring.func_overload = 2

Если на этом сервере хостится еще несколько сайтов, советую использовать настройки PHP чезез файл .htaccess

Создаем VirtualHost в Apache.

NameVirtualHost *:80


 DocumentRoot /var/www/html/zabbix
 ServerName zabbix
 DirectoryIndex index.php
 AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml
 AddType application/x-httpd-php-source .phps
 ErrorLog logs/zabbix-error_log
 

На этом хватит возни с терминалом, последний штрих — перезапуск Apache.

service httpd restart

После чего открываем в браузере http://192.168.0.2 (IP нашего сервера или DNS имя, если Вы уже позаботились об этом), и видим веб панель установщика ZABBIX. Следуем подсказкам мастера и завершаем установку.

Доступ в панель будет осуществляться по следующим авторизационным данным.
Логин: admin
Пароль: zabbix

12 comments on “Centos 6.2 — Установка Zabbix 2.0

  1. Проверено на 5.8 (но в данном случае это не важно, так как ошибки от системы не зависят):

    Из того что обнаружено на скорую руку:
    1. нет папки misc/conf/, откуда вы копировали конфиги не понятно.
    2. скопировать в /etc/zabbix это одно, но как сервер узнает, что конфиги лежат там?
    3. да и папки data нет.

    в итоге базу сделал так

    cat database/mysql/schema.sql | mysql -u zabbix -p zabbix
    cat database/mysql/images.sql | mysql -u zabbix -p zabbix
    cat database/mysql/data.sql | mysql -u zabbix -p zabbix

    А конфиги лежат в /usr/local/etc/ и именно их читает по дефолту. Либо делать симлинки, либо редактировать прям там. или редактировать /etc/init.d/zabbix_server.

  2. Да, действительно с некоторыми путями — напутал. прошу прощения, поправил.

    По конфигам снова таки загадочная ситуация. Действительно конфиги лежат в /usr/local/etc/, но это должно быть только при использовании префикса /usr/local/ при сборке. В остальных же случаях в /etc/zabbix/…

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

  3. Приветствую!
    Спасибо за мануал, пришлось меньше думать. Сначала хотел использовать постгрес, собрал с ним, поставил, но потом передумал. Сделал uninstall, clean, поставил заново, настроил sql. Полез в фронт-энд, а там на шаге тестирования коннекта с базой не могу выбрать в выпадающем меню MySQL. Только Postgresql. Все снова переставил, снес PHP-файлы, проверил конфиги — нигде ни слова про постгрес, рестартанул сервисы. Все также.
    Можете подсказать как бороться? Может сталкивались? Может есть опция пропустить вебмордовый пре-инсталл?


  4. rez0n:

    Да, действительно с некоторыми путями — напутал. прошу прощения, поправил.
    По конфигам снова таки загадочная ситуация. Действительно конфиги лежат в /usr/local/etc/, но это должно быть только при использовании префикса /usr/local/ при сборке. В остальных же случаях в /etc/zabbix/…
    В любом случае, приношу свои извинения за некоторые ошибки.

    А какой ключик надо использовать чтоб указать где должны лежать конфиги по умолчанию? ./configure —help ничего нет.

  5. [root@falcon zabbix-2.0.0]# ./configure -help
    `configure’ configures this package to adapt to many kinds of systems.

    Usage: ./configure [OPTION]… [VAR=VALUE]…

    To assign environment variables (e.g., CC, CFLAGS…), specify them as
    VAR=VALUE. See below for descriptions of some of the useful variables.

    Defaults for the options are specified in brackets.

    Configuration:
    -h, —help display this help and exit
    —help=short display options specific to this package
    —help=recursive display the short help of all the included packages
    -V, —version display version information and exit
    -q, —quiet, —silent do not print `checking …’ messages
    —cache-file=FILE cache test results in FILE [disabled]
    -C, —config-cache alias for `—cache-file=config.cache’
    -n, —no-create do not create output files
    —srcdir=DIR find the sources in DIR [configure dir or `..’]

    Installation directories:
    —prefix=PREFIX install architecture-independent files in PREFIX
    [/usr/local]
    —exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
    [PREFIX]

    By default, `make install’ will install all the files in
    `/usr/local/bin’, `/usr/local/lib’ etc. You can specify
    an installation prefix other than `/usr/local’ using `—prefix’,
    for instance `—prefix=$HOME’.

    For better control, use the options below.

    Fine tuning of the installation directories:
    —bindir=DIR user executables [EPREFIX/bin]
    —sbindir=DIR system admin executables [EPREFIX/sbin]
    —libexecdir=DIR program executables [EPREFIX/libexec]
    —sysconfdir=DIR read-only single-machine data [PREFIX/etc]
    —sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
    —localstatedir=DIR modifiable single-machine data [PREFIX/var]
    —libdir=DIR object code libraries [EPREFIX/lib]
    —includedir=DIR C header files [PREFIX/include]
    —oldincludedir=DIR C header files for non-gcc [/usr/include]
    —datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
    —datadir=DIR read-only architecture-independent data [DATAROOTDIR]
    —infodir=DIR info documentation [DATAROOTDIR/info]
    —localedir=DIR locale-dependent data [DATAROOTDIR/locale]
    —mandir=DIR man documentation [DATAROOTDIR/man]
    —docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE]
    —htmldir=DIR html documentation [DOCDIR]
    —dvidir=DIR dvi documentation [DOCDIR]
    —pdfdir=DIR pdf documentation [DOCDIR]
    —psdir=DIR ps documentation [DOCDIR]

    Program names:
    —program-prefix=PREFIX prepend PREFIX to installed program names
    —program-suffix=SUFFIX append SUFFIX to installed program names
    —program-transform-name=PROGRAM run sed PROGRAM on installed program names

    System types:
    —build=BUILD configure for building on BUILD [guessed]
    —host=HOST cross-compile to build programs to run on HOST [BUILD]

    Optional Features:
    —disable-option-checking ignore unrecognized —enable/—with options
    —disable-FEATURE do not include FEATURE (same as —enable-FEATURE=no)
    —enable-FEATURE[=ARG] include FEATURE [ARG=yes]
    —disable-dependency-tracking speeds up one-time build
    —enable-dependency-tracking do not reject slow dependency extractors
    —disable-largefile omit support for large files
    —enable-static Build statically linked binaries
    —enable-server Turn on build of Zabbix server
    —enable-proxy Turn on build of Zabbix proxy
    —enable-agent Turn on build of Zabbix agent and client utilities
    —enable-java Turn on build of Zabbix Java gateway
    —enable-ipv6 Turn on support of IPv6

    Optional Packages:
    —with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
    —without-PACKAGE do not use PACKAGE (same as —with-PACKAGE=no)
    —with-ibm-db2=[ARG] use IBM DB2 CLI from given sqllib directory
    (ARG=path); use /home/db2inst1/sqllib (ARG=yes);
    disable IBM DB2 support (ARG=no)
    —with-ibm-db2-include=[DIR]
    use IBM DB2 CLI headers from given path
    —with-ibm-db2-lib=[DIR]
    use IBM DB2 CLI libraries from given path
    —with-mysql[=ARG] use MySQL client library [default=no], optionally
    specify path to mysql_config
    —with-oracle=[ARG] use Oracle OCI API from given Oracle home
    (ARG=path); use existing ORACLE_HOME (ARG=yes);
    disable Oracle OCI support (ARG=no)
    —with-oracle-include=[DIR]
    use Oracle OCI API headers from given path
    —with-oracle-lib=[DIR] use Oracle OCI API libraries from given path
    —with-postgresql[=ARG] use PostgreSQL library [default=no], optionally
    specify path to pg_config
    —with-sqlite3[=ARG] use SQLite 3 library [default=no], optionally
    specify the prefix for sqlite3 library

    If you want to use Jabber protocol for messaging:
    —with-jabber[=DIR] Include Jabber support [default=no]. DIR is the
    iksemel library install directory.

    If you want to use cURL library:
    —with-libcurl[=DIR] use cURL package [default=no], optionally specify
    path to curl-config

    What ODBC driver do you want to use (please select only one):
    —with-iodbc[=ARG] use odbc driver against iODBC package [default=no],
    default is to search through a number of common
    places for the IODBC files.

    —with-unixodbc[=ARG] use odbc driver against unixODBC package
    [default=no], optionally specify full path to
    odbc_config binary.

    What SNMP package do you want to use (please select only one):
    —with-net-snmp[=ARG] use NET-SNMP package [default=no], optionally
    specify path to net-snmp-config

    —with-ucd-snmp[=ARG] use UCD-SNMP package [default=no], default is to
    search through a number of common places for the
    UCD-SNMP files.

    If you want to use SSH2 based checks:
    —with-ssh2[=DIR] use SSH2 package [default=no], DIR is the SSH2
    library install directory.

    If you want to check IPMI devices:
    —with-openipmi[=DIR] Include OPENIPMI support [default=no]. DIR is the
    OPENIPMI base install directory, default is to
    search through a number of common places for the
    OPENIPMI files.

    If you want to check LDAP servers:
    —with-ldap[=DIR] Include LDAP support [default=no]. DIR is the LDAP
    base install directory, default is to search through
    a number of common places for the LDAP files.

    Some influential environment variables:
    CC C compiler command
    CFLAGS C compiler flags
    LDFLAGS linker flags, e.g. -L if you have libraries in a
    nonstandard directory
    LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if
    you have headers in a nonstandard directory

    CPP C preprocessor
    PKG_CONFIG path to pkg-config utility
    PKG_CONFIG_PATH
    directories to add to pkg-config’s search path
    PKG_CONFIG_LIBDIR
    path overriding pkg-config’s built-in search path
    IKSEMEL_CFLAGS
    C compiler flags for IKSEMEL, overriding pkg-config
    IKSEMEL_LIBS
    linker flags for IKSEMEL, overriding pkg-config

    Use these variables to override the choices made by `configure’ or to help
    it to find libraries and programs with nonstandard names/locations.

    Report bugs to the package provider.


  6. анончик:

    Приветствую!
    Спасибо за мануал, пришлось меньше думать. Сначала хотел использовать постгрес, собрал с ним, поставил, но потом передумал. Сделал uninstall, clean, поставил заново, настроил sql. Полез в фронт-энд, а там на шаге тестирования коннекта с базой не могу выбрать в выпадающем меню MySQL. Только Postgresql. Все снова переставил, снес PHP-файлы, проверил конфиги — нигде ни слова про постгрес, рестартанул сервисы. Все также.
    Можете подсказать как бороться? Может сталкивались? Может есть опция пропустить вебмордовый пре-инсталл?

    Вам нужна строка по типу этой: ./configure —enable-server —with-mysql —with-net-snmp —with-jabber —with-libcurl

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

  8. Сталкивался, так и не решил. Так как не принципиально.
    У меня конфиги лежат в
    [root@falcon]# ls -l /usr/local/etc/zabbix_*
    -rw-r—r— 1 root root 2272 May 30 10:38 /usr/local/etc/zabbix_agent.conf
    -rw-r—r— 1 root root 3361 Jun 7 12:42 /usr/local/etc/zabbix_agentd.conf
    -rw-r—r— 1 root root 7581 Jun 6 10:55 /usr/local/etc/zabbix_proxy.conf
    -rw-r—r— 1 root root 8494 Jun 8 10:16 /usr/local/etc/zabbix_server.conf

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

  10. Пытаюсь реализовать распределенную схему: Zabbix_server в одном офисе (подсеть офиса 10.0.0.0/24), хосты, которые хочу мониторить — во втором офисе (192.168.1.0/24). Во втором офисе ставлю zabbix_proxy, направляю на zabbix_server, раз в минуту связь происходит. На zabbix_server добавляю узел сети, например s1 (192.168.1.100) через zabbix_proxy. Хосты недоступны.
    Ниже часть лога proxy:
    s 10235:20141111:023224.203 [Z3005] query failed: [1054] Unknown column ‘p.status’ in ‘field list’ [select p.id,h.host,i.key_,p.clock,p.ns,p.times
    10235:20141111:023225.234 [Z3005] query failed: [1054] Unknown column ‘p.status’ in ‘field list’ [select p.id,h.host,i.key_,p.clock,p.ns,p.times
    10235:20141111:023226.257 [Z3005] query failed: [1054] Unknown column ‘p.status’ in ‘field list’ [select p.id,h.host,i.key_,p.clock,p.ns,p.times
    10235:20141111:023227.303 [Z3005] query failed: [1054] Unknown column ‘p.status’ in ‘field list’ [select p.id,h.host,i.key_,p.clock,p.ns,p.times
    10249:20141111:023228.338 [Z3005] query failed: [1054] Unknown column ‘t.macros’ in ‘field list’ [select t.httptestid,t.name,t.macros,t.agent,t.
    10235:20141111:023228.339 [Z3005] query failed: [1054] Unknown column ‘p.status’ in ‘field list’ [select p.id,h.host,i.key_,p.clock,p.ns,p.times
    10235:20141111:023229.358 [Z3005] query failed: [1054] Unknown column ‘p.status’ in ‘field list’ [select p.id,h.host,i.key_,p.clock,p.ns,p.times
    10235:20141111:023230.390 [Z3005] query failed: [1054] Unknown column ‘p.status’ in ‘field list’ [select p.id,h.host,i.key_,p.clock,p.ns,p.times
    10235:20141111:023231.419 [Z3005] query failed: [1054] Unknown column ‘p.status’ in ‘field list’ [select p.id,h.host,i.key_,p.clock,p.ns,p.times
    10235:20141111:023232.454 [Z3005] query failed: [1054] Unknown column ‘p.status’ in ‘field list’ [select p.id,h.host,i.key_,p.clock,p.ns,p.times
    10249:20141111:023233.504 [Z3005] query failed: [1054] Unknown column ‘t.macros’ in ‘field list’ [select t.httptestid,t.name,t.macros,t.agent,t.
    Подскажите, пожалуйста, в чем проблема?

  11. Судя по ошибке — ему не хватает определенной колонки в базе данных.
    У вас какая версия Zabbix? Дело в том, что данная статья по относительно старой версии Zabbix.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *