Pull to refresh

Comments 23

Получаем ошибку: Cannot connect to ODBC DSN:[SQL_ERROR]:[01000][0][[unixODBC][Driver Manager]Can't open lib '/usr/lib/oracle/11.2/client64/lib/libsqora.so.11.1': file not found]|.

Что самое интересное, дальше по тексту есть и решение:
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib64:/usr/lib:$ORACLE_HOME/bin

Только применить его нужно не в скрипте, а перед стартом Заббикса. Например, в systemd-шном service файле:
[Unit]
 Description=Zabbix Server Daemon
 After=syslog.target network.target

[Service]
 Type=forking

 Environment=ORACLE_HOME=...
 Environment=LD_LIBRARY_PATH=...
 Environment=TNS_ADMIN=/opt/oracle

 ExecStart=/usr/sbin/zabbix_server
 ExecReload=/usr/sbin/zabbix_server -R config_cache_reload
 PIDFile=/tmp/zabbix_server.pid

 User=zabbix
 Group=zabbix

[Install]
 WantedBy=multi-user.target

(пример из «живого» конфига)
Пробовали этот способ, Ошибка оставалась.
Возможно поможет
# echo /usr/lib/oracle/12.1/client64/lib >> /etc/ld.so.conf.d/Oracle12.conf
после чего настраиваем привязку динамических ссылок при помощи ldconfig
# ldconfig

Это правда для клиента, но думаю ход мысли понятен
Спасибо, попробую на клоне сервака. Надеюсь, что-то сработает.
Не мое
недавно просто статья попадалась
не сочтите за рекламу
но оставлю здесь ссылку
https://www.opennet.ru/tips/2996_php_oracle_centos.shtml
спасибо, поэксперементирую.
https://habrahabr.ru/post/226365/
Поймите суть проблемы, тестите через isql -v и из под пользователя zabbix

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

Если честно, то пока забил на это. Работает по указанной схеме. Не часто приходится мониторить бд. А текущей реализации хватает.

Но настроен мониторинг через unixODBC postgres и mysql.

Ну в комментариях решение указали, нужно просто при старте заббикса сервера передать ему переменные окружения как у Вас в скрипте:
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib64:/usr/lib:$ORACLE_HOME/bin
export TNS_ADMIN=$ORACLE_HOME/network/admin 


mcleod095 дал совет.
Просто на продакшене проверенно, правда с zabbix 2.8 — облегчает жизнь в разы, так как можно нормальные запросы по длине передавать и макросы и так далее, гораздо удобнее чем через скриптом.
Недавно как раз переносил мониторинг на новые сервера и вообщем немного из проверенного.
Можно переменные для оракла прописать и в systemd файл а можно и в /etc/sysconfig/zabbix-server (хотя это больше для редхат подобных систем). Если прописывать /etc/sysconfig/zabbix-server то надо прописывать вот так
ORACLE_HOME=/usr/lib/oracle/11.2/client64/
TNS_ADMIN=/etc
NLS_LANG=American_America.AL32UTF8
export ORACLE_HOME
export TNS_ADMIN
export NLS_LANG

если прописать
export ORACLE_HOME=/usr/lib/oracle/11.2/client64/
то не видит их zabbix_server
Лучше конечно так не делать.
создаете каталог /etc/systemd/system/zabbix-server.service.d
и там уже файл env.conf
в который включаете
[Service]
Environment=ORACLE_HOME=…
Environment=LD_LIBRARY_PATH=…
Environment=TNS_ADMIN=/opt/oracle

Так при обновлении файла запуска не потеряются изменения
Нет, не пробовали. Читал как-то описание, но, видимо упустил момент, где orabix позволял выполнять произвольные скрипты. На сколько я понял, плагин призван мониторить характеристики самого инстанса. Надо будет перечитать инструкцию, спасибо.
Я когда-то тоже задался вопросом мониторинга БД в Zabbix. Пробовал Orabbix — не понравилось.
Решил написать свой велосипед. Цели написания собственного плагина: удобство конфигурации, мониторинг любых видов БД.
Если Вам интересно, то можете посмотреть мой репозиторий на GitHub. Если будут предложения по улучшению — буду рад включить их в будущие версии.
Спасибо, обязательно ознакомлюсь.
Я использовал для мониторинга Pyora.
На питоне, с использованием библиотеки cx_Oracle.
Скрипт легко дорабатывается под свои нужды.
Для коннекта используется стандартный клиент Oracle.

Спасибо, буду знать о еще одной возможности решить вопросы мониторинга баз.

Способ то хороший, но шибко умный — создаётся множество проверок и на каждую итерацию отдельный коннект к базе.
Вот думаю, как его красиво переделать на zabbix trapper.
Таки допилил проверку параметров базы через zabbix trapper.
GitHub
Может кому сгодится.
Sign up to leave a comment.