Как установить PostgreSQL Linux часть 2.

Введение.

Продолжая изучение PostgreSQL переходим к рассмотрению вопросов управления и контроля работы, PostgreSQL часть 2, с помощью терминального клиента pqsql.

Все статьи посвящённые PostgreSQL см.

тэг БД или поиск postgres

Подготовка PostgreSQL.

  • Стенд
  • Cервер ALT Linux, имя: lin-pq; IP 10.0.2.11;
    • PostgreSQL X.X
  • ПК Simply Linux, имя: lin-sl, IP=10.0.2.30
  • Пользователь. имя: trt

Ввод команд PqSQL.

Прежде чем перейти к описанию дальнейших действий, PostgreSQL часть 2, выясним, как формируются команды и SQL запросы.

Для ввода команд и управление запросами в среде PostgreSQL существует три способа:

Консоль пользователя.

Находясь в сеансе консоли, подключившись по ssh к серверу, пользователь должен иметь право для работу с БД. Под правами подразумевается присвоение роли, терминология PgSQL, для выполнение команд в БД.

Из консоли можно выполнить ограниченное число команд.

Оболочка BASH.

Из среды BASH управление осуществляет пользователь с именем postgres. Пользователь создаётся в процессе установки PgSQL, ему присваивается роль администратора всего кластера.

Это, пока, единственный пользователь, имеющий привилегированные права для управления PgSQL.

создаётся автоматически при установке PostgreSQL

Как добавить пользователя в привилегированную группу, читайте в следующих частях.

Команда для входа в BASH.

$ sudo su - postgres -s /bin/bash
  • sudo — выполнить команду от имени другого пользователя
  • su — добавить права суперпользователя
  • s — путь к оболочке
  • /bin/bash — имя оболочки

Среда BASH позволяет выполнять основные команды управления сервером БД.

Терминальный клиент psql.

Интерактивный клиент psql имеет более расширенные и гибкие возможности для работы с PqSQL, включая сложные SQL запросы.

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

Все доступные методы авторизации читайте в других частях.

Команда для входа с помощью psql выглядит так.

$ psql -Uuser -p[port]
  • Ключи.
  • -d имя базы данных
  • -h имя сервера
  • -p номер порта сервера, можно не указывать если стандартный
  • -U имя пользователя

Таким образом, основными средами управления PgSQL являются BASH и Psql.

Настройка psql клиента.

Локальное подключение к серверу по ssh для выполнения команд, о чём говорилось выше должно быть ограниченным и использоваться только для управления сервером администратором. Все остальные пользователя, имеющие учётные записи на PgSQL должны подключатся удалённо для выполнения SQL запросов с помощью клиента psql.

Осуществить удалённое подключение к PgSQL с помощью клиента psql можно, изменив параметр listen_addresses в настройках файла postgresql.conf сервера.

Указанный параметр использует протокол TCP/IP. По умолчанию в listen_addresses указанно значение localhost — только для локальных подключений к серверу через unix-domain socket. Это значение можно оставить без изменений при условии, что сервер PgSQL и приложения установленные на нём, например Zabbix, работают на одном сервере.

При этом подключение создавать дополнительных пользователей не требуется — управление осуществляет администратор подключённый по ssh к серверу

используя права пользователя postgres или создав новую роль с правами администратора

Теперь рассмотрим вариант, где требуется доступ пользователей к БД из сетей разных диапазонов организации.

Смотрим значение listen_addresses из коробки.

-bash-3.2$ psql
postgres=# SHOW listen_addresses;
 listen_addresses
------------------
 localhost
(1 строка)
\q

Меняем параметр listen_addresses с localhot на  *.  Переменная * позволяет разрешить подключение к серверу PgSQL из всех сетевых диапазонов организации по протоколу TCP/IP.

Корректировка listen_addresses .

-bash-3.2$ psql postgres=# \! sed "s/.*listen_addresses =.*/listen_addresses = '*'/" -i /var/lib/pgsql/data/postgresql.conf

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

-bash-3.2$ pg_ctl restart

Контролируем фиксацию значение.

-bash-3.2$ psql 
postgres=# SHOW listen_addresses;
 listen_addresses 
------------------
 *
(1 row)
\q

При желание параметр  *  можно сузить до нужного диапазона сети.

После изменения настроек, клиент psql готов к приёму команд для удалённого управления базами сервера PqSQL с рабочих станций.

$ psql -h lin-pq -U trt
Password for user trt: 
...
trt=# 
  • -h имя сервера для удалённого подключения
  • lin-pq стендовое название сервера PqSQL
  • trt стендовый пользователь

В следующих частях конспекта «Как установить PostgreSQL Linux» будут показаны практическое использование клиента psql.

Пользователи работающие на ПК Windows также могут использовать клиент psql для управления базами PqSQL.

как это сделать читайте здесь

Журнал PqSQL.

Сервер PqSQL позволяет вести журнал производительности и ошибок своей работы. При установке сервера, режим журналирования отключен. Пользователь, при желании, может включить контроль записи работы сервера с помощью журнала, отредактировав файл postgresql.conf. После наших действий в дереве каталога /var/lib/pgsq/data создаётся папка log, для хранения файлов журналов

Папка журналов PgSQL.
Папка журналов PgSQL.

Команда включающая режим журнала.

# \sed "s/.*logging_collector =.*/logging_collector = 'on'/" -i /var/lib/pgsql/data/postgresql.conf

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

-bash-3.2$ pg_ctl restart

Контролируем фиксацию значения.

-bash-3.2$ psql
postgres=# SHOW listen_addresses;
 listen_addresses 
------------------
 *
(1 строка)

Заключение.

В этой части конспекта рассмотрены базовые основы конфигурации и первичного управления сервером PgSQL. Понимание основ позволяет уверенно чувствовать себя при погружение в тему управления сервером баз данных PostgeSQL в дальнейшем.

Продолжение смотри в третьей части.

Полезные сылки.

Как установить PostgreSQL Linux часть 1.

 Введение.

 В семейство управления базами данных входит PostgreSQL — рекомендованный для установки и эксплуатации Единым реестром Российских программ для ЭВМ и баз данных.

Этой публикацией, PostgreSQL часть 1, открывается цикл статей посвящённых теоретическим основам и практическим рекомендациям по вопросам установки, запуску и эксплуатации экземпляра сервера PostgreSQL в среде Linux.

Все статьи посвящённые PostgreSQL см.

тэг БД или поиск postgres

Подготовка PostgreSQL.

  • Стенд: 
    • Cервер ALT Linux, имя: lin-pq; IP 10.0.2.11;
    • Simply Linux, имя: lin-sl, IP=10.0.2.30
    • Пользователь, имя: trt

Определение.

  • В различных источниках можно встретить:
    • PostgreSQL
    • PL/pgSQL — процедурное расширение языка SQL
    • PgSQL

Архитектура и терминология.

  • PostgreSQL выполняет архитектуру клиент-сервер, включающий:
    • главный серверный процесс-имя postgres
    • клиентские запросы — графика, текст, вэб страница …

Главный процесс , postgres, порождает множество подпроцессов, для каждого подключаемого клиента, обеспечивая этим многопоточность.

