Установка Zabbix на RedHat/CentOS/Fedora

Установка Zabbix на RedHat/CentOS/Fedora

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

Для сохранения всех данных заббикс использует: MySQL, PostgreSQL, SQLite или Oracle,  сам интерфейс был написан на языке программирования — PHP.

ZABBIX имеет несколько видов для мониторинга:

  • Simple checks — может делать проверки на  доступность и реакцию стандартных сервисов, таких как SMTP или HTTP без установки какого-либо ПО на клиентском хосте.
  • ZABBIX agent — может быть установлен на UNIX-подобных или Windows хостах для получения данных о нагрузке процессора, использования сети, дисковом пространстве и т. д.
  • External check — выполнение внешних программ. ZABBIX также поддерживает мониторинг через SNMP.

В данной теме «Установка Zabbix на RedHat/CentOS/Fedora» поговорим как можно установить zabbix на RedHat, CentOS или Fedora. Так же покажу как можно обновиться с одной версии на другую.

Имеется:

  • 97.79.237.16 — CentOS.VM2
  • 97.79.237.17 — CentOS.VM1
  • 97.79.237.18 — Zabbix-Proxy.VM3
  • 97.79.237.19 — Zabbix-Server.VM4

У меня будет задействовано 4 ноды. Из них, 1 нода будет выступать в качестве сервера, 1 нода — в качестве прокси-сервера и будет 2 клиента.

Установка Zabbix на RedHat/CentOS/Fedora

Расскажу ка можно установить zabbix разных версий на CentOS, RedHat, Fedora.

Установка Zabbix 3.2 на RedHat/CentOS/Fedora 

CentOS 7:

# cd /usr/local/src && rpm -Uvh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

Установка Zabbix 2.4 на RedHat/CentOS/Fedora 

Добавляем репозиторий.

CentOS 7:

# cd /usr/local/src
# rpm -Uvh http://repo.zabbix.com/zabbix/2.4/rhel/7/x86_64/zabbix-release-2.4-1.el7.noarch.rpm

CentOS 6 с i386 архитектурой:

# cd /usr/local/src
# rpm -Uvh http://repo.zabbix.com/zabbix/2.4/rhel/6/i386/zabbix-release-2.4-1.el6.noarch.rpm

CentOS 6 с x86-x64 архитектурой:

# cd /usr/local/src
# rpm -Uvh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm

CentOS 5:

Для i386:

# cd /usr/local/src
# rpm -Uvh http://repo.zabbix.com/zabbix/2.4/rhel/5/i386/zabbix-release-2.4-1.el5.noarch.rpm

Для x86-x64:

# cd /usr/local/src
# rpm -Uvh http://repo.zabbix.com/zabbix/2.4/rhel/5/x86_64/zabbix-release-2.4-1.el5.noarch.rpm

Установка Zabbix 2.2 на RedHat/CentOS/Fedora 

CentOS 7:

# cd /usr/local/src && rpm -Uvh http://repo.zabbix.com/zabbix/2.2/rhel/7/x86_64/zabbix-release-2.2-1.el7.noarch.rpm

CentOS 6 c i386:

# cd /usr/local/src
# rpm -Uvh http://repo.zabbix.com/zabbix/2.2/rhel/6/i386/zabbix-release-2.2-1.el6.noarch.rpm

CentOS 6 c x86-x64:

# cd /usr/local/src
# rpm -Uvh http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm

CentOS 5 с i386:

# cd /usr/local/src
# rpm -Uvh http://repo.zabbix.com/zabbix/2.2/rhel/5/i386/zabbix-release-2.2-1.el5.noarch.rpm

CentOS 5 c x86-x64:

# cd /usr/local/src && rpm -Uvh http://repo.zabbix.com/zabbix/2.2/rhel/5/x86_64/zabbix-release-2.2-1.el5.noarch.rpm

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

Установка Zabbix на RedHat/CentOS/Fedora

Установим сервер с заббиксом, у меня он имеют лейбу — Zabbix-Server.VM4, и выполняем установку:

# yum install zabbix-agent zabbix-server-mysql zabbix-frontend-php zabbix-web-mysql

Сейчас, можно немного поправить конфиг apache (можно собственно не лезть и не менять нечего):

# vim /etc/httpd/conf.d/zabbix.conf

Нужно убрать комментарий со строки:

[…]

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/Kiev
[…]

