Приветствую!
Недавно заинтересовался мониторингом Oracle в Zabbix. Немного погуглив нашёл несколько вариантов, чтобы выполнить поставленную задачу и, немного почитав решил остановиться на DBforBix. Но с данным демоном возникли небольшие сложности, т.к. в официальной вики доступна инструкция для RHEL, да и прилагаемом пакете init файл заточен под RHEL. Для меня это стало небольшой проблемой, т.к. мой Zabbix крутится на Debian. В связи с чем пришлось немного переделать код. Возможно это кому-нибудь пригодится.
1. Для начала необходимо скачать сам пакет с официального сайта или с sourceforge.
2. После распаковать и перенести содержимое архива в папку
3. Далее копируем файл
4. Даем права на выполнение для
5. Переименовываем файл
6. Кидаем необходимые библиотеки в папку
На этом инструкция заканчивается и теперь необходимо подправить пару файлов, для нормальной работоспособности демона в Debian.
1. В начало файла вставляем что-то наподобии этого:
2. Комментируем строчку
3. Проверка активности интерфейса в RHEL:
Меняем данные строки на:
Здесь все просто, меняем все параметры согласно инструкции и комментариям (в моем случае настройки касаются только БД Oracle):
В общем все понятно. Единственное, что меня заинтересовало — строка
Почему orabbix я так и не понял, но переписал на
т.к. в init.d все ссылается на данный файл, и соответственно создал файл
В официальной вики лежит скрипт, который прекрасно отрабатывается в Oracle 10 версии, для 11 — согласно вики требуются небольшие изменения.
Перед запуском необходимо выполнить следующие шаги:
1. Импортировать в Zabbix шаблон для Oracle, расположенный тут:
2. В Zabbix создать хост, имя которого должно совпадать с именем указанном в строке
3. Активировать init.d скрипт командой:
4. Запустить DBforBix
Вот пожалуй и все. Единственное, для своей работы демон требует
Недавно заинтересовался мониторингом Oracle в Zabbix. Немного погуглив нашёл несколько вариантов, чтобы выполнить поставленную задачу и, немного почитав решил остановиться на DBforBix. Но с данным демоном возникли небольшие сложности, т.к. в официальной вики доступна инструкция для RHEL, да и прилагаемом пакете init файл заточен под RHEL. Для меня это стало небольшой проблемой, т.к. мой Zabbix крутится на Debian. В связи с чем пришлось немного переделать код. Возможно это кому-нибудь пригодится.
1. Начальная установка
1. Для начала необходимо скачать сам пакет с официального сайта или с sourceforge.
2. После распаковать и перенести содержимое архива в папку
/opt/dbforbix/. 3. Далее копируем файл
/opt/dbforbix/init.d/dbforbix в /etc/init.d/dbforbix. 4. Даем права на выполнение для
/etc/init.d/dbforbix и /opt/dbforbix/run.sh. 5. Переименовываем файл
/opt/dbforbix/conf/config.props.sample в /opt/dbforbix/conf/config.props и /opt/dbforbix/conf/oraclequery.props.sample в /opt/dbforbix/conf/oraclequery.props6. Кидаем необходимые библиотеки в папку
/opt/dbforbix/lib/. В нашем случае нас интересует библиотека ojdbc6.jar. (Скачать все библиотеки можно здесь)На этом инструкция заканчивается и теперь необходимо подправить пару файлов, для нормальной работоспособности демона в Debian.
2. Правка /etc/init.d/dbforbix
1. В начало файла вставляем что-то наподобии этого:
### BEGIN INIT INFO # Provides: dbforbix # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: # Short-Description: dbforbix ### END INIT INFO
2. Комментируем строчку
/etc/rc.d/init.d/functions и ниже прописываем:/lib/lsb/init-functions
3. Проверка активности интерфейса в RHEL:
# Get config. . /etc/sysconfig/network # Check that networking is up. [ "${NETWORKING}" = "no" ] && exit 0
Меняем данные строки на:
state=`/sbin/ip link | awk '/eth0/{print $9}'` [ "${STATE}" = "DOWN" ] && exit 0
3. Правка /opt/dbforbix/conf/config.props
Здесь все просто, меняем все параметры согласно инструкции и комментариям (в моем случае настройки касаются только БД Oracle):
ZabbixServerList=ZabbixServer1 — описание Zabbix серверовZabbixServer1.Address=10.10.10.10 — сервер ZabbixZabbixServer1.Port=10051 — порт сервера ZabbixDatabaseList=ORACLEDB1 — описание подключаемых БДORACLEDB1.Url=jdbc:oracle:thin:@10.10.10.11:1521:name_of_sid — настройка коннекта к БДORACLEDB1.User=ZABBIX — пользователь (который мы укажем далее)ORACLEDB1.Password=ZABBIX — пароль (который мы укажем далее)ORACLEDB1.DatabaseType=oracle — тип БД В общем все понятно. Единственное, что меня заинтересовало — строка
#pidFile DBforBIX.PidFile=./logs/orabbix.pid
Почему orabbix я так и не понял, но переписал на
#pidFile DBforBIX.PidFile=./logs/dbforbix.pid
т.к. в init.d все ссылается на данный файл, и соответственно создал файл
dbforbix.pid в директории /opt/dbforbix/logs/.4. Скрипт для Oracle
В официальной вики лежит скрипт, который прекрасно отрабатывается в Oracle 10 версии, для 11 — согласно вики требуются небольшие изменения.
CREATE USER ZABBIX IDENTIFIED BY <REPLACE WITH PASSWORD> DEFAULT TABLESPACE SYSTEM TEMPORARY TABLESPACE TEMP PROFILE DEFAULT ACCOUNT UNLOCK; -– 2 Roles for ZABBIX GRANT CONNECT TO ZABBIX; GRANT RESOURCE TO ZABBIX; ALTER USER ZABBIX DEFAULT ROLE ALL; –- 5 System Privileges for ZABBIX GRANT SELECT ANY TABLE TO ZABBIX; GRANT CREATE SESSION TO ZABBIX; GRANT SELECT ANY DICTIONARY TO ZABBIX; GRANT UNLIMITED TABLESPACE TO ZABBIX; GRANT SELECT ANY DICTIONARY TO ZABBIX;
Запуск DBforBix
Перед запуском необходимо выполнить следующие шаги:
1. Импортировать в Zabbix шаблон для Oracle, расположенный тут:
/opt/dbforbix/template/template_oracle.xml2. В Zabbix создать хост, имя которого должно совпадать с именем указанном в строке
DatabaseList, в файле config.props. В моем случае имя хоста будет ORACLEDB1.3. Активировать init.d скрипт командой:
insserv dbforbix
4. Запустить DBforBix
/etc/init.d/dbforbix start
Вот пожалуй и все. Единственное, для своей работы демон требует
sun-java6-jre, для его установки на Debian 7 пришлось прописать старые репозитории и установить пакет оттуда.