Сервер PostgreSQL, согласно терминологии, является — экземпляром сервера.

Данные сервера хранятся в базах, один экземпляр PostgreSQL может работать с несколькими базами определяемые, как кластер БД.

Развёртывание PostgreSQL.

Для установки пакетов используйте графический менеджер — synaptic.

# apt-get update
# apt-get install synaptic
# synaptic
  • Для установки PqSQL необходимо:
    • проверить службу времени NTP.
    • проверить кодировку
locale -a|grep ru_RU
ru_RU
ru_RU.cp1251
ru_RU.ibm866
ru_RU.iso88595
ru_RU.koi8r
ru_RU.utf8
  • выбрать необходимую версию сервера PqSQL
# apt-cache show postgresql Виртуальный пакет postgresql предоставляется следующими пакетами: .... You should explicitly select one to show. E: Package postgresql is a virtual package with multiple providers.
  • установить выбранный пакет сервера
# apt-get install postgresqlXX-server

XX — версия выбранного сервера PqSQL

  • После установки создаются каталоги:
    • /var/lib/pgsql — папки кластера БД
    • /usr/share/pgsql — пакеты PostgreSQL

Формирование кластера PostgreSQL часть1.

Кластер — область хранения баз данных на диске

При установке сервера PqSQL создаётся пользователь postgres.

$ id postgres
uid=46(postgres) gid=46(postgres) группы=46(postgres)

Пользователь postgres осуществляет начальное управление сервером, обладая ролью суперпользователя. По умолчанию пароль для postgres не установлен — метод аутентификации из «коробки» trust.

Используя роль postgres, создадим кластер сервера. Для выполнения необходимо, что бы учётная запись осуществляющая действия с пользователем postgres была членом группы whell.

Проверим / установим утилиту sudo.

# apt-get install sudo

Открываем доступ группе wheel, для выполнения команд sudo.

# visudo … WHEEL_USERS ALL=(ALL) ALL … :wq

Проверяем каким группам принадлежит пользователь trt.

$ id -Gn trt
trt wheel uucp proc cdrom floppy cdwriter audio radio users vboxusers scanner xgrp camera

Используя роль postgres создадим кластер сервера PqSQL.

$ sudo su - postgres -s /bin/bash [sudo] password for trt:******** -bash-x.x$ initdb -k Файлы, относящиеся к этой СУБД, будут принадлежать пользователю "postgres". От его имени также будет запускаться процесс сервера. Кластер баз данных будет инициализирован с локалью "ru_RU.UTF-8". Кодировка БД по умолчанию, выбранная в соответствии с настройками: "UTF8". Выбрана конфигурация текстового поиска по умолчанию "russian". Контроль целостности страниц данных включён. исправление прав для существующего каталога /var/lib/pgsql/data... ок создание подкаталогов... ок выбирается значение max_connections... 100 выбирается значение shared_buffers... 128MB выбор реализации динамической разделяемой памяти... posix создание конфигурационных файлов... ок выполняется подготовительный скрипт... ок выполняется заключительная инициализация... ок сохранение данных на диске... ок ПРЕДУПРЕЖДЕНИЕ: используется проверка подлинности "trust" для локальных подключений. Другой метод можно выбрать, отредактировав pg_hba.conf или используя ключи -A, --auth-local или --auth-host при следующем выполнении initdb. Success. You can now start the database server using: service postgresql start or pg_ctl -D /var/lib/pgsql/data -l файл_журнала start -bash-x.x$ exit
  • sudo su — выполнить команду от имени пользователя входящего в группу администраторов
  • s — запуск команд в оболочке BASH

-bash-x.x— текущая версия bash

Команды для запуска PqSQL часть1.

  • Запуск PqSQL включают два варианта:
    • консольной командой
# systemctl start|status|stop|restart|  postgresql
  • утилитой pg_ctl из инструментария PqSQL
$ sudo su - postgres -s /bin/bash
-bash-x.x$ pg_ctl start | stop | restart| reload| status

Вид1. Листинг запуска сервера командой pg_ctl start

$ sudo su - postgres -s /bin/bash -bash-x.x$ pg_ctl start ожидание запуска сервера.... [1337] СООБЩЕНИЕ: для приёма подключений по адресу IPv4 "127.0.0.1" открыт порт 5432 ... [1337] СООБЩЕНИЕ: для приёма подключений по адресу IPv6 "::" открыт порт 5432 ... [1337] СООБЩЕНИЕ: для приёма подключений открыт Unix-сокет "/tmp/.s.PGSQL.5432" ... [1337] СООБЩЕНИЕ: передача вывода в протокол процессу сбора протоколов ... [1337] ПОДСКАЗКА: В дальнейшем протоколы будут выводиться в каталог "log". готово сервер запущен

При запуске postgresql, может возникнуть сообщение, Вид2, это нормально.

стартовый PID автозагрузки запустил кластер

все команды pg_ctl, кроме start доступны

Вид2. Листинг сообщения о ошибке при старте PqSQL.

-bash-3.2$ pg_ctl start pg_ctl: возможно, уже работает другой сервер; всё же пробуем запустить этот сервер ожидание запуска сервера....ВАЖНО: файл блокировки "postmaster.pid" уже существует ПОДСКАЗКА: Другой экземпляр postmaster (PID 1118) работает с каталогом данных "/var/lib/pgsql/data"? прекращение ожидания pg_ctl: не удалось запустить сервер

Управление автозагрузкой PqSQL.

# systemctl enable postgresql
# systemctl is-enabled postgresql
enabled

Узнать версию сервера Postgresql можно командой.

$ postgres -V
postgres (PostgreSQL) XX.X

Проверка работы сервера.

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

$ psql -U postgres -c 'select now()'
Пароль пользователя postgres: 
              now              
-------------------------------
 2023-03-21 13:05:28.538569+03
(1 строка)

Пользователь postgres имеет, из коробки, аутентификацию trust — без пароля

Подробно о ролях PgSQL, читай в третьей части.

 Заключение.

 Сервер PqSQL зарекомендовал себя, как надёжный, устойчивый при длительной эксплуатации СУБД. Встроенные возможности PqSQL, позволяют конкурировать с Microsoft SQL и Oracle. Конечно, те кто вложился деньгами и знаниями в изучение и эксплуатацию MS SQL и Oracle, желания переходить или мигрировать на PqSQL не испытывают. Слишком высоки риски, да и годами устоявшиеся система управления вполне устраивает. Но жизнь и время требует новых подходов и решений. Создать с нуля БД и запустить в эксплуатацию это одно, а подготовить и выполнить план по миграции другое. Здесь требуется проведение предварительных действий. Начинать надо с обучения и развёртывания стенда, что бы на практике получать навыки и опыт работы с PostgreSQL.

Если для организации стоит вопрос перехода на PostgreSQL, то прежде всего, надо решить вопрос оборудования и коннектора для миграции. По оборудованию можно обратиться к официальной документации. Миграционный коннектор, под конкретную прикладную программу надо искать, их достаточно, платных и бесплатных, условие одно — тестирование на стенде предприятия. Есть ещё одно решение по миграции, заказать услугу по переходу на PostgreSQL и его сопровождение. Но это прежде всего финансовый вопрос, придут специалисты проведут миграцию, а может и нет в любом случае это время, оборудование и деньги.

