Всем привет.
Никто не сталкивался с обходным решение уникальности ключа на одном хосте?
Ситуация следующая: на 1 хосте до 50 шаблонов, и соответственно 50 интерфейсов, на каждый по одинаковому набору элементов.
Изначально сделал скрипт, который запускает агент, и выкидывая "соль" обрабатывает остальное.
Пример:
server.vfs.file.exists[SERVER1,/usr/local/file]
Обработка такая:
/usr/sbin/zabbix_agent -t $ch[$3] | awk -F '|' '{print $2;}' | sed 's/\]//g'
Но сейчас понадобилось добавлять элементы с regexp и скрипт их обрабатывает очень коряво.
Варианта вижу два:
1. Привязка уникальности hostid + key_ + interfaceid (на шаблоне соответственно завести несколько одинаковых не получится).
Очень много надо менять в API/PHP. Не совсем понятно где...Направьте..
В БД поменял UNIQ на указанную выше связку, В CItemGeneral.php поменял(код могу дать), на один хост могу теперь добавлять одинаковые ключи с разными InterfaceID. Но при шаблоне эта схема не работает.
2. "Солить" сам ключ, и при чтении его сервером/прокси обрезать "соль".
По сути замена одна:
в Function: zbx_host_key_string
src/libs/zbxdbhigh/db.c поменять запрос. НО! Тут проблема с тем что у меня сервер на oracle а прокси на mysql. И REGEXP_REPLACE в mysql нет
Предложите плиз решение.
PS: Вообще конечно странно, оставлять уникальность только по ключу, при том что интерфейсов может быть много...
Никто не сталкивался с обходным решение уникальности ключа на одном хосте?
Ситуация следующая: на 1 хосте до 50 шаблонов, и соответственно 50 интерфейсов, на каждый по одинаковому набору элементов.
Изначально сделал скрипт, который запускает агент, и выкидывая "соль" обрабатывает остальное.
Пример:
server.vfs.file.exists[SERVER1,/usr/local/file]
Обработка такая:
/usr/sbin/zabbix_agent -t $ch[$3] | awk -F '|' '{print $2;}' | sed 's/\]//g'
Но сейчас понадобилось добавлять элементы с regexp и скрипт их обрабатывает очень коряво.
Варианта вижу два:
1. Привязка уникальности hostid + key_ + interfaceid (на шаблоне соответственно завести несколько одинаковых не получится).
Очень много надо менять в API/PHP. Не совсем понятно где...Направьте..
В БД поменял UNIQ на указанную выше связку, В CItemGeneral.php поменял(код могу дать), на один хост могу теперь добавлять одинаковые ключи с разными InterfaceID. Но при шаблоне эта схема не работает.
2. "Солить" сам ключ, и при чтении его сервером/прокси обрезать "соль".
По сути замена одна:
в Function: zbx_host_key_string
src/libs/zbxdbhigh/db.c поменять запрос. НО! Тут проблема с тем что у меня сервер на oracle а прокси на mysql. И REGEXP_REPLACE в mysql нет

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