Pull to refresh

Установка DBforBix для Zabbix под Debian

Reading time3 min
Views7.6K
Приветствую!
Недавно заинтересовался мониторингом 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.props
6. Кидаем необходимые библиотеки в папку /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 — сервер Zabbix
ZabbixServer1.Port=10051 — порт сервера Zabbix
DatabaseList=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.xml
2. В Zabbix создать хост, имя которого должно совпадать с именем указанном в строке DatabaseList, в файле config.props. В моем случае имя хоста будет ORACLEDB1.
3. Активировать init.d скрипт командой:
insserv dbforbix

4. Запустить DBforBix
/etc/init.d/dbforbix start


Вот пожалуй и все. Единственное, для своей работы демон требует sun-java6-jre, для его установки на Debian 7 пришлось прописать старые репозитории и установить пакет оттуда.
Tags:
Hubs:
Total votes 3: ↑3 and ↓0+3
Comments7

Articles