В качестве «живого» примера установки и работы PqSQL,читайте статью.

Продолжение смотри во второй части…

Полезные ссылки.

Восстановление Zabbix PostgreSQL.

Ведение.

После того, как была создана резервная копия Zabbix PostgreSQL, переходим к рассмотрению вопроса восстановления сервера Zabbix PL/pgSQL из backup.

Все статьи посвящённые Zabbix см. полезные ссылки.

или тэг zabbix

Прежде всего необходимо определить причину и степень аварии.

  • Что могло сломаться:
    • не запускается БД
    • вышел из строя диск
    • сервер не запускается
    • сломаться могло всё что угодно

Подготовка.

  • Стенд
    • ALT Linux сервер, имя lin-zab; ip-10.0.2.13;
    • PostgreSQL
    • zabbix_23_back.tar.bz2 — созданный архив

Установив, предварительно, причину отказа Zabbix, приступаем к действиям, которые помогут полностью восстановить работу системы мониторинга. Мы, «придя в сознание», вспоминаем — у нас есть файл(ы) созданные резервным копированием, которые не поленились сделать. «Buckup наше всё!»

Ошибка связанна с БД.

Неисправность БД zabbix— сервер не запускается, в журнале читаем сообщения об отказе при запуске. Самое простое решение, не требующее большого времени на поиск неисправности — удаляем старую БД и восстанавливаем новую из backup. Конечно, мы сначала попытаемся исправить ситуацию, запустив команду проверки и исправления БД.

$ sudo su - postgres -s /bin/bash
-bash-X.X$ pg_amcheck -a
-bash-X.X$ pg_ctl restart

Если база не восстановилась, даже после перезагрузки PqSQL, переходим к процедуре восстановлению из резервной копии.

Восстановление БД PL/pgSQL.

Сразу надо отметить — резервное копирование БД Zabbix, выполнялось в режиме backup одной базы.

PqSQL допускает два режима создания резервной копии — целевой базы с помощью программы pg_dump и кластера pg_dumpall.

в архиве zabbix_23_back.tar.bz2 хранится только бд zabbix

Для начала следует разархивировать актуальную резервную копию в которой, вместе с другими файлами, находится dump БД zabbix.

# tar xvf zabbix_23_back.tar.bz2
# cd /tmp/zbk
...

Восстановить БД можно только при наличие «чистой» базы zabbix, иначе некуда буде копировать данные.

$ sudo su - postgres -s /bin/bash
-bash-X.X$ createdb zabbix

Теперь можно запустить процесс восстановления.

# psql -d zabbix -f zabbix.bd
  • d — имя БД
  • f — имя_файла

Восстановление сервера PL/pgSQL

Ранние было рассмотрено восстановление Zabbix после того, как обнаружили разрушенную БД. Это при наличие backup, задача не очень трудная, занимает мало времени и практически не влияет на аналитику сбора мониторинга сети.

Другое дело если выходит из строя сервер или отказывает HDD. Здесь уже требуется больше времени на поиски «железа» и установки базовой конфигурации сервера для восстановления Zabbix.

На новом оборудовании, требуется выполнить действия, которые осуществлялись при развёртывание сервера.

  • Восстановить:
    • имя сервера
    • IP сервера
    • пароль PgSQL
    • ту же версию Zabbix

После того, как сервер заработал и система мониторинга Zabbix пришла в готовность. Выполните действия по восстановлению БД из резервной копии, как описывалось выше.

Заключение.

Работа Zabbix обычно проходит ровно, в штатном режиме. Информация потихоньку собирается, аналитические отчёты, после прохождения проверки, отправляются в архив. Вся эта идиллия внезапно может закончится после того, как что-то выходит из строя. Вот здесь то, на первое место и выходит знание технологического порядка восстановления сервера Zabbix и практическое его применение.

Проверьте на стенде свои действия при восстановление Zabbix PgSQL.

выручит в дальнейшем

Полезные ссылки.

Справочная информация Zabbix Linux.

Введение.

Этой публикацией, заканчивается серия статей, об установке и начальной настройке системы мониторинга Zabbix.

Все статьи посвящённые Zabbix см. полезные ссылки.

или щёлкнув тэг zabbix

В процессе работы нам потребуется информация справочного характера — Zabbix справка. Конечно, помнить все команды и тонкости управления Zabbix не обязательно. В большинстве случаев достаточно иметь под рукой информационную справку, которая позволит быстро ориентироваться для принятия решений.

Получение оперативной информация о работе служб, позволит сократить время при решение вопросов эксплуатации Zabbix.

  • Стенд
    • ALT Simply Linux, имя lin-sl; ip-10.0.2.33
      • CPU Intel Core 5
      • HDD >50Gb
      • ОЗУ > 8Gb

Основные задачи Zabbix справки.

Тонкости настроек шаблонов, триггеров , экранов, графиков, веб-сценариев…, мы оставим для самостоятельного изучения администратору или пользователю отвечающего за аналитику мониторинга. Перечисленные элементы во многом, достаточно информационно-наглядны, без необходимости погружения в документацию. Мы же остановимся на вопросах использования оперативной информации, затрагивающие основные инструменты для сбора и анализа мониторинга — агентах и файлов настройки Zabbix.

Конфигурация агентов Zabbix.

Фрагмент типового сценария для zabbix server daemon.

# /etc/zabbix/zabbix_server.conf
...
# ListenPort=10051
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
...

Типовой сценарий zabbix agent daemon для сервера, фрагмент.

# /etc/zabbix/zabbix_agentd.conf
Server=127.0.0.1
# ListenPort=10050
ServerActive=127.0.0.1
Hostname=zabbix

Сценарий zabbix agent daemon для узла lin-sl, фрагмент.

# /etc/zabbix/zabbix_agentd.conf
...                            
ListenPort=10050
ServerActive=zabbix
Hostname=zabbix
...

Конфигурационный файл MySQL.

Для Zabbix MySQL файл конфигурации выглядит так.

# /var/www/webapps/zabbix/ui/conf/zabbix.conf.php ... // Zabbix GUI configuration file. $DB['TYPE'] = 'MYSQL'; $DB['SERVER'] = 'localhost'; $DB['PORT'] = '0'; $DB['DATABASE'] = 'zabbix'; $DB['USER'] = 'root'; $DB['PASSWORD'] = 'zabbix'; ... $ZBX_SERVER_NAME = 'zabbix'; ...

Конфигурационный файл PostgreSQL.

Если устанавливается Zabbix PostgreSQL, то настройки такие.

# /var/www/webapps/zabbix/ui/conf/zabbix.conf.php ... // Zabbix GUI configuration file. // Zabbix GUI configuration file. $DB['TYPE'] = 'POSTGRESQL'; $DB['SERVER'] = 'localhost'; $DB['PORT'] = '0'; $DB['DATABASE'] = 'zabbix'; $DB['USER'] = 'zabbix'; $DB['PASSWORD'] = 'zabbix'; // Schema name. Used for PostgreSQL. $DB['SCHEMA'] = ''; ... $ZBX_SERVER_NAME = 'zabbix'; ...

