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

 Введение.

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

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

Подготовка 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.

Открываем доступ группе 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 Linux часть2«
  • «Как установить PostgreSQL Linux часть3«
  • «Как установить PostgreSQL Linux часть4«

 Заключение.

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

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

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

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

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

Введение.

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

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

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

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

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

  • Стенд
    • ALT Linux сервер, имя zabbix; ip-10.0.2.13;
      • БД, имя- zabbix
      • БД пароль — zabbix
      • БД пользователь — zabbix
    • Simply Linux, имя lin-sl; ip-10.0.2.33

Основные задачи 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 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.

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

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

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

Ведение.

 Статья, проектирование технологического процесса сборки сервера Zabbix MySQL, открывает цикл публикаций посвящённых системе мониторинга на платформе Zabbix.

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

Из доступного для этих задач СПО, можно выделить Zabbix (Zab), лицензия GPL.

На сайте производителя выставлены готовые решением в виде компилированных iso образов для облачных сред. Собраны образа на ОС, которые не входят в реестр программ для учреждений и предприятий. В статьях цикла рассмотрены варианты развёртывания системы мониторинга на базе ОС ALT Linux компании «Базальт СПО».

Подготовка

  • Стенд
    • ALT Linux сервер, имя zabbix; ip-10.0.2.13;
      • БД, имя- zabbix
      • БД пароль — zabbix
      • БД пользователь — zabbix
    • Simply Linux, имя lin-sl; ip-10.0.2.33

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

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

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

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

Прежде чем перейти к установке 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= —
  • перегрузить сервер Apache2
# systemctl restart httpd2

 Настройка MySQL.

Базовую установку сервера MySQL смотри здесь

  • Требуется:
    • скачать основные пакеты сервера MySQL
# apt-get update
# apt-get install MySQL-server
  • выставить запуск и автозагрузку демона mysqld
# systemctl start mysqld
# systemctl enable mysqld
# systemctl is-enabled mysqld
enabled
  • установить пароль пользователя root
# mysqladmin -u root password
# New password:zabbix
# Confirm new password:zabbix
  • корректировать уровень безопасности при сеансе пользователя БД
# mysql -uroot -pzabbix mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'zabbix'; mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'zabbix'; mysql> quit
  • скачать дополнительные пакеты для zabbix
# apt-get install zabbix-server-mysql
# apt-get install phpX-mysqlnd
  • создать БД и привилегированного пользователя zabbix
# mysql -u root -pzabbix //создать БД zabbix mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin; //создать пользователя zabbix mysql> create user 'zabbix'@'localhost' identified by 'zabbix'; mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost'; mysql> SET GLOBAL log_bin_trust_function_creators = 1; mysql> quit
  • проверить кодировку БД Zabbix
# mysql -uroot -pzabbix mysql> SELECT @@character_set_database, @@collation_database; +--------------------------+----------------------+ | @@character_set_database | @@collation_database | +--------------------------+----------------------+ | utf8mb3 | utf8_general_ci | +--------------------------+----------------------+ mysql> quit

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

Этапы развёртывания Zabbix делятся на консольный и графический режим.

При работе с консолью сервера, можно воспользоваться графической утилитой управления пакетами synaptic.

# apt-get install synaptic

Консольный режим установки.

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

X текущая версия php

# apt-get update # apt-get install zabbix-phpfrontend-apache2 # apt-get install zabbix-phpfrontend-engine # apt-get install zabbix-phpfrontend-phpX # apt-get install zabbix-server-common # apt-get install zabbix-common # apt-get install zabbix-phpfrontend-apache2-mod_phpX # apt-get install zabbix-agent # apt-get install phpX-sockets # apt-get install phpX-xmlreader # apt-get install phpX-ldap

$ php -v \\справка версии PHP

Если некоторые из перечисленных пакетов уже установлены, продолжайте устанавливать остальные.

Пользователь zabbix.

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

# apt-get install zabbix-agent
...zabbix-agent уже установлен
//член групп
# id -Gn zabbix
zabbix wheel proc

 Ручное создание пользователя zabbix.

# groupadd zabbix
# useradd -g zabbix zabbix
# passwd zabbix
...
Enter new password: zabbix
Re-type new password: zabbix

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

//журнал
# namei -mol /var/log/zabbix/
drwxr-xr-x root root /
drwxr-xr-x root root var
drwxr-xr-x root root log  
drwxrwxr-t root zabbix zabbix
//запуск
# namei -mol /var/run/zabbix/
drwxr-xr-x root root /
drwxr-xr-x root root var
lrwxrwxrwx root root run -> ../run
drwxr-xr-x root root     ..
drwxr-xr-x root root run
drwxr-xr-x zabbix zabbix zabbix

