Обновление Zabbix и перенос на CentOS 7

Автор: Андрей Торженов

Необходимо перенести систему мониторинга Zabbix 2.0.5 с сервера на базе Arch Linux на сервер под управлением CentOS 7 и обновить Zabbix до версии 2.4.7. В качестве базы данных используется PostgreSQL.

На новом сервере установлен CentOS Linux release 7.2.1511 (Minimal ISO), c отключенной системой принудительного контроля доступа SELinux.

Работы на старом сервере Arch Linux

Останавливаем Zabbix.

[root@arch ~]# /etc/rc.d/zabbix-server stop
[root@arch ~]# /etc/rc.d/zabbix-agent stop

Экспортируем БД Zabbix.

[root@arch ~]# pg_dump -v -h 127.0.0.1 -U postgres -W zabbix > 09022016_zabbix.sql

Загружаем БД на новый сервер.

[root@arch ~]# scp 09022016_zabbix.sql root@172.26.24.162:/root/

Работы на новом сервере CentOS 7

PostgreSQL. Установка

[root@zabbix ~]# yum localinstall http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-centos94-9.4-2.noarch.rpm
[root@zabbix ~]# yum update
[root@zabbix ~]# yum install postgresql94-server

PostgreSQL. Настройка

Инициализируем базу данных.

[root@zabbix ~]# /usr/pgsql-9.4/bin/postgresql94-setup initdb
Initializing database ... OK

Настраиваем доступ к БД. В конфигурационном файле «/var/lib/pgsql/9.4/data/pg_hba.conf» описываем сети с которых будет доступ к PostgreSQL.

…
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
#
…

Включаем автозагрузку и запускаем PostgreSQL.

[root@zabbix ~]# systemctl enable postgresql-9.4
[root@zabbix ~]# systemctl start postgresql-9.4

Создаем пользователя и базу данных.

[root@zabbix ~]# sudo -u postgres psql
psql (9.4.5)
Type "help" for help.

postgres=# CREATE ROLE zabbix LOGIN PASSWORD 'zabbix' SUPERUSER;
CREATE ROLE
postgres=# CREATE database zabbix encoding 'utf8' OWNER zabbix;
CREATE DATABASE
postgres=# \q

Логин и пароль — zabbix. Если вам нужно указать другой пароль, используйте команду:

postgres=# \password zabbix

Проверяем подключение к БД.

[root@zabbix ~]# psql -U zabbix -d zabbix -h 127.0.0.1 -W
Password for user zabbix:
psql (9.4.5)
Type "help" for help.

zabbix=# \q

PostgreSQL. Импортируем БД со строго Zabbix

[root@zabbix ~]# sudo -u postgres psql zabbix < /root/09022016_zabbix.sql

PostgreSQL. Полезные команды (доп. материалы)

Полезные команды PostgreSQL

Список БД
[root@server ~]# sudo -u postgres psql -l

Создаем пользователя и базу данных
[root@server ~]# sudo -u postgres psql
postgres=# CREATE ROLE zabbix LOGIN PASSWORD ‘zabbix’ SUPERUSER;
postgres=# CREATE database zabbix encoding ‘utf8’ OWNER zabbix;
postgres=# \q

Логин и пароль — zabbix. Если вам нужно указать другой пароль, используйте команду:
postgres=# \password zabbix

Удаление БД
postgres=# DROP database DB_NAME;

Экспорт БД
[root@server ~]# pg_dump -v -h 127.0.0.1 -U zabbix -W zabbix > 05112015_zabbix.sql

Импорт БД
[root@server ~]# sudo -u postgres psql zabbix < /root/05112015_zabbix.sql

Дополнительные материалы:

Apache, PHP и др.

Устанавливаем необходимые для работы Zabbix модули, библиотеки, приложения.

[root@zabbix ~]# yum install httpd php php-gd php-ldap php-bcmath php-mbstring php-xml php-pgsql net-snmp net-snmp-agent-libs net-snmp-devel net-snmp-libs net-snmp-perl net-snmp-utils libxml2-devel unixODBC-devel libcurl-devel libssh2-devel OpenIPMI-devel openssl-devel openldap-devel

Редактируем /etc/php.ini

post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Europe/Moscow
always_populate_raw_post_data = -1

Конфигурационный файл Apache для Zabbix находится: /etc/httpd/conf.d/zabbix.conf

Содержимое файла /etc/httpd/conf.d/zabbix.conf
#
# Zabbix monitoring system php web frontend
#

Alias /zabbix /usr/share/zabbix

<Directory "/usr/share/zabbix">
    Options FollowSymLinks
    AllowOverride None
    Require all granted

    <IfModule mod_php5.c>
        php_value max_execution_time 300
        php_value memory_limit 128M
        php_value post_max_size 16M
        php_value upload_max_filesize 2M
        php_value max_input_time 300
        # php_value date.timezone Europe/Riga
    </IfModule>
</Directory>

<Directory "/usr/share/zabbix/conf">
    Require all denied
</Directory>

<Directory "/usr/share/zabbix/include">
    Require all denied
</Directory>

 

Zabbix 2.4. Установка

[root@zabbix ~]# rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/7/x86_64/zabbix-release-2.4-1.el7.noarch.rpm
[root@zabbix ~]# yum install zabbix-server-pgsql zabbix-web-pgsql zabbix-agent

Если появится ошибка:

Error: Package: zabbix-server-pgsql-2.4.7-1.el6.x86_64 (zabbix)
           Requires: libnetsnmp.so.20()(64bit)

Выполните:

[root@zabbix ~]# yum clean headers
[root@zabbix ~]# yum clean packages
[root@zabbix ~]# yum clean metadata

И повторно запустите установку:

[root@zabbix ~]# yum install zabbix-server-pgsql zabbix-web-pgsql zabbix-agent

Включаем автозагрузку и запускаем Apache.

[root@zabbix ~]# systemctl enable httpd
[root@zabbix ~]# systemctl start httpd

Zabbix 2.4. Настройка Zabbix через Web Wizard

Запускаем Web Wizard настройки Zabbix http://ip.address.server/zabbix/setup.php и проходим все необходимые шаги. Все настройки понятны, акцентирую внимание только на настройке подключения к БД.

Zabbix. Configure DB connection

Zabbix. Configure DB connection

Zabbix 2.4. Настройка /etc/zabbix/zabbix_server.conf

…
### Option: StartPingers
#    Number of pre-forked instances of ICMP pingers.
#    Во избежании ошибки: Zabbix icmp pinger processes more than 75% busy
# Mandatory: no
# Range: 0-1000
# Default:

StartPingers=5
…
### Option: LogFileSize
#    Maximum size of log file in MB.
#    0 - disable automatic log rotation.
#
# Mandatory: no
# Range: 0-1024
# Default:
# LogFileSize=1

LogFileSize=10

### Option: DebugLevel
#    Specifies debug level
#    0 - basic information about starting and stopping of Zabbix processes
#    1 - critical information
#    2 - error information
#    3 - warnings
#    4 - for debugging (produces lots of information)
#
# Mandatory: no
# Range: 0-4
# Default:

DebugLevel=3
…

Zabbix 2.4. Настройка /etc/zabbix/zabbix_agentd.conf

...
### Option: LogFileSize
#    Maximum size of log file in MB.
#    0 - disable automatic log rotation.
#
# Mandatory: no
# Range: 0-1024
# Default:
# LogFileSize=1

LogFileSize=10
…
### Option: Hostname
#    Unique, case sensitive hostname.
#    Required for active checks and must match hostname as configured on the server.
#    Value is acquired from HostnameItem if undefined.
#
#    Указываем hostname как он прописан в zabbix Configure > Host > Host name!
#    Необходимо для работы агента в активном режиме, и что бы не было ошибки в логах:
#    No active checks on server: host [zabbix] not found
#
# Mandatory: no
# Default:
# Hostname=

Hostname=MSK.MO.Zabbix server
...

Включаем автозагрузку и запускаем Zabbix (сервер и агент).

[root@zabbix ~]# systemctl enable zabbix-agent
[root@zabbix ~]# systemctl start zabbix-agent
[root@zabbix ~]# systemctl enable zabbix-server
[root@zabbix ~]# systemctl start zabbix-server

Zabbix 2.4. Лог файлы

Открываем лог файл /var/log/zabbix/zabbix_server.log и смотрим как прошла конвертация БД из строй версии в новую.

 38180:20160209:124505.866 Starting Zabbix Server. Zabbix 2.4.7 (revision 56694).
 38180:20160209:124505.876 ****** Enabled features ******
 38180:20160209:124505.876 SNMP monitoring:           YES
 38180:20160209:124505.877 IPMI monitoring:           YES
 38180:20160209:124505.877 WEB monitoring:            YES
 38180:20160209:124505.877 VMware monitoring:         YES
 38180:20160209:124505.877 Jabber notifications:      YES
 38180:20160209:124505.877 Ez Texting notifications:  YES
 38180:20160209:124505.877 ODBC:                      YES
 38180:20160209:124505.877 SSH2 support:              YES
 38180:20160209:124505.877 IPv6 support:              YES
 38180:20160209:124505.877 ******************************
 38180:20160209:124505.877 using configuration file: /etc/zabbix/zabbix_server.conf
 38180:20160209:124506.226 current database version (mandatory/optional): 02010000/02010000
 38180:20160209:124506.227 required mandatory version: 02040000
 38180:20160209:124506.227 starting automatic database upgrade
 38180:20160209:124506.277 completed 0% of database upgrade
 38180:20160209:124506.304 completed 1% of database upgrade
…
 38180:20160209:124507.916 completed 99% of database upgrade
 38180:20160209:124507.928 completed 100% of database upgrade
 38180:20160209:124507.928 database upgrade fully completed

Zabbix 2.4. Важно про Housekeeper

После обновления Zabbix до версии 2.4 с версии более ранней чем 2.2, выключается функция housekeeper. Если у вас ранее использовалась данная функция, необходимо её заново настроить.

Цитата из документации:

Housekeeper is disabled after upgrading to Zabbix 2.4 from versions before 2.2. The desired housekeeper functionality should be checked and enabled manually in Administration → General → Housekeeper, if necessary.
https://www.zabbix.com/documentation/2.4/manual/installation/upgrade

Настройка Housekeeper.

Zabbix. Configure housekeeper

Zabbix. Configure housekeeper

Настраиваем редирект на страницу Zabbix

Что бы при заходе на адрес http://ip.address.server попадать сразу на страницу zabbix, необходимо создать файл /var/www/html/index.html следующего содержания.

<html>
<title></title>
<meta http-equiv="refresh" content="0; url=/zabbix" />
</html>

Дополнительные материалы

Zabbix

CentOS

PostgreSQL

The following two tabs change content below.
В профессиональной сфере занимаюсь всем, что связанно с IT. Основная специализация - VoIP и сети передачи данных. Стараюсь не заниматься Windows серверами (но иногда приходится) и 1С.

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