Службы Zabbix сервера.

Команды для управления работой сервера Zabbix MySQL

# systemctl start|stop|enable|is-enabled|restart|status zabbix_mysql

Команды для управления работой сервера Zabbix PostgreSQL

# systemctl start|stop|enable|is-enabled|restart|status zabbix_pgsql

Для запуска агента Zabbix справедлива команда.

# systemctl start|stop|enable|is-enabled|restart|status zabbix_agentd

Управление Zabbix SQL.

Выполнить управление MySQL можно командами.

# systemctl start|stop|enable|is-enabled|restart|status mysqld

Для работы с PostgreSQL действительны команды.

# systemctl start|stop|enable|is-enabled|restart|status postgresql

Будет полезна команда перехвата управления PqSQL из BASH.

$ sudo su - postgres -s /bin/bash
-bash-3.2$ pg_ctl restart

Веб службы Zabbix справки.

В качестве вэб сервера для работы Zabbix используют Apache2 или Night.

Управлять сервером Apache2 можно командами.

# systemctl start|stop|enable|is-enabled|restart|status httpd2

Для управления вэб сервером Night выполняем команды.

# systemctl start|stop|enable|is-enabled|restart|status nginx

Журналы Zabbix справки.

Регулярный просмотр журналов работы системы мониторинга, позволяет своевременно реагировать на системные предупреждения и ошибки Zabbix.

Команда просмотра в реальном времени журналов сервера и агента.

# tail -f /var/log/zabbix/zabbix_server.log
# tail -f /var/log/zabbix/zabbix_agentd.log

Порты Zabbix справки.

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

  • работа агентов сервера
# apt-get update # apt-get install nmap nmap -p T:10050,10051 zabbix ... Nmap scan report for zabbix (10.0.2.13) Host is up (0.000025s latency). Other addresses for zabbix (not scanned): fe80::a00:27ff:fee7:2121 rDNS record for 10.0.2.13: localhost PORT STATE SERVICE 10050/tcp open zabbix-agent 10051/tcp open zabbix-trapper

nmap — утилита исследования сети и портов

  • MySQL, по умолчанию, стартует в режиме UNIX socket.

UNIX socket — передача данных осуществляется без сетевого протокола при помощи байтового потока в буфере устройства.

обмен данными происходит локально, внутри сервера, для обеспечения безопасности.
  • смотрим существование процесса MySQL
# ps aux | grep mysqld mysql 3956 1.1 7.6 1724988 345996 ? Ssl 12:08 0:15 /usr/sbin/mysqld-C utf8 root 4367 0.0 0.0 6064 2136 pts/0 S+ 12:31 0:00 grep --color=auto mysqld
  • получаем информацию о работе UNIX socket
# mysqladmin -uroot -pzabbix --socket=/var/lib//mysql/mysql.sock version ... Server version X.X.XX-altX.X Protocol version XX Connection Localhost via UNIX socket UNIX socket /var/lib//mysql/mysql.sock Uptime: 45 min 36 sec ... Threads: 2 Questions: 2 Slow queries: 0 Opens: 2226 Flush tables: 3 Open tables: 5 Queries per second avg: 0.000
  • мониторинг MySQL с помощью журнала journalctl
# journalctl -u mysqld.service ... zabbix systemd[1]: Starting MySQL database server... ... zabbix systemd[1]: Started MySQL database server. ...
  • проверяем рабочий порт PostgreSQL
# nmap -p T:5432 zabbix ... Nmap scan report for zabbix (10.0.2.13) Host is up (0.000033s latency). Other addresses for zabbix (not scanned): fe80::a00:27ff:fee7:2121 rDNS record for 10.0.2.13: localhost PORT STATE SERVICE 5432/tcp open postgresql
  • проверяем работу агента Zabbix на узле lin-sl
# nmap -p T:10051 lin-sl ... Nmap scan report for lin-sl (10.0.2.33) Host is up (0.000048s latency). Other addresses for lin-sl (not scanned): 10.0.2.33 rDNS record for 127.0.0.1: lin-sl PORT STATE SERVICE 10051/tcp open zabbix-trapper

Заключение.

Листок справочной информации всегда востребован и будет особенно полезен при крайних обстоятельствах. Всё помнить трудно, держать в голове многочисленные данные о настройках большого числа оборудования сложно. В таких случаях хорошо подходит формат справочного листка, где при желании всегда можно получить нужную информацию.

Полезные ссылки.

Устранение Zabbix ошибок Linux.

Введение.

Работа системы мониторинга Zabbix в целом проходит в ровном и стабильном режиме, см полезные ссылки. Основные трудности с Zabbix ошибками, возникают на начальном этапе, после старта системы.

Все статьи посвящённые Zabbix см. полезные ссылки.

или щёлкнув тэг zabbix

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

В статье блога рассмотрены наиболее часто встречающие, при начальной эксплуатации Zabbix, ошибки.

  • Стенд
    • ALT Linux сервер, имя lin-zab; ip-10.0.2.13;

Виды Zabbix ошибок.

Основные коллизии и неисправности можно разделить на следующие группы.

  • Группы ошибок:
    • настройки агентов Zabbix
    • прав доступа к папкам и файлам zabbix
    • отсутствие нужной утилиты

При описании ошибок Zabbix, мы не будем строго придерживаться последовательности вышеперечисленных групп.

Некоторые из ниже перечисленных примеров были выявлены при эксплуатации Портала Kablink.

Перечень Zabbix ошибок.

Все неисправности, которые были выявлены, перечислены в подзаголовках которые указывает в своих названиях, характер реагирования Zabbix на ситуационные моменты работы мониторинга.

Zabbix ошибка выполнения команды.

Возникает, когда нужно выполнить проверку узла. Мониторинговая система Zabbix пытается запустить команду nmap и вывести информацию о узле.

nmap — инструмент исследования сети и сканер безопасности портов

Попытка запуска команды «обнаружение операционной системы».

Zabbix обнаружение операционной системы.
Обнаружение операционной системы.

В результате наших действий получаем следующею ошибку.

Ошибка выполнения команды nmap Zabbix.
Ошибка выполнения команды nmap Zabbix.

Возникшая неисправность указывает на отказ доступа к каталогу /usr/bin/, где находится утилита nmap.

Для решения проблемы, проверяем/устанавливаем утилиту nmap.

# apt-get update
# apt-get install nmap

Допускаем условие, для пользователя zabbix, от имени которого происходит запуск nmap, выполнение команды без ввода пароля.

# visudo ... ## Uncomment to allow members of group wheel to execute any command WHEEL_USERS ALL=(ALL) ALL ## Same thing without a password # WHEEL_USERS ALL=(ALL) NOPASSWD: ALL zabbix ALL=(root) NOPASSWD: /usr/bin/nmap ...

Добавляем пользователя zabbix в группу администраторов whell.

# usermod -a -G wheel zabbix

Снова запускаем команду «обнаружение операционной системы».

Не забудьте перезапустить сервер Zabbix, см. справка.

