Установка обновления zabbix 5.0 до 5.2
Centos 7, 8
Для начала проверим список установленных пакетов zabbix в системе. Их название может быть разным в зависимости от используемых репозиториев. К примеру, в centos 7 у пакетов может быть дополнение в виде scl к названию пакета.
Centos 7:
# rpm -qa | grep zabbix zabbix-web-5.0.5-1.el7.noarch zabbix-web-mysql-scl-5.0.5-1.el7.noarch zabbix-agent-5.0.5-1.el7.x86_64 zabbix-web-deps-scl-5.0.5-1.el7.noarch zabbix-apache-conf-scl-5.0.5-1.el7.noarch zabbix-release-5.2-1.el7.noarch zabbix-server-mysql-5.0.5-1.el7.x86_64
Centos 8:
# rpm -qa | grep zabbix zabbix-server-mysql-5.0.5-1.el8.x86_64 zabbix-web-5.0.5-1.el8.noarch zabbix-web-mysql-5.0.5-1.el8.noarch zabbix-web-deps-5.0.5-1.el8.x86_64 zabbix-release-5.0-1.el8.noarch zabbix-agent-5.0.5-1.el8.x86_64
Устанавливаем обновление zabbix на сервер Centos 8, выбирая установленные у вас пакеты:
# yum upgrade zabbix-web zabbix-web-mysql zabbix-server-mysql zabbix-agent
Для centos 7 будет такой список:
# yum upgrade zabbix-web zabbix-web-mysql-scl zabbix-agent zabbix-server-mysql
Обращаю внимание, что на момент написания данной статья, пакетов 5.2 для Centos 7 в репозиториях нет. В официальных инструкциях их тоже нет и не понятно, будут ли
Как только появятся, я дополню статью.
После завершения обновления, запускаем zabbix-server.
# systemctl start zabbix-server
Проверяем лог сервера. Необходимо дождаться обновления базы данных
Важно не трогать в этот момент сервер, не прерывать обновление, не пытаться его перезапустить. Если база большая, обновление может длиться очень долго
Рекомендую сначала где-то протестировать этот процесс, прежде чем обновлять прод.
# tail -f /var/log/zabbix/zabbix_server.log
В конце должны получить сообщение:
2860543:20201029:173036.441 completed 100% of database upgrade 2860543:20201029:173036.441 database upgrade fully completed
Есть ненулевой шанс, что будет какая-то ошибка с базой. Чаще всего возникают проблемы с какой-то нестандартной записью в таблице. Туда может попасть какой-то необычный символ, или с кодировкой проблемы. В этих случаях удаляйте проблемные записи, меняйте кодировку базы zabbix.
После обновления переходите в web интерфейс и проверяйте версию Zabbix. Должна быть 5.2.
На этом обновления Zabbix до 5.2 на Centos завершено.
Debian / Ubuntu
Устанавливаем само обновление zabbix на сервер с Debian или Ubuntu следующей командой:
# apt upgrade zabbix-agent zabbix-frontend-php zabbix-nginx-conf zabbix-server-mysql
После завершения обновления, запускаем сервер:
# systemctl start zabbix-server
В момент запуска произойдет обновление базы данных. Для маленькой базы (1-2 гб) это не займет много времени. Вы можете даже не заметить процесса. Если база больше, то надо подождать, пока не закончится обновление. Следить за ним можно с помощью просмотра лог файла zabbix сервера.
# tail -f /var/log/zabbix/zabbix_server.log
После завершения обновления базы, сервер запустится. После этого можно запустить и агент.
# systemctl start zabbix-agent
В логах агента и сервера можно посмотреть версию запущенных сервисов.
Starting Zabbix Agent . Zabbix 5.2.0 (revision bcf99fb248). Starting Zabbix Server. Zabbix 5.2.0 (revision bcf99fb248).
Теперь можно идти в веб интерфейс и смотреть на обновленную версию zabbix server. Перед этим почистите кэш браузера и удалите куки от страницы заббикса. Если этого не сделать, то могут быть проблемы и ошибки, с чем я не раз сталкивался. Если у вас в качестве веб сервера используется nginx, не забудьте поменять владельца директории /etc/zabbix/web на nginx, в том случае, если веб сервер работает от него. После обновления он будет принадлежать apache, а web интерфейс не заработает.
# chown -R nginx:nginx /etc/zabbix/web
Теперь можете лицезреть обновленную версию web интерфейса в браузере.
Установка Zabbix agent на Windows
Переходим на страницу загрузок Zabbix agent и скачиваем самую последнюю версию агента для Windows нужной разрядности.
Распаковываем архив. Создаем на диске С: папку zabbix и купируем туда следующие файлы:
- zabbix_agentd.exe
- zabbix_get.exe
- zabbix_sender.exe
- zabbix_agentd.conf
Открываем командную строку с правами администратора и выполняем следующую команду для установки zabbix agent на операционную систему Windows:
= код для копирования = c:/zabbix/zabbix_agentd.exe --config c:/zabbix/zabbix_agentd.conf --install
Открываем файл zabbix_agentd.win.conf любым текстовым редактором (можно WordPAD) и изменяем следующие параметры:
с:/zabbix/zabbix_agenttd.conf = необходимые параметры c пояснениями = LogFile=c:\zabbix\zabbix_agentd.log LogFileSize=1 Server=192.168.0.109 # IP адрес сервера Zabbix ServerActive=192.168.0.109 # IP сервера Zabbix на который активный агент будет отправлять данные Hostname=test # имя узла мониторинга, которое указано на сервере zabbix
Не забываем создать разрешающее правило в Брандмауэр, если он у вас включен. Находясь в настройках Брендмауэра идем по пути:
Дополнительные параметры — Правило для входящих подключений — Создать правило.
- Тип правила: Для порта;
- Протоколы и порты: Протокол TCP; Определенные локальные порты: 10050;
- Действие: Разрешить подключение;
- Профиль (ставим галочки): Доменный, Частный, Публичный;
- Имя: Zabbix Agent 10050.
В случае использования активного агента идем по пути (даже если не используется лучше открыть):
Дополнительные параметры — Правило для исходящих подключений — Создать правило.
- Тип правила: Для порта;
- Протоколы и порты: Протокол TCP; Определенные локальные порты: 10051;
- Действие: Разрешить подключение;
- Профиль (ставим галочки): Доменный, Частный, Публичный;
- Имя: Zabbix Agent 10051.
Ищем службу с именем Zabbix agent в оснастке со службами запускаем ее.
Если все прошло успешно то в логе c:\zabbix\zabbix_agentd.log вы увидите примерно такую информацию:
3728:20190724:153807.390 Starting Zabbix Agent . Zabbix 4.2.4 (revision 059af02). 3728:20190724:153807.394 **** Enabled features **** 3728:20190724:153807.397 IPv6 support: YES 3728:20190724:153807.400 TLS support: NO 3728:20190724:153807.402 ************************** 3728:20190724:153807.406 using configuration file: c:\zabbix\zabbix_agentd.conf 3728:20190724:153807.410 agent #0 started 3448:20190724:153807.412 agent #1 started 5744:20190724:153807.441 agent #2 started 6856:20190724:153807.628 agent #3 started 6868:20190724:153807.766 agent #4 started 3532:20190724:153807.880 agent #5 started
В вариантах агента есть возможность выбрать автоматический установщик, но мне больше нравится настраивать руками.
Какой агент лучше использовать?
Какой агент использовать это дело вкуса. По моему мнению если у вас небольшая сеть и в которую редко добавляются новые узлы, то можно использовать пассивный агент.
Если же у вас большая сеть и на сервере десятки или сотни тысяч активных элементов данных. А также если в сети постоянно появляются новые узлы. То в этом случае лучше, а также если узлы находятся за НАТом то необходимо использовать активный zabbix агенты.
преимущества пассивного агента
Работает из «коробки»
Недостатки
- Не работает если узел находится за NAT
- В отличие от активного агента больше нагрузка на сервер
Преимущества активного агента
- Меньшая нагрузка на сервер
- Возможность работы за NAT
- Авторегистрация узлов
Недостатки
Необходимо создавать шаблоны, в стандартной установке все шаблоны для пассивной проверке.
Подготовка к обновлению
Важная информация перед обновлением. Версия 5.4 без длительной поддержки. Через пол года к ней перестанут выходить обновления, так что вам обязательно придется обновляться на следующую версию. Если для вас не критичны нововведения этого релиза, пропускайте его и ждите новой LTS версии.
Если у вас версия ниже 5.2, то предварительно обновите ее до указанной. У меня есть цикл статей на тему обновления Zabbix:
- 2.4 до 3.0
- 3.0 до 3.2
- 3.2 до 3.4
- 3.4 до 4.0
- 4.0 до 4.2
- 4.2 до 4.4
- 4.4 до 5.0
- 5.0 до 5.2
Перед обновлением, сделаем на всякий случай бэкап базы данных. Для этого предварительно остановим сервер с агентом.
У меня что-то активно писалось в базу, поэтому сервер выключался долго. Я проверил лог zabbix-server, чтобы убедиться в корректном выключении. Там все нормально было, сервер штатно завершил работу, дописав то, что у него там накопилось. Так что бэкапим.
zabbix | название базы данных заббикса |
-uzabbix | ключ -u и дальше имя пользователя базы данных |
-p’password’ | ключ -p и дальше пароль пользователя бд, если в пароле есть спецсимволы, экранируйте их одиночными кавычками |
На всякий случай сохраним php скрипты админки, чтобы можно было оперативно запустить старую версию в случае нештатной ситуации. Хотя лично я сделал снепшот виртуалки перед обновлением, чтобы откатиться назад в случае проблем.
Centos 8
Подключаем репозиторий версии zabbix 5.4:
# rpm -Uvh https://repo.zabbix.com/zabbix/5.4/rhel/8/x86_64/zabbix-release-5.4-1.el8.noarch.rpm
Старый репозиторий от версии 5.2 будет автоматически удален.
Очищаем и пересоздаем кэш dnf:
Удаляем пакет текущего репозитория:
Подключаем новый:
Обновляем информацию о репозиториях:
Ubuntu 20
Удаляем пакет текущего репозитория:
Подключаем новый:
Обновляем информацию о репозиториях:
Если у вас другие версии систем, то простой найдите ссылки пакетов под свою версию в официальном репозитории — https://repo.zabbix.com/zabbix/5.4/ Дальнейшее обновление не будет отличаться от текущего.
К обновлению подготовились, можно приступать.
Настройка zabbix server и zabbix agent
Есть сервер с уже установленным zabbix на debian. На windows сервере служба zabbix работает, но с zabbix сервера я не вижу windows server.
Конфиг zabbix агента
Есть ли какие-нибудь настройки iptables на zabbix сервере не знаю.
в директории zabbix-агента должна быть файлик с логом. брэндмауэр какой-нибудь покупной или встроенный в виндовз?
telnet на виндовую машину на порт заббикс клиента подключается?
Ну у меня с таким логом все работает. (но я брэндмауэр не отключал, а просто вписал исключение для zabbix_agentd)
Если порт не указать, вообще не подключается.
ну если порт не указать, то телнет лезет на порт по-дефолту, 23, там точно ничего нет.
Если соединение открывается, значит порт все-таки открыт.
Далее смотрите zabbix_server.log на предмет записей по этому хосту.
В логе куча записей от mikrotik, мониторю его по snmp, в этой каше что-то найти можно только по поиску.
Какой магии ты ожидаешь? Ты должен сам завести хост на заббикс сервере, без вариантов
Прочти документацию в части добавления нового агента
Ты и не должен. Пиши по русски, что данные не приходят или что?
А он че его не добавил? ЛОЛ
если данные не приходят, дергай zabbix_get
Ну не так уж и без вариантов. Создание правила обнаружения тоже подойдёт, а может у ТС уже и настроены они.
Судя по вопросу, ничего у него не настроено
ТС, без обид, но вопрос действительно детский
На сервере все у меня настроено. Создал узел сети, прописал там ip, порт, добавил шаблон windows. Я это не стал писать, потому что и так понятно, что все это сделано.
Скомпилировал zabbix_get (его на серваке не было), данные могу запросить с сервера zabbix. Они приходят. В веб интерфейсе все равно пусто.
Узел сети создан, но данные на него не приходят.
А, значит вашу фразу
я некорректно распарсил.
Ну в таком случае покажите нам страницу настройки узла сети в zabbix сервере, потому что сетевых препятствий на получение данных нет.
обрезали много, ну да ладно, поговорим. И что, сверху он помечен красным, но статус «активировано»?
Он помечен зеленыи и статус активирован. Но иконка zbx не активна (это, видимо, значит, что агент не видно.
Т.е. с помощью zabbix_get я получаю данные (т.е. в винде все нормально), а в веб интерфейсе не могу их посмотреть.
Ну теперь все ясно. У вас не добавлено на хост ни одного шаблона. Заббикс-сервер и не пытался на клиент ходить, ему просто нет такой задачи.
Добавьте шаблоны (по-дефолту вроде есть какой-то шаблон для вин-серверов) и тогда у заббикс-сервера появится мотивация обратиться к клиенту и собрать какие-либо данные.
Попробовал еще раз шаблон добавить и сервер внезапно появился. В самом деле, детская ошибка. Я не нажимал обновить, когда добавлял шаблон.
Все работает. Спасибо.
Извини, если резко отвечал. Веб-морда у zabbix’а действительно норкоманская
Алексей Владышев ( alexvl )
Zabbix
- это уровень железа – что-то произошло с какой-то железякой, мы тут же об этом узнаем,
- уровень операционной системы,
- сеть, в основном это мониторинг через SNMP,
- виртуальный уровень, т.е. «из коробки» мы предлагаем, например, мониторинг WMware инфраструктуры, vCenter и vSphere,
- дальше идет middleware,
- бизнес-приложения.
это работает быстро, по крайней мере, быстрее, т.к
сервер не должен заниматься постоянным опрашиванием устройств, сами устройства отправляют информацию,
более безопасно с точки зрения агента, потому что агент не должен слушать никакие TCP-соединения или сетевые соединения.
небольшое преимущество, то, что нам сегодня важно – в активном режиме есть буферизация. Если Zabbix-сервер недоступен по каким-то причинам, допустим, мы делаем апгрейд Zabbix-сервера, у нас downtime несколько минут, то данные будут накапливаться на стороне агента
Как только мы сервер запускаем, данные тут же отправятся на сторону сервера, и мы их сможем обрабатывать.
История. Мы основываем свое решение не только на real-time мониторинге, на оперативной информации, которую мы только-только получили, но и смотрим в историю. В историю нужно обязательно смотреть
Это важно.
Отсутствие проблемы – не есть ее решение. Я привел несколько примеров, но на самом деле, вы многие используете Zabbix, посмотрите критическим взглядом на те триггеры, которые у вас сейчас есть
Комбинация анализа истории с гистерезисом, с разными условиями для проблемы и для выхода из проблемы – она на самом деле творит чудеса. Получается такое очень-очень умное обнаружение проблем. Нужно обязательно использовать эту функциональность.
С аномалиями, опять же, мне трудно сказать, принесет ли это какую-то практическую пользу, но, по крайней мере, стоит попробовать. Что касается аномалии, в Zabbix 3.0, возможно, мы реализуем baseline monitoring. Что это означает? Baseline – это некая норма, т.е. этот baseline будет высчитываться из трендов. Если сейчас все триггеры работают с историей, то для baseline мониторинга мы будем брать информацию из трендов, из тенденций, и будет возможность, например, сравнивать поведение системы в рабочее время на прошлой неделе с поведением системы на этой неделе или сегодня. Т.е. мы что-то будем брать за основу, за нормальную ситуацию и сравнивать с тем, что есть сейчас. Это такой статистический анализ, основанный на тенденциях, на трендах.
Автоматическое решение проблем. Наверное, у каждого из вас, если вы используете систему мониторинга, есть такой класс проблем, про который вы знаете, что эта проблема произойдет рано или поздно, и с этим ничего нельзя сделать. Я привел примеры каких-то случайных падений операционной системы – мы знаем, что такая проблема есть, она может произойти в любое время, соответственно, автоматическое решение проблем – это хорошее решение.
И эскалируем проблемы. Отличный стимул для администраторов, если мы делаем эскалирование. Эскалирование не означает, что вот есть администратор, начальник, начальник начальника, начальник начальника начальника… Эскалирование – это означает, что мы сможем среагировать на проблему сразу одним способом, дальше попытаться, может быть, автоматически решить ее другим способом, и дальше, может быть, через 5 минут, если проблема все еще существует, попытаться решить ее следующим способом. Сначала мы перезапускаем сервис, проблема все еще существует, скажем, exchange не завелся с первого раза, что мы тогда можем сделать? Мы можем перезапустить сервер на физическом уровне и тогда уже смотреть, что произойдет.
Установка Zabbix agent на XigmaNAS
Открываем доступ пользователю Root по SSH в веб панели управления и заходим стандартными командами для подключения по ssh.
ssh [email protected] [email protected]'s password: вводим пароль Last login: Fri Jul 12 22:09:31 2019 Welcome to XigmaNAS! nas: ~#
Еmbedded версия XigmaNAS
При использовании версии Еmbedded, вы должны понимать, что все изменения, которые вы производите в системе пропадут при перезапуске системы!
Обновляем пакеты:
pkg update
Выводим список всех возможных пакетов Zabbix:
pkg search zabbix
На момент написания статьи актуальная версия была 4.2.4:
pkg install zabbix42-agent-4.2.4
Активируем сервис как службу:
sysrc zabbix_agentd_enable=YES
Копируем конфигурационный файл настройки агента и открываем его для редактирования:
cp /usr/local/etc/zabbix42/zabbix_agentd.conf.sample /usr/local/etc/zabbix42/zabbix_agentd.conf ee /usr/local/etc/zabbix42/zabbix_agentd.conf = необходимые параметры c пояснениями = Server=192.168.0.109 # IP адрес сервера Zabbix ServerActive=192.168.0.109 # IP сервера Zabbix на который активный агент будет отправлять данные Hostname=test # имя узла мониторинга, которое указано на сервере zabbix
Сохраняем файл и запускаем агент Zabbix:
service zabbix_agentd start
Для проверки смотрими логи выполнив команду:
tail -f /tmp/zabbix_agentd.log = вывод команды = 2466:20190717:212904.511 IPv6 support: YES 2466:20190717:212904.511 TLS support: YES 2466:20190717:212904.511 ************************** 2466:20190717:212904.511 using configuration file: /usr/local/etc/zabbix42/zabbix_agentd.conf 2466:20190717:212904.513 agent #0 started 2467:20190717:212904.517 agent #1 started 2469:20190717:212904.542 agent #3 started 2468:20190717:212904.557 agent #2 started 2470:20190717:212904.565 agent #4 started 2471:20190717:212904.572 agent #5 started
Проверить статус можно следующей командой:
service zabbix_agentd status = вывод команды = zabbix_agentd is running as pid 1812.
Full версия XigmaNAS
Вначале выполняем действия как для Еmbedded версии.
При использовании full версии после перезагрузки агент не запуститься и при попытке запустить в ручном режиме выдаст ошибку.
service zabbix_agentd start = вывод команды = zabbix_agentd : user zabbix does not exist zabbix_agentd : cannot run as root!
Ошибка говорит о том что пользователя Zabbix нет. Добавлять пользователя через консоль используя стандартные команды для FreeBSD не получится. Работать с пользователями и группами вы сможете только используя веб панель управления.
Добавте пользователя и группу Zаbbix через веб панель управления XigmaNAS. При добавлении пользователя обязательно сделайте ему домашней папку /var/run/zabbix.
В консоли из под пользователя root дайте необходимые права на папку с программой и лог файл:
chown -R zabbix:zabbix /var/run/zabbix chown zabbix:zabbix /tmp/zabbix_agentd.log
После этого служба будет нормально стартовать после перезагрузки.
В случае если не дать права на лог файл будет ошибка. Надо или давать права на лог файл или менять путь в файле настройки.
service zabbix_agentd start = ошибка при отсутствии прав на лог файл = zabbix_agentd : cannot open "/tmp/zabbix_agentd.log": Permission denied
Модуль мониторинга PostgreSQL в составе Zabbix Agent 2
Для соединения с PostgreSQL используется быстрый и популярный драйвер pgx (PG driver and toolkit for Go).
Пока мы используем два интерфейса: Exporter, вызывающий обработчик по ключу, и Configurator Zabbix Agent 2, который считывает и проверяет параметры соединения с сервером, заданные в конфигурационном файле.
Мы постарались оптимизировать работу СУБД, группируя метрики и используя обработчик (handler) для метрик и групп метрик, а также используя группы метрик в JSON как зависимые переменные (dependency items), и низкоуровневое обнаружение (discovery rules).
Основные возможности
- сохранение постоянного соединения с PostgreSQL между проверками;
- поддержка гибких интервалов опроса;
- совместимость с версиями PostgreSQL, начиная с 10, и Zabbix Server, начиная с версии 4.4;
- возможность подключения и мониторинга нескольких инстансов PostgreSQL одновременно благодаря тому, что Zabbix Agent 2 позволяет создавать несколько сессий.
Уровни параметров подключения к PostgreSQL
Всего доступны три уровня параметров подключения к PostgreSQL, т. е. задач и настроек:
- Global,
- Sessions,
- Macros.
-
Параметры Global задаются на уровне агента, параметры Session и Macros определяют параметры подключения базе.
-
Параметры подключения к PostgreSQL — Sessions задаются в файле zabbix_agent2.conf.
Параметры подключения к PostgreSQL — Sessions
- После ключевого слова Sessions указывается уникальное имя сессии, которое должно быть указано в ключе (шаблоне).
- Параметры URI и UserName обязательны для каждой сессии.
- Если имя базы не задано, используется общее по умолчанию имя базы для всех сессий для PostgreSQL, которое также задается в конфигурационном файле.
- Параметры подключения к PostgreSQL — Macros задаются в ключе метрики в шаблоне (аналогично способу, использованному в Zabbix Agent 1), т. е. создаются в шаблоне и далее указываются как параметры в ключе. При этом последовательность макросов фиксирована, т. е., например, URI всегда указывается на первом месте.
Параметры подключения к PostgreSQL — Macros
Модуль мониторинга PostgreSQL включает уже более 95 метрик, которые позволяют охватить довольно широкий объем параметров PostgreSQL, включая:
- количество соединений,
- объем баз данных,
- архивация wal-файлов,
- контрольные точки,
- количество «раздувшихся» таблиц,
- статус репликации,
- отставание реплики.
Метрики PostgreSQL не информативны без параметров операционной системы. Но Zabbix Agent 2 уже умеет собирать параметры операционной системы, поэтому для получения полной картины просто подключаем к узлу сети необходимые шаблоны.
Обработчик (handler)
Обработчик (handler) — основная единица модуля, в которой выполняется сам запрос и которая позволяет получать метрики.
Чтобы получить простую метрику:
- Создаем файл для получения новой метрики:
zabbix/src/go/plugins/postgres/handler_uptime.go
- Подключаем пакет и указываем уникальный ключ (ключи) метрик:
- Создаем обработчик (handler) с запросом, т. е. инициируем переменную, в которой будет результат:
- Выполняем запрос:
Необходимо проверить запрос на предмет ошибок, после чего результат будет подхвачен процессом Zabbix Agent 2.
- Регистрируем ключ новой метрики:
После регистрации метрики можно пересобирать агент с новой метрикой.
Модуль доступен, начиная с Zabbix 5.0 на сайте https://www.zabbix.com/download. В этой версии Zabbix параметры задаются отдельно через host и port. В версии Zabbix 5.0.2, которая скоро выйдет, параметры подключения будут скомпонованы в один URI.
Спасибо за внимание!