В этой строке прописываем свою временную зону ( я себе установил г.Киев). Как это сделаете, нужно перезагрузить апач:

# service httpd restart

Устанавливаем mysql/mariadb сервер:

Установка MySQL на Debian/Ubuntu/Linux Mint

Установка MySQL 5.5 на RHEL / CentOS и Fedora

Установка MySQL из портов во FreeBSD

Установка MariaDB 10 на CentOS 7

Установка MariaDB на Debian

Установка MariaDB 5.5 на RHEL / CentOS / Fedora Linux

Установка MariaDB 10.0 на CentOS Linux

Установка MariaDB в Ubuntu 12.04/12.10/13.04/13.10/14.04

Если mysql установлен, то еще необходимо создать пользователя, который будет управлять данной БД. Для начала, подключаемся к серверу:

# mysql -proot -p

Создаем базу и пользователя с паролем:

> create database zabbix character set utf8 collate utf8_bin;
> grant all privileges on zabbix.* to 'zabbix'@'localhost' IDENTIFIED BY 'passwd_user_zabbix';

Импортируем данные в созданную БД:

# mysql zabbix <  /usr/share/doc/zabbix-server-mysql-2.4.8/create/schema.sql
# mysql zabbix <  /usr/share/doc/zabbix-server-mysql-2.4.8/create/images.sql
# mysql zabbix <  /usr/share/doc/zabbix-server-mysql-2.4.8/create/data.sql

Выполняем установку через веб-интерфейс. Вводим данные которые были созданы выше(  zabbix — база данных, zabbix — пользователь,  passwd_user_zabbix — его пароль). После установки, можно будет зайти в админ панель:

  • Пользователь — Admin
  • Пароль для пользователя — zabbix

CentOS.VM1 и CentOS.VM2

# yum install zabbix-agent

 Zabbix-Proxy.VM3

# yum install zabbix-agent  zabbix-proxy-mysql zabbix-proxy

Настройка Iptables
Для работы Web-интерфейса Zabbix нам потребуется открыть 80 порт, а также 10051 для взаимодействия внешних Zabbix-агентов с сервером.

# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 10051 -j ACCEPT
# service iptables save

Настройка Zabbix на RedHat/CentOS/Fedora

zabbix-sever (server)

# vim /etc/zabbix/zabbix_server.conf

У меня выглядит вот так:

[...]
LogFile=/var/log/zabbix/zabbix_server.log
[...]
LogFileSize=0
[...]
PidFile=/var/run/zabbix/zabbix_server.pid
[...]
DBName=zabbix
[...]
DBUser=zabbix
[...]
DBPassword=Zabbix_DB_password
[...]
DBSocket=/var/lib/mysql/mysql.sock
[...]
SNMPTrapperFile=/var/log/snmptt/snmptt.log
[...]
AlertScriptsPath=/usr/lib/zabbix/alertscripts
[...]
ExternalScripts=/usr/lib/zabbix/externalscripts
[...]

zabbix-proxy

# vim /etc/zabbix/zabbix_proxy.conf

У меня выглядит вот так:

[...]
Server=97.79.237.19 # server IP
[...]
Hostname=zabbix24-proxy1.VM3
[...]
LogFile=/var/log/zabbix/zabbix_proxy.log
[...]
LogFileSize=0
[...]
PidFile=/var/run/zabbix/zabbix_proxy.pid
[...]
DBName=zabbix
[...]
DBUser=zabbix
[...]
DBPassword=Zabbix_DB_password
[...]
DBSocket=/var/lib/mysql/mysql.sock
[...]
ProxyLocalBuffer=2
[...]
ProxyOfflineBuffer=12
[...]
ConfigFrequency=300
[...]
DataSenderFrequency=60
[...]
ExternalScripts=/usr/lib/zabbix/externalscripts
[...]

zabbix-agent

Производим установку на каждой машине которая будет мониторится.

Выполняем установку самого агента (zabbix-agent):

# yum -y install zabbix-agent

Обратите внимание — устанавливается пакет zabbix-agent, так как на Zabbix-сервере работает:

# yum info zabbix | grep Vers | head -n 1

Version     : 2.4.2

После установки — сразу добавляем его в автозагрузку:

# chkconfig zabbix-agent on

Копируем файл конфигурации:

# cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.default

Редактируем такие поля:

# cat /etc/zabbix/zabbix_agentd.conf | grep Hostname=
# Hostname=
Hostname=centOS.VM1