Zabbix нажатие кнопки «Detect operating system».
Нажатие кнопки «Detect operating system».

Теперь мы видим полную информацию о проверяемом узле.

Zabbix правильная работа кнопки «Detect operating system».
Правильная работа кнопки «Detect operating system».

Zabbix ошибка: host [hostname] notfound

Следующая ошибка появляется при просмотре журнала Zabbix.

# tail -f /var/log/zabbix/zabbix_server.log ... ..no active checks on server [127.0.0.1:10051]: host [zabbix ] not found ...
  • Требуется проверить:
    • сведения о узле: Панель -«Настройка-Узлы сети».
Диагностика работы узла Zabbix.
Диагностика работы узла.
  • настройки DNS сервера на котором работает Zabbix
$ cat /etc/hosts
127.0.0.1 zabbix zabbix.trt.vs localhost  
10.0.2.13 zabbix zabbix.trt.vs localhost 
  • файл конфигурации Zabbix PostgreSQL, для MySQL см.справка
# cat /var/www/webapps/zabbix/ui/conf/zabbix.conf.php // Zabbix GUI configuration file. $DB['TYPE'] = 'POSTGRESQL'; $DB['SERVER'] = 'localhost'; $DB['PORT'] = '0'; $DB['DATABASE'] = 'zabbix'; $DB['USER'] = 'zabbix'; $DB['PASSWORD'] = 'zabbix'; // Schema name. Used for PostgreSQL. $DB['SCHEMA'] = ''; // Used for TLS connection. $DB['ENCRYPTION'] = true; $DB['KEY_FILE'] = ''; $DB['CERT_FILE'] = ''; $DB['CA_FILE'] = ''; $DB['VERIFY_HOST'] = false; $DB['CIPHER_LIST'] = ''; ...

Выше были показанны основные неисправности началальной работы Zabbix, далее перечисляются ошибки, методика подхода к решению которых, такая же, как описана выше.

Ошибка работы Zabbix может появляется в виде предупреждения.
Проверить настройки сервера и агента Zabbix.
Проверить настройки сервера, см .выше и агента Zabbix.

— Не работает агент Zabbix, красный «фонарь».

Проверить настройки агента Zabbix.
Проверить настройки агента Zabbix.

Zabbix ошибка: session terminated, re-login, please…

Пользователю отказано в управление панелью Zabbix, время сессии истекло, пере логин не помогает.

Ошибка входа в панель Zabbix.
Ошибка входа в панель Zabbix.

Для исправления ошибки, в браузере, выполните следующие шаги…

Как очистить куки браузера.
Как очистить куки браузера.

Zabbix ошибка: проверки traceroute.

При вызове команды из панели Zabbix, появляется сообщение «отказ запуска скрипта traceroute».

Zabbix команда traceroute не выполняется.
Команда traceroute не выполняется.

Неисправность указывает на неправильную работу скрипта, необходимо проверить путь к команде в скрипте.

Заключение.

В целом мониторинг сетевых устройств на основе Zabbix, работает стабильно. Трудности могут возникнуть после установки системы и связанны, в большинстве случаев, с работой агента сервера или агентов подключаемых узлов.

При подготовке сервера для Zabbix, уделяйте особое внимание настройкам DNS и NTP.

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

Полезные ссылки.

Установка Zabbix Linux Sisyphus.

Введение.

Продолжая тему, см. полезные ссылки, рассмотрим вариант обновления старой версии Zabbix с помощью Sisyphus.

Sisyphus — репозиторий пакетов свободных программ ALT Linux Team

Пакеты Sisyphus можно устанавливать на любой дистрибутив ALT Linux, но при условии, что вы уверенны в своих действиях. По сути Sisyphus является «песочницей», здесь разработчики выкладывают собранные пакеты готовые к использованию. Далее пакеты начинают тестировать, используя алгоритм проверки зависимостей при взаимодействии библиотек пакетов различных программ.

При работе с Sysiphus помните о рисках связанных с нестабильностью этой ветки.

В отличие от нестабильной ветки Sisyphus существует стабильное ответвление Branch, на которой работают все дистрибутивы ALT Linux компании ООО «Базальт СПО»

Понятие «стабильное» — не нарушение работы системы при установке любой программы из репозитория.

Подготовка.

  • Стенд
    • ALT Linux сервер, имя lin-zab; ip-10.0.2.13;
    • MySQL или PostgreSQL

Предварительные условия — Zabbix установлен и работает, требуется обновить версию до актуальной, как на сайте производителя.

Вопрос использования Sysiphus возникает тогда, когда требуется найти свежею версию программы, которая имеется на сайте производителя, но отсутствует в репозитории. Под текущим репозиторием мы подразумеваем подключение к стабильной ветки Branch.

Можно предпринять попытки самостоятельного компилирования исходников, но будет лучше и безопасней поискать обновление в Sysiphus. Как правило там уже лежит свежий пакет нужной вам программы. Вопрос «Почему нет в Branch» зависит от многих факторов, на которые могут ответить только разработчики.

Подключение Sysiphus.

Подключившись к серверу произведём переключение репозитория с Branch на Sysiphus. Для наглядности наших действий, воспользуемся графическим менеджером пакетов, Synaptic.

# apt-get update
# apt-get install synaptic
# synaptic

В качестве примера установим из Sysiphus свежий пакет Zabbix.

 Когда на экране появится окно менеджера пакетов Synaptic, необходимо аккуратно переключиться на ветку Sysiphus.

Переключение репозитория с branch на sisyphus.
Переключение репозитория с Branch на Sisyphus.

Указать в поиске ключевое слово Zabbix, отметить необходимые пакеты и нажать применить.

Поиск пакета.
Поиск пакета, некоторые версии программ «запиканы».

Выполнив необходимые действия, возвращаем систему на ветку branch.

Перед выходом из настроек, проверьте к какому репозиторию подключены.

$ apt-repo
$ rpm [pX] ftp://server/ pX/branch/x86_64 classic
$ rpm [pX] ftp://server/ pX/branch/x86_64-i586 classic
$ rpm [pX] ftp://server/ pX/branch/noarch classic

Заключение.

Для тех, кто хочет следить за новыми версиями программного обеспечения, будет полезно пользоваться Sysiphus. Здесь надо помнить об одном важном условии, ваша система должна иметь минимальное количество установленных пакетов. Почему это так важно, становится ясно из условий, при котором зависимости библиотек Sisyphus начинают «цепляться» к уже установленным библиотекам.

При обновлении Zabbix библиотеки из Sisyphus будут стараться заменить не только всё, что касается Zabbix, но и библиотеки других программ например LibreOffice, выводя систему из стабильного состояния.

Прежде чем подключаться к Sisyphus, запланируйте установку минимальной конфигурации ALT Linux, которая выполнит загрузку основных пакетов ядра. В противном случае, если установка произведена по «полной», да ещё с графикой вы гарантированно получаете проблемы с зависимостями различных библиотек при использовании Sisyphus .

Если всё сделано правильно, то можно уверено выполнять манипуляции с Sisyphus и работать на актуальной версии Zabbix.

Полезные ссылки.

