Zabbix oracle linux server

Zabbix Documentation 2.2

Table of Contents

3 Установка из пакетов

Из пакетов дистрибутивов

Некоторые популярные дистрибутивы ОС предоставляют пакеты Zabbix. Вы можете использовать эти пакеты для установки Zabbix.

Из официального репозитория Zabbix

Zabbix SIA поставляет официальные RPM и DEB пакеты для Red Hat Enterprise Linux, Debian и Ubuntu LTS.

Файлы пакетов доступны по адресу repo.zabbix.com. Репозитории yum и apt также доступны на сервере. Пошаговое руководство по установке Zabbix из пакетов представлено ниже.

Red Hat Enterprise Linux / CentOS

Поддерживаемые версии: RHEL 5, RHEL 6, RHEL 7, Oracle Linux 5, Oracle Linux 6, Oracle Linux 7, CentOS 5, CentOS 6, CentOS 7

Установка пакета конфигурации репозитория

Установите пакет конфигурации репозитория. Этот пакет содержит файлы конфигурации yum.

Zabbix 2.2 для RHEL5, Oracle Linux 5, CentOS 5:

Zabbix 2.2 для RHEL6, Oracle Linux 6, CentOS 6:

Zabbix 2.2 для RHEL7, Oracle Linux 7, CentOS 7:

Установка пакетов Zabbix

Установите пакеты Zabbix. Например, установка Zabbix сервера с веб-интерфейсом и с базой данных MySQL.

Пример установки только Zabbix агента.

Создание начальной базы данных

Создайте базу данных zabbix и пользователя в MySQL.

Импортируйте изначальную схему и данные.

Запуск процесса Zabbix сервера

Измените настройки базы данных в zabbix_server.conf

Запустите процесс Zabbix сервера.

Изменение конфигурации PHP для веб-интерфейса Zabbix

Файл конфигурации Apache веб-интерфейса Zabbix размещается в /etc/httpd/conf.d/zabbix.conf. Некоторые параметры конфигурации PHP уже заданы.

Необходимо раскомментировать опцию “date.timezone” и установить корректный часовой пояс. После изменения файла конфигурации перезапустите веб-сервер apache.

Веб-интерфейс Zabbix доступен через браузер по адресу http://zabbix-frontend-hostname/zabbix. Имя пользователя/пароль по умолчанию — Admin/zabbix.

Debian / Ubuntu

Поддерживаемые версии: Debian 6 (Squeeze), Debian 7 (Wheezy), Ubuntu 12.04 LTS (Precise Pangolin), Ubuntu 14.04 LTS (Trusty Tahr)

Установка пакета конфигурации репозитория

Установите пакет конфигурации репозитория. Этот пакет содержит файлы конфигурации apt.

Zabbix 2.2 для Debian 6:

Zabbix 2.2 для Debian 7:

Zabbix 2.2 для Ubuntu 12.04 LTS:

Zabbix 2.2 для Ubuntu 14.04 LTS:

Установка пакетов Zabbix

Установите пакеты Zabbix. dbconfig-common создаст базу данных и автоматически заполнит изначальную схему и данные. Если конечная база данных размещается на другом сервере, тогда установите пожалуйста dbc_remote_questions_default=’true’ в /etc/dbconfig-common/config.

Например, установка Zabbix сервера с веб-интерфейсом и с базой данных MySQL.

Источник

Мониторинг базы данных Oracle через ODBC в Zabbix


В статье будет рассмотрена возможность мониторинга база данных по средствам встроенной в Zabbix поддержке ODBC, c использованием автообнаружения объектов.

Для начала рассмотрим доступные для Zabbix методы мониторинга БД, которые использовались до поддержки ODBC.
Так как статья про мониторинг Oracle, то и будем смотреть в этом разрезе.

Читайте также:  Ноутбук lenovo не работает тачпад windows 10

1. Использования скрипта zabora

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

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

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

Недостатки:
— не поддерживает параметры, то есть на каждую метрику создается отдельный запрос.
Представьте у вас 10 tablespace’ов и вам нужно снимать с каждого 4 параметра — получается 40 запросов в файле. Интервал запроса получение метрики, так же выставляется в конфиге, что не очень удобно.

Попробовав все эти решения решил использовать поддержку ODBC в Zabbix, и вот почему:

  • запрос к БД — стандартный ключ Zabbix, из этого следует, что мы настраиваем такие параметры как частота опроса в самом интерфейсе
  • редактирование запросов в интерфейсе Zabbix
  • позволяет использовать макросы
  • самое главное позволяет автоматизировать процесс добавления новых объектов на мониторинг

Сначала опишу, что имеется в хозяйстве:

1. 6 баз данных Oracle — 1 БД — 1 сервер + 1 резервный сервер под БД итого: получается 12 серверов.
2. Сервера для каждой БД объединены в кластер — итого 6 кластеров
3. На каждом сервера установлен Zabbix agent для AIX
4. На каждом сервере по скрипту zabora

Конфигурация Zabbix мониторинга:

  1. Zabbix сервер на CentOS 6.5 + TokuDB — 20 000 элементов — 380 nps (новых значений в секунду)
  2. Специально для мониторинга БД, был поднят Zabbix Proxy, так как запросы могут выполнятся достаточно долго, то не хотелось бы из-них подвешивать процессы сбора данных основного Zabbix’a — тоже CentOS 6.5 + TokuDB

В этой статье я не буду касаться настройки TokuDB, так как планирую еще одну статью почему мы перешли с InnoDB на TokuDB, и что нам это дало.

Установка Oracle Instant Client

Сначала необходимо установить Oracle Instant Client на машину с Zabbix Proxy:

У нас используется Oracle 11g, поэтому скачиваем RMP пакеты соответствующей версии с сайта Oracle.
Нам необходимы:

  • oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm — основные библиотеки
  • oracle-instantclient11.2-jdbc-11.2.0.4.0-1.x86_64.rpm — драйвера для java, для нашей задачи не нужны, но в хозяйстве пригодиться 🙂
  • oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm — клиент SQLplus
  • oracle-instantclient11.2-odbc-11.2.0.4.0-1.x86_64.rpm — библиотека для работы через ODBC
  • можно еще до кучи: oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm 🙂

в той папке в которую скачали все эти файлы делаем:

Настройка SQLplus для доступа к БД Oracle.

Для того чтобы клиент работал, необходимо в параметры окружение выставить необходимые переменные, для начала выставим их в своем профиле, прописав в файл $HOME/.bash_profile :

Перелогиниваемся и смотрим есть ли наши переменные в
Обратим внимание на переменную TNS_ADMIN=$ORACLE_HOME/network/admin
Этот путь необходимо создать, туда мы положим файл tnsnames.ora который используется библиотеками клиента для подключения к БД.

Создадим подключение к БД с именем TESTDB например.

Необходимо подставить нужные значения в HOST и SERVICE_NAME.
HOST — можно прописывать IP адрес или DNS имя (проверьте только, что оно ресолвится в IP)

Читайте также:  Использовать linux для работы

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

Видим, что клиент выдал приглашение, значит соединение прошло успешно, и совсем чтобы быть уверенными сделаем простенький запрос:

Конфигурация ODBC.

Официальные пакеты Zabbix Server и Zabbix Proxy в СentoOS скомпилированы с поддержкой unixODBC, поэтому после их установки у вас должен быть установленный пакет unixODBC, проверяем:
Вывод должен содержать следующие пакеты: unixODBC и oracle-instantclient11.2-odbc .

И сразу делаем такую проверку:

C большой долей вероятностью, вы получите libodbcinst.so.1 => not found , поэтому нужно сделать сим-линк:

Дальше редактируем файл:

После этого у нас должно получится подключится к БД Oracle через клиент ODBC (всегда используйте параметр -v, если будет ошибка подключения, скажет детально в чем проблема):

Так же для очистки совести, что у нас все работает, делаем запрос:

Поздравляю, Вы настроили ODBC.

Теперь нам необходимо добиться, чтобы Zabbix Proxy так же мог делать запросы через ODBC.

Для этого необходимо, чтобы в окружение процесса zabbix_proxy были доступны переменные, указанные выше, для это добавим в файл:

После этого обязательно перезапускаем zabbix_proxy:

Теперь мы сразу перейдем к настройке правил автообнаружения в терминологии Zabbix — это low level discovery rule.

Что такое LLD?
В принципе это любой элемент в Zabbix который может вернуть данные в JSON формате.
Так встроенный мониторинг баз данных в Zabbix всегда возвращает только 1 колонку и 1 строку. Почему-то в команде Zabbix до сиз пор не напишут для БД генератор LLD.

Придется написать скрипт который будет выдавать нам список объектов в JSON формате.

Шаблон и скрипт можно взять на GitHub

Скрипт написан на php, поэтому любителям bash прошу отвернуться в сторону 🙂
Комментировать сам скрипт не буду, думаю по коду все понятно, скажу только, что его нужно положить в папку которая задана в конфиге zabbix_proxy.conf (или zabbix_server.conf):

Скрипту передаются два параметра:
1. DSN — который вы указали в файле /etc/odbc.ini в квадратных скобках, в случае примера это ORA_TESTDB
2. тип объектов, список которых нужно вернуть: tablespaces или jobs