Hostname должен совпадать с именем сервера:

# hostname

centOS.VM1

Адрес самого Zabbix-сервера, с которым будет связан агент:

# cat /etc/zabbix/zabbix_agentd.conf | grep Server
### Option: Server
# Server=
Server=IP_adress_server_or proxy_server

Так же можно использовать:

# egrep -v '^$|^#' /etc/zabbix/zabbix_server.conf

Если на сервере несколько интерфейсов — полезно указать опцию ListenIP.

Что бы задать определённый порт — используйте опцию ListenPort, если не определено — будет использоваться порт по-умолчанию 10050.

Определить файл лога можно опцией LogFile, иначе — будет использоваться стандартный /var/log/messages:

# cat /etc/zabbix/zabbix_agentd.conf | grep LogFile
### Option: LogFile
# LogFile=
LogFile=/var/log/zabbix/zabbix_agentd.log

Так же можно использовать:

# egrep -v '^$|^#' /etc/zabbix/zabbix_agentd.conf

StartAgents — количество запускаемых «процессов агента — по-умолчанию 6.

CentOS.VM1

# vim /etc/zabbix/zabbix_agentd.conf

Имеет вид:

[...]
PidFile=/var/run/zabbix/zabbix_agentd.pid
[...]
LogFile=/var/log/zabbix/zabbix_agentd.log
[...]
LogFileSize=0
[...]
Server=97.79.237.18 # this is my zabbix-proxy. You can use IP server
[...]
ServerActive=97.79.237.18 # this is my zabbix-proxy. You can use IP server
[...]
Hostname=CentOS.VM1
[...]
Include=/etc/zabbix/zabbix_agentd.d/
[...]

CentOS.VM2

# vim /etc/zabbix/zabbix_agentd.conf

Имеет вид:

[...]
PidFile=/var/run/zabbix/zabbix_agentd.pid
[...]
LogFile=/var/log/zabbix/zabbix_agentd.log
[...]
LogFileSize=0
[...]
Server=97.79.237.18 # this is my zabbix-proxy. You can use IP server
[...]
ServerActive=97.79.237.18 # this is my zabbix-proxy. You can use IP server
[...]
Hostname=CentOS.VM2
[...]
Include=/etc/zabbix/zabbix_agentd.d/
[...]

Запускаем агента на каждой машине:

# service zabbix-agent start
Starting Zabbix agent: [ OK ]

Проверяем:

# ps aux | grep zabbix
zabbix 7226 0.4 0.0 10176 1076 ? S 10:27 0:00 /usr/sbin/zabbix_agentd

или

# netstat -anp | grep 10050
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 7226/zabbix_agentd

Можно использовать и следующий синтаксис:

# netstat -tulpen|grep -i zabb
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 498 704173 6029/zabbix_agentd
tcp 0 0 :::10050 :::* LISTEN 498 704174 6029/zabbix_agentd

Веб интерфейс Zabbix

Переходим в панель управления Zabbix-сервера, раздел Configuration > Hosts, справа вверху нажимаем Create host:

добавляем хосты и все остальное. Я попозже постараюсь дополнять данный материал.

Обновление zabbix (от одной версии к другой).

Хочу рассказать как можно обновить заббикс на более новый.

Обновление zabbix-1.8.x -> zabbix-2.0.x

Не доводилось, но возможно, я расскажу как обновиться в более новых версиях ( суть таже).

Обновление zabbix-2.0.x -> zabbix-2.2.x 

Не доводилось, но возможно, я расскажу как обновиться в более новых версиях ( суть таже).

Обновление zabbix-2.2.x -> zabbix-2.4.x 

1. Делаем бекап с самого заббикса-2.2:

# time mysqldump --skip-lock-tables zabbix items acknowledges triggers items_applications functions item_discovery graphs_items auditlog graphs profiles trigger_discovery graph_discovery application_template history_log applications auditlog_details dservices images hosts_groups hosts dhosts host_inventory trigger_depends interface service_alarms autoreg_host httpstepitem httptestitem httptest hosts_templates sessions housekeeper rights sysmaps_elements screens_items sysmaps_links group_prototype sysmaps httpstep opgroup opmessage_grp sysmaps_link_triggers media services_links host_discovery config maintenances_windows opcommand_hst maintenances_hosts opcommand_grp graph_theme maintenances_groups scripts optemplate icon_mapping users_groups slides opmessage_usr icon_map users groups hostmacro dchecks history_uint_sync globalmacro user_history operations services_times regexps opconditions interface_discovery group_discovery mappings proxy_history expressions actions services conditions proxy_dhistory history_sync sysmap_url proxy_autoreg_host history_str_sync escalations valuemaps sysmap_element_url opcommand usrgrp maintenances drules nodes opmessage node_cksum screens media_type dbversion ids slideshows globalvars timeperiods > /home/zabbix-v2.2.sql