Восстановление Zabbix MySQL.

Ведение.

После того, как были созданы резервные копии Zabbix MySQL, см полезные ссылки, переходим к рассмотрению вопроса восстановления сервера мониторинга из backup..

Прежде всего необходимо определить причину и степень аварии.

  • Что могло сломаться:
    • не запускается БД
    • вышел из строя диск
    • сервер не запускается

Подготовка.

  • Стенд
    • ALT Linux сервер, имя lin-zab; ip-10.0.2.13;
    • MySQL 8.x.x
    • zabbix_23_back.tar.bz2 — созданный ранние архив

Установив, предварительно, причину отказа Zabbix, приступаем к действиям, которые помогут восстановить работу системы мониторинга. Мы, «придя в сознание», вспоминаем, что у нас есть файл(ы) созданные резервным копированием, которые не поленились создать в ручную или по расписанию. «Buckup наше всё!»

Ошибка MySQL.

Неисправность БД — сервер не запускается в журнале читаем сообщения об отказе при запуске. Самое простое решение, не требующее большого времени на поиск ошибок — удаляем старый БД и устанавливаем новый. Конечно мы сначала попытаемся исправить ситуацию, запустив команду проверки и исправления ошибок БД.

# mysqlcheck -uroot -pzabbix --auto-repair --check --all-databases

Если БД стартовало, то должна начаться проверка и автоматическое исправление таблиц. В противном случае получаем сообщение.

# mysqlcheck -uroot -pzabbix --auto-repair --check --all-databases mysqlcheck: [Warning] Using a password on the command line interface can be insecure. mysqlcheck: Got error: 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111) when trying to connect

Из сообщения консоли становится понятно — БД остановлено и не загружается. Можно много времени потратить на поиск решения по исправлению БД — проще и быстрее переустановить MySQL, ведь у нас есть backup.

Удаление MySQL.

  • для удаления выполним команду
# apt-get update
# apt-get remove MySQL-server
  • удаляем папки БД
# rm -r /var/lib/mysql
# rm -r /etc/my.cnf.d 
# systemctl restart

Установка MySQL.

Пакеты необходимые для работы MySQL.

# apt-get update
# apt-get install MySQL-server
# systemctl start mysqld
# systemctl enable mysqld

Восстановление MySQL Zabbix.

Теперь нужно разархивировать, актуальную резервную копию в которой, вместе с другими файлами, находится dump БД.

# tar xvf zabbix_23_back.tar.bz2
# cd /tmp/zbk

Остаётся вернуть dump в базу данных MySQL.

# mysql -uroot -pzabbix -A < all_bd.sql

Если база в архиве исправна, то при вызове панели, см. установку Zabbix MySQL, увидим восстановленные узлы и настройки системы мониторинга.

Восстановление сервера.

Рассмотрим вопрос неисправности жёсткого диска или сервера, для Zabbix это практически звучит одинаково — система не работает.

Все действия должны быть такими же, как и при первой установке.

При установке нового сервера, необходимо полностью восстановить: имя, IP и пароль MySQL сервера. После этого необходимо выполнить все вышеуказанные манипуляции и действия по установке, см установка Zabbix MySQL.

Сам Zabbix лучше установить той же версии, что был, проверить свои действия и выполнить команды восстановления.

# cd /home # tar xvf zabbix_23_back.tar.bz2 # cd /tmp/zbk # mysql -uroot -pzabbix -A < all_bd.sql # cp -r zabbix_server.conf /etc/zabbix/zabbix_server.conf # cp -r zabbix.conf.php /var/www/webapps/zabbix/frontends/php/conf/zabbix.conf.php # systemctl restart mysqld # systemctl restart httpd2

Заключение.

Работа по восстановлению сервера мониторинга Zabbix , возникает не часто. Обычно система долгое время стабильно и ровно работает, собирает мониторинг, реагирует на события, хранит историю своих действий в журнале событий. Всё меняется в одно мгновение, если система «падает». Материл статьи поможет администратору сориентироваться в аварийной ситуации и принять правильные действия по восстановлению Zabbix MySQL.

Полезные ссылки.

Резервное копирование Zabbix PostgreSQL.

Введение.

Продолжая публикации о Zabbix, см.полезные ссылки, переходим к обсуждению вопроса создания резервной копии Zabbix PostgreSQL.

Многие админы согласятся — «Buckup наше всё!» и это действительно так. Что бы мы не делали и какие бы усилия не прикладывали, всё окажется бесполезным если нет возможности к восстановлению программы после краха.

Подготовка.

  • Стенд
    • ALT Linux сервер, имя lin-zab; ip-10.0.2.13;
    • БД PostgreSQL

План создания резервной копии.

  • Что надо сохранить:
    • dump БД
    • настройки сервера
    • настройки серверного агента
    • журналы

dump БД — содержит структуру и контент базы данных

  • Каталоги Zabbix.
    • /etc/zabbix — файлы агентов
    • /var/www/webapps/zabbix/ui — рабочий каталог
    • /var/www/webapps/zabbix/ui/conf/zabbix.conf.php — настройки
    • /var/log/zabbix — журналы Zabbix
    • /usr/share/doc — пакеты Zabbix
    • /var/lib/pgsql — папки кластера БД PostgreSQL
    • /usr/share/pgsql -пакеты PostgreSQL

Содание dump PostgreSQL.

Для создания резервной копии воспользуемся программой pg_dump — выгрузить только одну БД zabbix.

# pg_dump -Upostgres zabbix > zabbix.db

Для backup кластера PgSQL используйте программу pg_dumpall.

pg_dumpall предназначена для «выгрузки» всех БД кластера

Копирование каталогов Zabbix.

Вся информация о работе агентов Zabbix и настройках подключённых узлов- хранится в БД

Для копирования каталогов используем утилиту cp.

# cp -r /etc/zabbix/zabbix_server.conf /home/bkz # cp -r /etc/zabbix/zabbix_agentd.conf /home/bkz # cp -r /var/www/webapps/zabbix/ui/conf/zabbix.conf.php /home/bkz # cp -r /var/log/zabbix /home/bkz

Мы сохранили необходимые файлы для восстановления сервера мониторинга вводя команды с консоли.

Автоматизация Backup PostgreSQL.

Консольное выполнение команд backup удобно для выборочного резервного копирования, но не достаточна, когда система включена в технологический процесс работы ИТ предприятия.

Для выполнения backup по заданному расписанию создадим файл zbk.sh командной оболочки bach, с инструкцией к исполнению при обращении к нему.

Напишем файл zbk.sh командной оболочки bach с инструкцией к исполнению при обращении к нему.

#!/bin/bash TEMPDIR=/tmp/zbk/ BACKUPDIR=/home/ mkdir -p $TEMPDIR # Создать dump PostgreSQL копировать во временный каталог pg_dump -Upostgres zabbix > $TEMPDIR/zabbix.db # Копировать конфиги во временную директорию cp -r /etc/zabbix/zabbix_server.conf $TEMPDIR cp -r /etc/zabbix/zabbix_agentd.conf $TEMPDIR cp -r /var/www/webapps/zabbix/ui/conf/zabbix.conf.php $TEMPDIR cp -r /var/log/zabbix $TEMPDIR # Сжать и добавить дату создания(максимально до 31 дня месяца) tar -cjf $BACKUPDIR/zabbix_`date +%d`_back.tar.bz2 $TEMPDIR # Очистить временный каталог rm -rf /tmp/zbk