Действия с MySQL.

Производим импорт схем шаблонов Zabbix в БД MySQL.

//оглядеться в каталоге
# ls /usr/share/doc
//перейти в каталог шаблонов zabbix
# cd /usr/share/doc/zabbix-common-database-mysql-x.x.x
//импорт шаблонов в БД zabbix
# mysql -uroot -pzabbix zabbix < schema.sql
# mysql -uroot -pzabbix zabbix < images.sql
# mysql -uroot -pzabbix zabbix < data.sql
//перегрузить сервер zabbix
# systemctl restart zabbix_mysql

Удаляем log_bin_trust_function_creators после импорта.

# mysql -uroot -pzabbix
mysql> SET GLOBAL log_bin_trust_function_creators = 0;
mysql> quit;

log_bin_trust_function_creators — двоичное журналирование сохраненных программ

Полезные команды MySQL.

При эксплуатации системы мониторинга иногда приходится запускать проверку и исправление целостности БД MySQL.

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

Размер БД Zabbix можно узнать воспользовавшись командой.

# mysql -uroot -pzabbix mysql> SELECT table_schema "databases name", sum( data_length + index_length) / 1024 / 1024 "Data Base Size in MB" FROM information_schema.TABLES GROUP BY table_schema; +--------------------+----------------------+ | databases name | Data Base Size in MB | +--------------------+----------------------+ | information_schema | 0.15625000 | | mysql | 2.28296661 | | performance_schema | 0.00000000 | | sys | 0.01562500 | | zabbix | 1623.98437500 | +--------------------+----------------------+ 5 rows in set, 48 warnings (0,80 sec) mysql> quit

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

Запускаем сервер и устанавливаем уровень автозагрузки демона.

# systemctl start zabbix_mysql
# systemctl enable zabbix_mysql
# systemctl is-enabled zabbix_mysql

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

 Открываем браузер и пишем адрес сервера Zabbix.

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

Если при выполнении см. Вид2\Шаг3, возникает ошибка см. Вид3.

Ошибка соединения с БД Mysql.
Вид3. Ошибка соединения с БД Mysql.

Для исправления возникшей ошибки смотри рекомендации Вид4.

Замена пользователя для соединения с БД Zabbix.
Вид4. Замена пользователя для соединения с БД Zabbix.


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

Первый вход: логин 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 — пакеты

Заключение.

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

 Есть ещё один, порочный, способ развёртывания сервера — скачать готовый iso образ с сайта, развернуть в облаке предприятия, подключить узлы. Этим обычно пользуются администраторы MS Windows. В этом способе установки нет ничего предосудительного, желание посмотреть, потрогать, попробовать в «живую» это всё правильно. В дальнейшем администратор сети начинает привыкать к серверу, более того ещё и доложит руководству. Но, что получается, сервер установлен, тонкие настройки сбора логов не выставлены. Сервер начинает собирать все события и копить на диске, диск переполняется, сервер останавливается, БД повреждена.

Начинается поиск специалиста по Linux, т.к сервер включён в структуру мониторинга предприятия, выяснить, кто это сделал не удаётся. Специалист по Linux должен понять, на каком дистрибутиве собран сервер. Добиться этой информации у того, кто устанавливал нет никакой возможности, как порой и найти его самого. Обычно в качестве дистрибутива для распространения используется те, за лицензии которых платить не надо — Ubuntu или CentOS. Начинается кропотливая работа по расширению виртуального диска, исправлению БД, настройки логов, настройка обновления OC и т.д. Возникает необходимость замены пароля для Zabbix, т.к даже это не делают, как из «коробки » пришёл так всё и оставляют.

 Вывод, если нужны образа iso для сервера, создайте основной экземпляр в облаке предприятия на базе ALT Linux минимум. Снимите с него копию, сожмите до предельного размера, что бы можно было передать по FTP. После того, как копия сервера будет получена, проследите весь процесс установки в облаке клиента, расширьте размер виртуального диска, настройте сеть, безопасность, проинструктируйте администратора, не забудьте включить в технологию обслуживания — процесс резервного копирования и обновления.

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

Как установить FTP сервер на Linux

