URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 90808
[ Назад ]

Исходное сообщение
"Zabbix добавление данных в DB"

Отправлено Zabbix добавление данных в DB , 25-Янв-11 10:58 
всем привет!написал скрипт для инсерта данных по хостам напрямую(Ручками вколачивать поряка 100 машин уж очень Лень!!) в db Zabbix
Вижу все в вэб морде,Однако, при внесении, изменений (Добавление в группы,прикрепление к шаблонам) ругается на дублирующую запись!
Не могу понять zabbix где-то запоминает ID последнего добавленного hosta/группы?
сопсно скрипт:

#!/bin/bash -x
FILE="/home/zabbix/bel/*"
empty="''"
IP=`grep '[0-9]\{1,4\}\.[0-9]\{1,4\}\.[0-9]\{1,4\}\.[0-9]\{1,4\}' $FILE|awk '{print$3}'|grep -v [a-z]`

echo "insert into groups(groupid, name, internal) select coalesce(max(groupid), 0)+1, 'Belgorod', 0 from groups where not exists(select * from groups where name = 'Belgorod');"|mysql -s -u zabbix -pzabbix -Dzabbix

for item in $IP
do
#echo $item
echo "INSERT INTO hosts (hostid,ip,host,dns,status,error,ipmi_username,ipmi_password,ipmi_error,snmp_error) SELECT coalesce(max(hostid),0)+1,'$item','Host_$item',$empty,0,$empty,$empty,$empty,$empty,$empty from hosts where not exists(SELECT * FROM hosts where ip='$item');"|mysql -s -u zabbix -pzabbix -Dzabbix

echo "insert into hosts_groups (hostgroupid,hostid,groupid) select coalesce(max(hostgroupid), 0)+1, (select max(hostid) from hosts), (select groupid from groups where name = 'Belgorod') from hosts_groups;"|mysql -s -u zabbix -pzabbix -Dzabbix

done
есть соображения по сабжу?


Содержание

Сообщения в этом обсуждении
"Zabbix добавление данных в DB"
Отправлено McLeod095 , 25-Янв-11 11:09 
>[оверквотинг удален]
> #echo $item
> echo "INSERT INTO hosts (hostid,ip,host,dns,status,error,ipmi_username,ipmi_password,ipmi_error,snmp_error)
> SELECT coalesce(max(hostid),0)+1,'$item','Host_$item',$empty,0,$empty,$empty,$empty,$empty,$empty
> from hosts where not exists(SELECT * FROM hosts where ip='$item');"|mysql -s
> -u zabbix -pzabbix -Dzabbix
> echo "insert into hosts_groups (hostgroupid,hostid,groupid) select coalesce(max(hostgroupid),
> 0)+1, (select max(hostid) from hosts), (select groupid from groups where name
> = 'Belgorod') from hosts_groups;"|mysql -s -u zabbix -pzabbix -Dzabbix
> done
> есть соображения по сабжу?

Не разбирался со структурой Zabbix, но мне почему то кажется что лучше все таки сделать эти операции через Zabbix API, если конечно у Вас версия 1.8 и выше. Если версия ниже то советую обновиться, благо это делается довольно просто. Zabbix API описан на сайте в разделе документации. Есть скрипты для работы на PHP и Python. Сам пока не освоил работу через API пока все делаю через импорт xml. Благо достаточно копи паста и небольшой правки.


"Zabbix добавление данных в DB"
Отправлено Zabbix добавление данных в DB , 25-Янв-11 12:01 
> Не разбирался со структурой Zabbix, но мне почему то кажется что лучше
> все таки сделать эти операции через Zabbix API, если конечно у
> Вас версия 1.8 и выше. Если версия ниже то советую обновиться,
> благо это делается довольно просто. Zabbix API описан на сайте в
> разделе документации. Есть скрипты для работы на PHP и Python. Сам
> пока не освоил работу через API пока все делаю через импорт
> xml. Благо достаточно копи паста и небольшой правки.

Пример подобного *.xml запостить можете?