Файл содержит всё необходимое для последовательного выполнения действий по созданию Backup Zabbix PostgreSQL

Созданный архив будет иметь название и формат записи: zabbix_23_back.tar.bz2

Выполнение Backup PostgreSQL Zabbix.

Сценарий zbk.sh следует поместить в /usr/local/bin с правами.

# chmod 744 /usr/local/bin/zbk

/usr/local/bin — пользовательский каталог хранения сценариев оболочки bash

Скрипт zbk.sh, для проверки, можно запускать с консоли.

# zbk.sh

Для выполнения запуска программ по расписанию используем cron.

cron — планирует выполнение команд в указанные даты и время

Формирование расписания для backup zabbix postgreSQL.

# crontab -e
minute (0-59),
| hour (0-23),
| | day of the month (1-31),
| | | month of the year (1-12),
| | | | day of the week (0-6 with 0=Sunday).
| | | | | commands
00 00 * * 0 zbk

Заключение.

В статье блога приведены рекомендации и приёмы создания резервной копии Zabbix установленного на PostgreSQL. Мы рекомендуем провести несколько контрольных операций построения резервной копии на стенде.

Созданные архивы лучше хранить на отдельном сервере или устройстве для резервных копий вашей компании.

Восстановление резервной копии читайте в разделе полезные ссылки.

Полезные ссылки.

Резервное копирование Zabbix backup MySQL.

Введение.

Продолжая публикации о Zabbix, см.полезные ссылки, переходим к обсуждению вопроса создания резервной копии Zabbix MySQL.

Без сомнения многие админы согласятся — «Buckup наше всё!» и это действительно так. Что бы мы не делали и какие бы усилия не прикладывали, всё окажется бесполезным если нет возможности к восстановлению программы после аварии..

Подготовка.

  • Стенд
    • ALT Linux сервер, имя lin-zab; ip-10.0.2.13;
    • БД MySQL

План действий по созданию резервной копии Zabbix MySQL.

  • Что надо сохранить:
    • dump БД
    • настройки сервера
    • настройки серверного агента
    • журналы

dump БД — содержит структуру и контент базы данных

  • Каталоги Zabbix.
    • /etc/zabbix — файлы агентов
    • /var/www/webapps/zabbix/ui — рабочий каталог
    • /var/www/webapps/zabbix/ui/conf/zabbix.conf.php — настройки
    • /var/log/zabbix — журналы Zabbix
    • /usr/share/doc — пакеты Zabbix
    • /var/lib/mysql — БД MySQL
    • /etc/my.cnf.d — настройки MySQL

Перед тем как приступить, создадим каталог для хранения архива.

# mkdir -p /home/bkz

Создание dump MySQL.

Создание dump БД Zabbix.

# systemctl stop zabbix_mysql
# mysqldump -uroot -pzabbix zabbix > /home/bkz/zabbix.db
# systemctl startp zabbix_mysql

Если требуется dump всех БД MySQL.

# systemctl stop zabbix_mysql
# mysqldump -uroot -pzabbix -A > /home/bkz/all_db.sql
# systemctl start zabbix_mysql

Копирование каталогов Zabbix.

Вся информация о работе агентов Zabbix и настройках подключённых узлов- хранится в БД.

Для копирования каталогов воспользуемся утилитой cp.

# cp -r /etc/zabbix/zabbix_server.conf /home/bkz # cp -r /etc/zabbix/zabbix_agentd.conf /home/bkz # cp -r /var/www/webapps/zabbix/ui/conf/zabbix.conf.php /home/bkz # cp -r /var/log/zabbix /home/bkz

Таким образом мы сохранили всё, что потребуется для восстановления сервера мониторинга используя «ручной» ввод команд.

Автоматизация Backup MySQL.

Ручное копирование наглядно для выборочного backup, но не достаточна, когда система включена в технологический процесс работы ИТ предприятия.

Для выполнения backup по расписанию создадим файл zbk.sh для командной оболочки bach, с инструкцией к исполнению при обращении к нему.

#!/bin/bash TEMPDIR=/tmp/zbk/ BACKUPDIR=/home/ mkdir -p $TEMPDIR # Стор Apache2 systemctl stop httpd2 # Стоп zabbix сервер systemctl stop zabbix_mysql # Создать dump MySQL и скопировать в каталог mysqldump -uroot -pzabbix -A > $TEMPDIR/all_db.sql # Старт Apache2 systemctl start httpd2 # Старт zabbix сервер systemctl start zabbix_mysql # Копировать каталоги cp -r /etc/zabbix/zabbix_server.conf $TEMPDIR cp -r /etc/zabbix/zabbix_agentd.conf $TEMPDIR cp -r /var/www/webapps/zabbix/ui/conf/zabbix.conf.php $TEMPDIR cp -r /var/log/zabbix $TEMPDIR # Сохранить с текущей датой (max до 31 дня месяца) tar -cjf $BACKUPDIR/zabbix_`date +%d`_back.tar.bz2 $TEMPDIR # Очистить временный каталог rm -rf /tmp/zbk

Инструкция содержит пошаговые действия по созданию Backup Zabbix MySQL.

Созданный архив будет иметь название и формат записи: zabbix_23_back.tar.bz2.

Запуск Backup Zabbix.

После того, как сценарий zbk.sh создан его следует поместить в каталог /usr/local/bin и назначить права.

# chmod 744 /usr/local/bin/zbk 

/usr/local/bin — один из каталогов хранения сценариев оболочки bash

Скрипт zbk.sh, для проверки, можно запускать в «ручную».

# zbk.sh

Для выполнения запуска программ по расписанию используем cron.

cron — планирует выполнение команд в указанные даты и время

Создание расписания.

# crontab -e
minute (0-59),
| hour (0-23),
| | day of the month (1-31),
| | | month of the year (1-12),
| | | | day of the week (0-6 with 0=Sunday).
| | | | | commands
00 00 * * 0 zbk

Заключение.

В статье блога приведены рекомендации для создания резервной копии Zabbix работавшего на движке MySQL. Настоятельно советуем провести несколько контрольных операций по созданию резервной копии на стенде.

Созданные архивы должны храниться на специальном сервере или устройстве для резервных копий вашей компании.

Восстановление резервной копии читайте в разделе полезные ссылки.

Полезные ссылки.

Как установить Zabbix Linux PostgreSQL.

Ведение.

Продолжая публикации о Zabbix, см.полезные ссылки, переходим к описанию технологического процесса сборки сервера мониторинга с использованием БД PostgresSQL.

Выбор PostgreSQL не случаен, всё больше администраторов останавливаются на этой БД. Причин несколько: доступность, входит в перечень программ для организаций, имеет хорошею поддержку, стабилен и надёжен в работе.