Сегодня сервер FTP становится обязательной частью любого офиса. Без его работы не обходится ни одна серьёзная компания. Узел на базе FTP входит в пятёрку основных серверов, составляющих ядро ИТ компании читать далее

Как смотреть журналы событий Linux

Введение.

 В статье блога рассматривается возможность интеграции консольного просмотровщика логов lnav для анализа журналов Linux, в качестве примеров используются действующие журналы работы Kablink, appserver и catalina, в качестве стенда используется сервер ALT Linux.

 Встроенный в административную панель Kablink, системная кнопка отчёты, даёт администратору возможность контроля работы пользователей и системы в целом, но когда Портал выключен по различным причинам, сделать анализ журнал Tomcat-Apache становится невозможно. Существующие текстовые редакторы tail, cat, less … не позволяют уверенно ориентироваться в сложных системных сообщениях. Специальные программы для анализа логов, Rsyslog, ElasticsearchFluentd… требуют серьёзного изучения, сложны в настройках и отвлекают для своей работы дополнительные ресурсы. Анализатор lnav  — инструмент использующий облегчённую систему визуализации аналитики входящих сообщений.

  Просмотровщик lnav «всеядный» — может работать практически со всеми известными форматами журналов, на ‘лету’ анализировать, читать, индексировать и выводить на экран полученные результаты. Содержимое сообщений выходного файла журнала, объединяется в одно целое представление, на основе отметок времени происходящих событий.

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

Основные возможности Lnav

  • просмотр одного журнала
  • просмотр и извлечение сообщения нескольких журналов
  • автоматическое определение формата журнала
  • фильтрация сообщений журнала
  • наличие временных отметок журнала
  • включение режима pretty-print view
  • анализ журналов с использованием SQL запросов

Подготовка

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

 Развернуть lnav можно загрузив пакет из официального репозитория, с помощью менеджера пакетов synaptic, или скачать с сайта разработчика Lnav.

Если система безопасности организации требует, для установки lnav, использовать официальный репозиторий, консультируетесь со специалистами по безопасности ОС вашей организации.

# apt-get update
# apt-get install lnav
# ...

Если пакет загружен с сайта, выполните действия, как показано ниже.

# apt-get install lnav-x.x.x-x.x86_64.rpm

Теперь надо «нацелить» lnav на каталог, где хранятся журналы Kablink с помощью созданного для этого, запускающего сценария lnkb.

#!/bin/bash
# просмотр анализ журнала appserver.log
lnav /opt/novell/teaming/apache-tomcat/logs/appserver.log
# просмотр анализ журнала catalina.out
lnav /opt/novell/teaming/apache-tomcat/logs/catalina.out

Поместить сценарий lnkab в каталог /usr/local/bin

# ls -l /usr/local/bin
-rwxr-xr-x root root lnkb

Запускаем lnav командой…

$ sudo lnkb

Горячие клавиши Lnav.               

  • ПРОСТРАНСТВЕННАЯ НАВИГАЦИЯ
    PgUp — вниз на страницу
    PgDn  — вверх на страницу
      — вверх на одну строку
    — вниз на одну строку
    l → — право половина страницы
    Shift + l — Право десять столбцов
    n|N — следующий / предыдущий поисковый запрос
    > <  — следующий / предыдущий поисковый запрос по горизонтали
    s|S — следующее / существенное замедление в скорости сообщений журнала формат экрана
    T — отключение s
    u|U  — перемещение по закладкам, вверх низ
    w|W — поиск предупреждений начало, конец
    e|E — поиск ошибок начало, конец
    g|G Начало журнала / конец журнала
    { }  — предыдущее / следующее место в истории
  • ХРОНОЛОГИЧЕСКАЯ НАВИГАЦИЯ
    d|D — переместить на 24h верх или низ
    1-6|Shift 1-6  — следующая |предыдущая 10 мин часа
    7-8  — предыдущая / следующая минута
    0|Shift 0  — предыдущий / следующая день
  • ЗАКЛАДКИ
    m — пометить / снять отметку с верхней строки
    M — пометить / снять отметку диапазона строк от последней помеченной до верхней
    j — пометить следующей строки после ранее отмеченной вниз
    k — снять отметку с предыдущей строки вверх
    c — копировать отмеченные строки в буфер обмена
    C — очистить отмеченные линии
  • ДИСПЛЕЙ
    q — выход возврат предыдущий
    P — симпатичный видов
    T — отображение прошедшего времени между строками
    — гистограмма
    — откл.гистограммы
    p — разбор строки
    L — отключение lnav функций вид становится как простой терминал
    Ctrl-w — отмена переносов всё в одном экране
    Ctrl + f — включение / выключение всех фильтров в текущем представлении
    x  — переключить скрытие полей сообщения журнала. Скрытые поля будут заменены тремя маркерами и выделены желтым цветом.
    СЕССИЯ
    Ctrl + R — сброс утекшей сессии
  • ЗАПРОС
    / —  Поиск строк, соответствующих регулярному выражению
    / — повторное нажатие отменяет поиск

 После получения представления и общих сведений о работе и назначении горячих клавиш lnav, рассмотрим применение его на практике, анализируя сообщений основного appserver.log.

 Практика работы с Lnav.

 Набрав команду $ sudo lnkb  попадаем в окно журнала appserver.log, где указано расположение журнала, анализ которого нас интересуют.

