Установка 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 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» подошла к завершению. Надеюсь хорошо все было описано, если есть вопросы и пожелания, то пишите.