Мониторинг производительности большого количества сетевых устройств предприятия, требует особого подхода в выборе инструмента контроля, одним из таких является Zabbix (Zab). Распространяется по лицензии GPL

Все материалы о работе с Zabbix смотри в полезных ссылках.

Подготовка.

  • Стенд
    • ALT Linux сервер, имя lin-zab; ip-10.0.2.13;
    • Simply Linux, имя: lin-sl, IP=10.0.2.30
    • PostgreSQL

Для развёртывания выбираем минимальную конфигурацию устанавливаемого сервера.

Из репозитория ALT linux скачиваем пакет для подготовки сервера к развёртыванию Zabbix.

# apt-get update
# apt-get install zabbix-preinstall

Пакет zabbix-preinstall содержит основные библиотеки для развёртывания zabb.

Перед установкой необходимо установить и настроить основной «каркас» Zabbix — вэб-сервер и БД.

Настройка Apache2.

Базовую установку вэб-сервера Apache2 смотри здесь.

  • Для запуска Apache2 необходимо:
    • проверить пути к корневому каталогу вэб-сервера
# /etc/httpd2/conf/sites-available/default.conf
...
  DocumentRoot "/var/www/html/"
...
 <Directory "/var/www/html/>
...
 </Directory>
  • добавить в секции Directory запись Require all granted, для переопределение к папке Zabbix
# /etc/httpd2/conf/sites-available/default.conf
...
 <Directory>
...
 Require all granted
 </Directory
  • проверить доступ на каталоги Apache2
# chown -R apache2:apache2 /var/www/webapps             
# chmod -R 771 /var/www/webapps
# namei -mol /var/www/webapps/zabbix/
f: /var/www/webapps/zabbix/
drwxr-xr-x root    root      /
drwxr-xr-x root    root      var
drwxr-xr-x root    webmaster www
drwxrws--x apache2 apache2   webapps
drwxrwx--x apache2 apache2   zabbix 
  • установить права на файлы и каталоги Zabbix
# find /var/www/webapps/zabbix -type f -exec chmod 644 {} \; # find /var/www/webapps/zabbix -type d -exec chmod 755 {} \;
  • контролировать доступ к каталогам Zabbix после корректировки
# namei -mol /var/www/webapps/zabbix/ui
f: /var/www/webapps/zabbix/ui
drwxr-xr-x root    root      /
drwxr-xr-x root    root      var
drwxr-xr-x root    webmaster www
drwxrws--x apache2 apache2   webapps
drwxr-xr-x apache2 apache2   zabbix
drwxr-xr-x apache2 apache2   ui 
  • Настроить ссылки Apache2 для Zabbix:
    • с помощью редактор mcedit
      • ИЛИ
    • командной строки
# ln -s /etc/httpd2/conf/addon.d/A.zabbix.conf /etc/httpd2/conf/extra-enabled

Вид каталогов исполнения addon.d и ссылок для Zabbix.

  • внести изменения в файла phpX сервера Apache2
# /etc/php/x.x/apache2-mod_php/php.ini 
max_execution_time = 300 
max_input_time = 300 
memory_limit = 256М 
post_max_size = 32M 
upload_max_filesize = 20M 
date.timezone = Europe/Moscow 
always_populate_raw_post_data= —

$ php -v //версия PHP

  • перегрузить сервер Apache2
# systemctl restart httpd2

 Настройка PostgreSQL.

Базовые настройки БД PostgreSQL смотреть здесь.

  • Требуется:
    • скачать пакеты PostgreSQL
# apt-get update
# apt-get install zabbix-server-pgsql
# apt-get install phpX-pgsql

Прежде чем продолжать наши действия необходимо установить пароль для пользователя postgres. Пароль потребуется при графической установке Zabbix.

$ sudo su - postgres -s /bin/bash
-bash-3.2$ psql 
postgres=# \password postgres
Введите новый пароль: postgres
Повторите его: postgres 
postgres=# \q
  • создать пользователя zabbix
//флаг -P, пароль для создаваемого пользователя
$ sudo su - postgres -s /bin/bash
-bash-3.2$ createuser -P zabbix 
Введите пароль для новой роли: zabbix 
Повторите его: zabbix 
Пароль: postgres //пароль пользователя postgres

Все пароли указанны для стендовой установки.

  • контролировать свои действия
$ sudo su - postgres -s /bin/bash -bash-3.2$ psql postgres=# \du Список ролей Имя роли | Атрибуты | Член ролей ----------+-------------------------------------------------------------------------+----------- postgres | Суперпользователь, Создаёт роли, Создаёт БД, Репликация, Пропускать RLS | {} zabbix \q
  • создать БД для zabbix
$ sudo su - postgres -s /bin/bash
-bash-3.2$
createdb -O zabbix -E Unicode -T template0 zabbix
Пароль: secret //пароль пользователя postgres
  • проверяем наши действия
$ sudo su - postgres -s /bin/bash -bash-3.2$ psql postgres=# \l Список баз данных Имя | Владелец | Кодировка | LC_COLLATE | LC_CTYPE | Права доступа -----------+----------+-----------+-------------+-------------+----------------------- postgres | postgres | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 | template0 | postgres | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres zabbix | zabbix | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 | (4 строки \q exit
  • импортировать схемы Zabbix в БД
//оглядеться в каталоге
# ls /usr/share/doc
//перейти в каталог шаблонов
# cd /usr/share/doc/zabbix-common-database-pgsql-X.X.X
//импорт шаблонов
# cat schema.sql | sudo -u zabbix psql zabbix
# cat images.sql | sudo -u zabbix psql zabbix
# cat data.sql   | sudo -u zabbix psql zabbix

Графический режим установки Zabbix.

Прежде чем перейти к графическим настройкам проверьте работу NTP.

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

 

Обратите внимание, Шаг3, поле «схема БД» остаётся пустым.

Запускаем сервер и агент Zabbix.

# systemctl start zabbix_pgsql
# systemctl enable zabbix_pgsql
# systemctl start zabbix_agentd
# systemctl enable zabbix_agentd
выставляем автозагрузку

После ответа на последний вопрос мастера настроек, перед нами появится окно с приглашением ввода логин и пароль для первого входа.

Первый вход: логин Admin пароль zabbix

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

  • Каталоги Zabbix.
    • /etc/zabbix — файлы агентов
    • /var/www/webapps/zabbix/ui — рабочий каталог
    • /var/www/webapps/zabbix/ui/conf/zabbix.conf.php — настройки
    • /var/log/zabbix — журналы
    • /usr/share/doc — пакеты

Заключение.

После всех манипуляций, остаётся настроить Zabbix агенты сервера и подключаемых узлов, здесь могут возникнуть известные трудности. Как найти и решить их читайте в статье посвящённой устранению наиболее часто встречаемых ошибок при работе Zabbix.

После того, как сервер установлен и к нему начинают подключаться узлы, пора ознакомится с документацией. Она вам будет требоваться всегда, по мере погружения в работу анализа сетевых сообщений. Узлы можно подключать в ручную или в режиме сканирования диапазонов сети предприятия.

Полезные ссылки.

Copyright © 2011-2024
Все права защищены.
При перепечатке указать источник: kabtim.ru
Контакты