Если используется буфер clipboard, для запуска lnav ввести $ sudo -E lnkab .

 Навигатор позволяет сортировать сообщения, выделяя из них строки со статусом WARN или ERROR, используя ← → клавиши перемещать строки в право или в лево, искать информацию выбирая строки с помощью клавиш ↓ ↑листать страницы сообщений с помощью клавиш PgDn PgUp , быстро переходить в начало или конец журнала.

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

 Возможность делать отметки в сообщениях журнала с помощью закладок, делает навигатора lnav ещё привлекательней. Закладки можно ставить на одну строку или выделять несколько строк перемещаясь вверх или вниз по журналу, поиск закладок осуществляется с помощью клавиш u|U. Предусмотрена возможность выделения диапазона строк.

Для дальнейшего разбора, все закладки можно копировать в буфер clipboard, очистить журнал от пометок закладок можно с помощью сочетания клавиш Shift + C.

 Управлять выводимой, дисплейной, информации в удобном для восприятия виде, ещё одна хорошая особенность lnav. Нажимая последовательность клавиш Shift+p мы переключаемся в режим Pretty-Print View. Нажимая клавишу p, переходим в режим просмотра журналов XML и JSON форматов. Можно включить подробную хронологическую историю, выводимых сообщений, с помощью Shift+t и плавно перемещаться в диапазоне времени нажимая s↑S↓. Построение гистограмм, используя кнопки, iI, позволяет оценить наличие сообщений и их количество со статусом Error или Warn, Нажимая клавиши z Z,, мы можем увеличит или уменьшить временной ряд гистограммы. Иногда, для отчёта, требуется показать информацию в привычном терминальном виде, без режима подсветки синтаксиса строк журнала, используя сочетанием клавиш Ctrl+l. Если надо вывести компактный экран сообщений журнала, без переносов, нажимаем комбинацию кнопок Ctrl^w. Вернутся в главное окно lnav, или выйти из режима просмотровщика, можно используя клавиши q Q.

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

  • положение в файлах для просмотра
  • информацию о поиске
  • фильтры или подсветки фильтров
  • закладки
  • настройки временных хронологии

 Сбросить историю текущей сессии можно воспользовавшись сочетанием клавиш Ctrl^R, в командной строке экрана lnav.

 Пожалуй самым востребованным режимом при разборе сообщений журнала, является поиск. В lnav этот функционал встроен в командную строку и имеет привычный знак-символ / , выполняющий двойное значение — включает и выключает режим поиска.

 На этом обзор навигатора lnav заканчивается, остаётся только напомнить, что всё сказанное относится к разбору сообщений журналов Kablink, и поэтому другие возможности lnav опушены, чтобы не усложнять понимание возможностей использования lnav & Kablink.

Заключение.

 Для проведения анализа и контроля работы ОС Linux, создано много аналитических программ. Большинство из которых, имеют собственные программы для анализа журналов и входят в ‘коробочные’ версии при базовой установке. Все они, как правило, имеют графический интерфейс и работают только когда запущенна базовая программа. Просмотр и анализ журналов событий, происходит периодически, как правило, когда всё работает без сбоев. Но, такая работа может прерываться неожиданными событиями — приложения не запускаются, логи нельзя просмотреть, телефон надрывается, в дверь стучат возмущённые пользователи. Здесь может пригодится небольшой консольный просмотровщик. Он доберётся до любого журнала, ему не нужен тяжёлый интерфейс GUI, главное что бы сервер «дышал». Просмотровщик lnav не занимает много места, не требует особых навыков в работе и большого времени на изучение. Необходима небольшая практика в использовании и вот у вас в руках ещё один инструмент, который может выручить админа в критическую минуту.

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