В случае jobs, скрипт вернет так же и <#JOBOWNER>, то есть владельца job’a.

Добавьте права на выполнения на скрипт и попробуйте его запустить:
# /usr/lib/zabbix/externalscripts/oracle.odbc.discovery ORA_TESTDB tablespaces , скрипт вернет примерно вот такой массив:

Наконец-то переходим к добавлению мониторинга БД Oracle в Zabbix.

Для начала пару слов о шаблоне:
1. общие ключи мониторинга Oracle взяты из скрипта zabora
2. чтобы шаблона заработал необходимо во вкладе Макросы самого хоста, добавить 3 пользовательских макроса:
— <$DSN1>— DSN который прописан в квадратных скобках файла /etc/odbc.ini (в примере ORA_TESTDB)
— <$ORA_USER>— пользователь с правами которого будет подключение к БД Oracle
— <$ORA_PASSWORD >— пароль для подключения к БД Oracle

Итак список правил LLD:

Чтобы правила отработали в первый раз, выставите в самих правила интервал, предположим 300 секунд, и через 5 минут у вас в элементах данных должны создаться новые.

Рассмотри сами правила и начнем с Tablespaces.

В принципе здесь все понятно, хочу обратить внимание на поле «Фильтр».
С помощью этого поля можно производить фильтрацию списка который возвращает нам сам элемент, в нашем примере нам не нужно добавлять на мониторинг системные tablespaces. Фильтрация происходит на основе правила regexp. Как видно на картинки поле <#TBSNAME>должно соответствовать правилу regexp Oracle System Excluded Tablespaces. Общие правила regexp описываются в Администрирование > Общие > Регулярные выражения и вызываются в фильтре через символ @.

Читайте также:  Драйвер nvidia для amd windows 10

Аналогично все и для job’ов:

Переходим к прототипам данных

Сам прототип

Картинка говорит сама за себя, но хочу обратить на один нюанс, а именно на поле «Единица измерения», по умолчанию в Zabbix используется 10-тичная система исчисления, что и следовало ожидать, поэтому все приставки Кило, Мега, Гига и т.д. это деление на 1000, что с точки зрения исчисления объема данных не совсем корректно, поэтому чтобы вы получали во вкладке «Последние данные» адекватные значения в Zabbix используется «специальные» единицы измерения: B и Bps — байт и байт в секунду (подробнее).
Но есть забавный момент (баг), в последних данных приставки K(ilo), M(ega), G(iga) переводятся в K, М, Г, а вот сама единица нет, поэтому в случае с гигабайтами у Ваc будет ГB.

Прототипы триггеров для tablespaces:

Диапазоны следующие:

  • при размере меньше 3ТБ ограничение в процентах
  • от 3ТБ до 10ТБ в гигабайтах
  • от 10ТБ в гигабайтах

Обратить внимание, что значения в условиях используется в байтах, а также обратить на порядок и используемых значений.
На первый взгляд может показаться лишним условие «Максимальный размер > 0»

Но это сделано для того чтобы приходило более информативное письмо для DBA.
В действиях вы указываете:

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

При таких настройках действия, Вам будет приходить нечто подобное:

Прототипы данных для job’ов:

Прототипы триггеров для job’ов:

Триггеры срабатывают если:

  • время выполнения job’a более 720 минут
  • если job завершился со статусом не равным «SUCCEEDED»

Источник

Администрирование БД Oracle

Monday, January 18, 2016

Установка Zabbix на CentOs/RHEL/Oracle linux 6.

# mysqladmin -u root password ‘pass_string’

Install repository configuration package:

# rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm

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

mysql> create database zabbix character set utf8 collate utf8_bin;

mysql> grant all privileges on zabbix.* to zabbix@localhost identified by ‘zabbix’;

# mysql -uroot zabbix # service zabbix-server start

php_value date.timezone Europe/Samara

# iptables -I INPUT -p tcp —dport 80 -m state —state NEW,ESTABLISHED -j ACCEPT

# iptables -I OUTPUT -p tcp —sport 80 -m state —state ESTABLISHED -j ACCEPT

# iptables -I INPUT -p tcp —dport 443 -m state —state NEW,ESTABLISHED -j ACCEPT

# iptables -I OUTPUT -p tcp —sport 443 -m state —state ESTABLISHED -j ACCEPT

# iptables -I INPUT -p tcp -m state —state NEW,ESTABLISHED -m tcp —dport 10051 -j ACCEPT

# iptables -I OUTPUT -p tcp —sport 10051 -m state —state ESTABLISHED -j ACCEPT

# service iptables save

# semanage port -a -t http_port_t -p tcp 10051
# setsebool -P httpd_can_network_connect true
#setsebool -P zabbix_can_network=true

Источник

Оцените статью