PS: Не забываем остановить заббикс перед этим, т.к он будет продолжать писать в БД.

# service zabbix-server stop

2. Так же стоит отметить что необходимо сделать бекап всех необходимых файлов (файлов конфиграции, бинарных файлов, а так же PHP файлов):

# cp -r /etc/zabbix /home/zabbix_etc

3. Так же делаем дамп оставшихся таблиц (только структуру), т.к у меня очень большие они (более 100Гб).

# mysqldump --no-data --skip-lock-tables zabbix alerts events history history_str history_text history_uint trends trends_uint > /home/zabbix-v2.2-part-scheme.sql

4. Установить новый zabbix-server-2.4.x с пакетов или из исходного кода ( пример установки я описывал выше).

5. Прописываем в конфигах всю необходимую информацию (имя пользователя, имя БД, пароль ….).

6. Вливаем дамп БД с заббикса 2.2 в новую БД (для безопасности, я создал новую БД и поправил все в конфигах):

# mysql -uroot -p
mysql> create database zabbix22;
mysql>  grant all privileges on zabbix22.* to 'zabbix22'@'localhost' IDENTIFIED BY 'passwd_user_zabbix'; 
mysql> exit

Вливаем все данные:

# mysql zabbix22 < /home/zabbix-v2.2.sql 
# mysql zabbix22 < /home/zabbix-v2.2-part-scheme.sql

7. Запускаем заббикс сервер (новый):

# service zabbix-server start

После чего смотрим (наблюдаем) за логами:

└─(/var/log/zabbix)─(6 files, 156Kb)─> tail -f /var/log/zabbix/zabbix_server.log
12251:20141219:070029.558 ODBC: YES
12251:20141219:070029.558 SSH2 support: YES
12251:20141219:070029.558 IPv6 support: YES
12251:20141219:070029.558 ******************************
12251:20141219:070029.558 using configuration file: /etc/zabbix/zabbix_server.conf
12251:20141219:070029.633 current database version (mandatory/optional): 02020000/02020001
12251:20141219:070029.633 required mandatory version: 02040000
12251:20141219:070029.633 starting automatic database upgrade
12251:20141219:070030.666 completed 0% of database upgrade
12251:20141219:070032.674 completed 1% of database upgrade
12251:20141219:070035.704 completed 2% of database upgrade
............................................................................................................
12251:20141219:071212.425 completed 100% of database upgrade
12251:20141219:071212.426 database upgrade fully completed
12251:20141219:071218.109 __mem_malloc: skipped 0 asked 136 skip_min 4294967295 skip_max 0

8. Открываем браузер и логинимся (логин и пароль перенесутся со старого сервера).

9. ВСЕ! Перенос успешно выполнен.

Сравнение версий zabbix

Для заббикс-2.2:

# mysql -uroot -p
mysql> show databases;
mysql> use zabbix22;
mysql> SELECT table_name,count(COLUMN_NAME),TABLE_SCHEMA FROM information_schema.columns WHERE TABLE_SCHEMA='zabbix' group by table_name order by table_name asc;

Для заббикс-2.4:

# mysql -uroot -p
mysql> show databases;
mysql> use zabbix22;
mysql> SELECT table_name,count(COLUMN_NAME),TABLE_SCHEMA FROM information_schema.columns WHERE TABLE_SCHEMA='zabbix' group by table_name order by table_name asc;

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

Обновление zabbix-2.4.x -> zabbix-3.x 

Скоро выпустят новую версию заббикс, тогда и обновимся.

Может будут интересны мои статьи:
1. Установка Zabbix на Debian/Ubuntu/Linux Mint
2. Установка Zabbix из исходников в FreeBSD

Собственно, моя статья «Установка Zabbix на RedHat/CentOS/Fedora» подошла к завершению. Надеюсь хорошо все было описано, если есть вопросы и пожелания, то пишите.

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

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.