"Zabbix добавление данных в DB"
Отправлено McLeod095 , 25-Янв-11 12:25 
>> Не разбирался со структурой Zabbix, но мне почему то кажется что лучше
>> все таки сделать эти операции через Zabbix API, если конечно у
>> Вас версия 1.8 и выше. Если версия ниже то советую обновиться,
>> благо это делается довольно просто. Zabbix API описан на сайте в
>> разделе документации. Есть скрипты для работы на PHP и Python. Сам
>> пока не освоил работу через API пока все делаю через импорт
>> xml. Благо достаточно копи паста и небольшой правки.
> Пример подобного *.xml запостить можете?

А зачем?
Пример смотрите при экспорте из Zabbix.
Аналогично что бы потом загрузить выбираете импорт и все.
Очень удобно когда куча однотипных компов заводится, один завели, все прописали, после этого экспортировали его в xml. ну а дальше прошлись sed'ом кое-что поменяли и обратно импорт.


"Zabbix добавление данных в DB"
Отправлено mmlogin , 29-Май-11 21:25 
вот что происходит при добавлении пользователя:
                  12 Query     begin
                   12 Query     SELECT u.userid  FROM users u  WHERE u.alias='temp' AND ((u.userid  BETWEEN 000000000000000 AND 099999999999999))
                   12 Query     SELECT nextid FROM ids WHERE nodeid=0 AND table_name='users' AND field_name='userid'
                   12 Query     UPDATE ids SET nextid=nextid+1 WHERE nodeid=0 AND table_name='users' AND field_name='userid'
                   12 Query     SELECT nextid FROM ids WHERE nodeid=0 AND table_name='users' AND field_name='userid'
                   12 Query     INSERT INTO users (userid, name, surname, alias, passwd, url, autologin, autologout, lang, theme,
                                refresh, rows_per_page, type)  VALUES (16,'temp','temp','temp','3d801aa532c1cec3ee82d87a99fdf63f','',0,0,'en_gb','default.css',30,50,1)
                   12 Query     commit

т.е. надо править таблицу
echo 'select * from ids;' | mysql -t zabbix
+--------+--------------------+----------------+--------+
| nodeid | table_name         | field_name     | nextid |
+--------+--------------------+----------------+--------+
|      0 | acknowledges       | acknowledgeid  |    406 |
|      0 | actions            | actionid       |     13 |
|      0 | applications       | applicationid  |    190 |
|      0 | auditlog           | auditid        |  16972 |
|      0 | auditlog_details   | auditdetailid  |  10920 |
|      0 | conditions         | conditionid    |     78 |
|      0 | dchecks            | dcheckid       |      4 |
|      0 | drules             | druleid        |      4 |
|      0 | events             | eventid        |  64292 |
|      0 | functions          | functionid     |  15366 |
|      0 | groups             | groupid        |     15 |
|      0 | hostmacro          | hostmacroid    |      7 |
|      0 | hosts              | hostid         |  10175 |
|      0 | hosts_groups       | hostgroupid    |    476 |
|      0 | hosts_templates    | hosttemplateid |    221 |
|      0 | housekeeper        | housekeeperid  |  17332 |
|      0 | httpstep           | httpstepid     |     15 |
|      0 | httpstepitem       | httpstepitemid |    120 |
|      0 | httptest           | httptestid     |     14 |
|      0 | httptestitem       | httptestitemid |     78 |
|      0 | items              | itemid         |  27250 |
|      0 | items_applications | itemappid      |   4206 |
|      0 | media              | mediaid        |     10 |
|      0 | media_type         | mediatypeid    |      4 |
|      0 | operations         | operationid    |     49 |
|      0 | opmediatypes       | opmediatypeid  |      5 |
|      0 | profiles           | profileid      |   1405 |
|      0 | rights             | rightid        |     55 |
|      0 | triggers           | triggerid      |  15202 |
|      0 | users              | userid         |     16 |
|      0 | users_groups       | id             |     47 |
|      0 | user_history       | userhistoryid  |      7 |
|      0 | usrgrp             | usrgrpid       |     13 |
+--------+--------------------+----------------+--------+