DCImanager хранит данные в базе данных MySQL. Название базы данных — dcimgr. Для обеспечения целостности данных используются внешние ключи с разным типом связанности: удалёние ссылающихся на объект записей при удалёнии объекта, запрет на удалёние записей при наличии ссылок на них. Таблицы, имеющие префикс v_*, являются представлениями. Таблицы можно разделить на несколько типов:
- базовые объекты;
- серверы;
- инвентаризация;
- оборудование;
- типы серверов;
- сети;
- статистика;
- служебные записи.
Часть таблиц и полей таблиц не описывается в статье, так как используется только для внутренних целей. Структура базы данных может меняться с расширением функциональности панели управления.
Базовые объекты
location
Локации:
- id — код записи;
- name — наименование;
- mainip — главный IP-адрес;
- ip_block — тип IP-адресов;
- ssh_port — номер SSH-порта;
- admusr — имя суперпользователя;
- comment — комментарий;
- setup_problem — есть ли проблемы при установке;
- serversearch_enabled — включён ли поиск серверов;
- serversearch_ip — IP-адрес DCImanager для поиска серверов;
- serversearch_mask — сетевая маска для поиска серверов;
- serversearch_iprange — диапазон IP-адресов для поиска серверов;
- serversearch_gateway — шлюз для поиска серверов;
- nameservers — отдельные сервера имён для локации.
racks
Стойки:
- id — код записи;
- name — наименование;
- owner — код владельца. Ссылка на таблицу users;
- type — тип стойки;
- pos_left — координата по x;
- pos_top — координата по y;
- pos_angle — угол наклона;
- placed — размещено устройство на карте ЦОД или нет;
- location — код локации. Ссылка на таблицу location;
- temperature — температура;
- humidity — влажность;
- notes — примечание;
- srvsearch — разрешён ли поиск серверов;
- racksize — размер стойки;
- servicesize — размер служебного оборудования;
- height — высота стойки в юнитах.
sellers
Продавцы:
- id — код записи;
- name — имя.
users
Пользователи:
- id — код записи;
- name — имя;
- password — пароль;
- level — уровень доступа:
- 16 — пользователь;
- 17 — оператор;
- 29 — администратор.
- enabled — включен или нет.
iso
ISO-образы:
- id — код записи;
- name — наименование;
- user — код владельца. Ссылка на таблицу users;
- filename — путь к директории с образов;
- size — размер образа;
- deletetime — время, когда образ будет удалён;
- shared — является ли образ общедоступным;
- description — описание;
- status — статус:
- 0 — образ скачивается;
- 1 — образ готов к работе.
Серверы
servers
Серверы:
- id — код записи;
- name — наименование;
- ip — IP-адрес;
- hostname — доменное имя;
- mac — MAC-адрес;
- notes — примечание;
- dmi_mem — оперативная память;
- dmi_proc — процессор;
- chassis_templ — код типа платформы. Ссылка на таблицу chassis_templ;
- parent_chassis — родительское шасси. Ссылка на таблицу servers;
- gen_chassis_name — имя конфигурации;
- is_broken_srv — сломан ли сервер;
- sent_to_repair — отправлен ли сервер в ремонт;
- oper_fail_problem — есть ли проблемы при выполнении операций;
- start_operation — наименование начавшейся операции;
- cancel_operation — наименование отменённой операции;
- last_add_ip — последний добавленный IP-адрес;
- last_remove_ip — последний удалённый IP-адрес;
- last_power_action — последнее действие с питанием;
- localspeed — скорость локального соединения;
- user_notes — пользовательское примечание;
- rack — код стойки. Ссылка на таблицу racks;
- owner — код владельца. Ссылка на таблицу users;
- disabled — отключен ли сервер;
- manual_dis — отключен ли вручную;
- cpu — процессор;
- cpucnt — количество процессоров;
- corecnt — количество ядер;
- cpuperf — производительность процессора;
- type — код типа сервера. Ссылка на таблицу typelist
- ram — оперативная память (по результатам диагностики);
- chassis_ram — оперативная память (зависит от типа платформы);
- ramperf — производительность оперативной памяти;
- raid — включён ли аппаратный RAID;
- is_new — новый сервер или нет;
- hwid — id сервера;
- motherboard — материнская плата;
- os — операционная система;
- search_state — состояние для поиска серверов;
- hwproblem — имеются ли проблемы с оборудованием;
- forcelock — защищён ли сервер;
- srvsize — размер;
- srvsize2 — размер (старые типы серверов);
- seller — код продавца. Ссылка на таблицу sellers;
- purchasedate- дата закупки;
- warranty — гарантия (мес.);
- price — цена;
- sellerserial — серийный номер;
- is_write_off — сломан ли сервер;
- wwn — код wwn сервера. Ссылка на таблицу wwn;
- temperature — температура;
- humidity — влажность;
- tempdate — дата измерения температуры;
- tempsource — источник температуры;
- vlan_net — код VLAN. Ссылка на таблицу vlans;
- unit — номер юнита;
- unit2 — номер юнита (старые типы серверов);
- ip_block — тип IP-адресов;
- allow_netflow — разрешён ли netflow;
- hwerror — информация об ошибке;
- is_miltinode — является ли сервер шасси;
- parent — шасси;
- idelivery — код поставки. Ссылка на таблицу idelivery;
- placement — размещение;
- write_off_date — дата поломки сервера;
- recipe_running — запущен ли рецепт;
- start_recipe — дата запуска рецепта;
- recipe — наименование рецепта;
- raid_error — есть ли ошибки RAID.
server2server
Таблица для связи двух серверов:
- src — код первого сервера. Ссылка на таблицу servers;
- dst — код второго сервера. Ссылка на таблицу servers.
chassis_templ
Типы платформ:
- id — код записи;
- name — название;
- hdd_count — количество HDD-слотов;
- pci_count — количество PCI-слотов;
- cpu_socket_count — количество CPU-сокетов;
- max_ram — максимальный размер RAM;
- chassis_type — тип;
- blade_count — количество слотов под серверы;
- srvsize — размер сервера.
connections
Подключения сервера:
- id — код записи;
- server — код сервера. Ссылка на таблицу servers;
- port — занимаемый порт;
- service — закрытое или нет подключение.
cpu_server_slot
Процессоры, установленные в серверы:
- id — код записи;
- server — код сервера. Ссылка на таблицу servers;
- cpu_type — код процессора. Ссылка на таблицу cpu_type;
- number — номер, занимаемого слота.
cpu_to_types
Процессоры (Используется для типов серверов):
- id — код записи;
- type — код типа сервера. Ссылка на таблицу typelist;
- cpu — наименование.
cpu_type
Процессор (Используется для новых серверов):
- id — код записи;
- name — полное наименование;
- corecnt — количество ядер;
- notes — примечание;
- alias_name — сокращённое наименование.
cpulist
Список процессоров (Таблица заполняется после прохождения диагностики):
- id — код записи;
- name — наименование;
- corecnt — количество ядер.
hddlist
Список жёстких дисков (таблица заполняется после прохождения диагностики):
- id — код записи;
- hdd — наименование;
- server — код сервера. Ссылка на таблицу servers;
- size — размер;
- perf — производительность;
- smart — SMART-параметры.
hdd_server_slot
жёсткие диски, установленные в серверы:
- id — код записи;
- server — код сервера. Ссылка на таблицу servers;
- hdd_type — код жёсткого диска. Ссылка на таблицу hdd_type;
- number — номер занимаемого слота;
- isdiag — проведена ли диагностика.
hdd_standart
Типы жёстких дисков:
- id — код записи;
- name — наименование;
- perfomance — скорость чтения;
- smart — параметры SMART
- isdiag — проведена ли диагностика.
hdd_type
жёсткий диск:
- id — код записи;
- name — наименование;
- size — размер;
- type — код типа. Ссылка на таблицу hdd_standart;
- standart — код типа. Ссылка на таблицу hdd_standart.
hddperfom
Производительность жёстких дисков:
- id — код записи;
- server_slot — код слота. Ссылка на таблицу hdd_server_slot;
- perf — производительность;
- smart — параметры SMART;
- serial — серийный номер.
pci_server_slot
PCI-устройства, установленные в серверы:
- id — код записи;
- server — код сервера. Ссылка на таблицу servers;
- pci_type — код типа pci-устройства. Ссылка на таблицу pci_type;
- number — номер занимаемого слота.
pci_type
Типы PCI-устройств:
- id — код записи;
- name — наименование;
- type — наименование типа.
wwn
Код wwn сервера:
- id — код записи;
- name — wwn.
Инвентаризация
icategory
Категории запчастей:
- id — код записи;
- name — наименование.
idelivery
Поставки:
- id — код записи;
- date — дата;
- iseller — код поставщика. Ссылка на таблицу iseller;
- photo_path — путь к файлу с накладной;
- name — наименование;
- overall_price — цена.
ifile
Таблица хранит hash файлов, указанных в поставке:
- id — код записи;
- hash — hash записи;
- idelivery — код поставки. Ссылка на таблицу idelivery.
inventory
Инвентаризация:
- id — код записи;
- name — наименование;
- date — дата.
inventory_object
Объекты инвентаризации:
- id — код записи;
- name — наименование;
- type — тип объекта;
- 0 — стойка;
- 1 — запчасть.
- status — статус;
- inventory — код инвентаризации. Ссылка на таблицу inventory;
- inventorized — инвентаризован или нет.
inventory_object_snapshot
Подробности инвентаризации объекта:
- id — код записи;
- serial — серийный номер;
- inventory_object — код объекта. Ссылка на таблицу inventory_object;
- fact — фактическое значение (найден ли объект);
- dbvalue — значение с БД (найден ли объект);
- notes — примечание.
iseller
Поставщики:
- id — код записи;
- name — наименование.
ispare
Запчасти:
- id — код записи;
- ispare_type — код типа. Ссылка на таблицу ispare_type;
- idelivery — код поставки. Ссылка на таблицу idelivery;
- purchasedate — дата закупки;
- serial — серийный номер;
- status — статус:
- 0 — новая запчасть;
- 1 — подтверждённая запчасть;
- placement — размещение:
- 0 — в инвентаризации;
- 1 — в сервере;
- 2 — в оборудовании;
- 3 — уничтожено;
- 4 — сломано;
- 5 — в ремонте;
- 6 — неизвестно.
- price — цена;
- servers — код сервера. Ссылка на таблицу servers;
- equipment — код оборудования. Ссылка на таблицу equipment;
- broken — сломана или нет;
- note — примечание.
ispare_type
Типы запчастей:
- id — код записи;
- name — наименование.
Оборудование
equipment
Оборудование:
- id — код записи;
- name — наименование;
- ip — ip адрес;
- hostname — URL-адрес;
- snmpuser — SNMP-пользователь;
- snmppass — SNMP-пароль;
- snmppriv — SNMP-уровень доступа;
- snmpversion — SNMP-версия;
- snmpcommunity — SNMP-community;
- snmpauthlevel — SNMP-уровень авторизации;
- telnetuser — Telnet-пользователь;
- telnetpass — Telnet-пароль;
- sshuser — SSH-пользователь;
- sshpass — SSH-пароль;
- rack — код стойки. Ссылка на таблицу racks;
- owner — код владельца. Ссылка на таблицу users;
- type — тип устройства;
- device — устройство;
- notes — примечания;
- statdate — дата сбора статистики;
- eqsize — размер в стойке;
- seller — код поставщика. Ссылка на таблицу sellers;
- purchasedate — дата покупки;
- warranty — гарантия (в месяцах);
- price — цена;
- is_service — служебный или нет;
- log_path — файл журнала;
- pos_left — координата по x;
- pos_top — координата по y;
- pos_angle — угол наклона;
- width — ширина;
- depth — глубина;
- height — высота;
- placed — размещено устройство на карте ЦОД или нет;
- unit — номер занимаемого юнита;
- sellerserial — серийный номер;
- stat_poll_type — способ сбора статистики;
- status_poll_type — способ получения информации о текущем статусе;
- web_url — url веб-интерфейса;
- con_fail_problem — есть ли проблемы при установке связи;
- wsman_user — wsman пользователь;
- wsman_pass — wsman пароль;
- wsman_port — wsman порт;
- is_ip_alloc — занимает IP-адрес или нет;
- pseudourl — имя файла, используемого для проксирования IPMI;
- depr_snmppass, depr_telnetpass, depr_sshpass, depr_wsman_pass — временные копии зашифрованных паролей.
eq_params
Датчики оборудования:
- id — код записи;
- device — код оборудования. Ссылка на таблицу equipment;
- identity — наименование;
- strval — строчное значение;
- intval — целочисленное значение;
- floatval — значение с плавающей точкой;
- notes — примечание.
eq_ports
Порты оборудования:
- id — код записи;
- device — код оборудования. Ссылка на таблицу equipment;
- identity — наименование;
- descr — описание;
- notes — примечание;
- adm_status — статус, выставленный в DCImanager:
- 0 — неизвестно;
- 1 — включен;
- 2 — выключен.
- oper_status — статус на устройстве:
- 0 — неизвестно;
- 1 — включен;
- 2 — выключен.
- isservice — Служебный порт или нет.
equip2vlan
Таблица для связи таблиц оборудование и VLAN:
- equipment — код оборудования. Ссылка на таблицу equipment;
- vlans — код VLAN. Ссылка на таблицу VLAN;
- e_pvlan_type — типы VLAN:
- 0 — обычный VLAN;
- 1 — выставляется, если на разных коммутаторах этот VLAN принадлежит разным типам, хотя должен быть быть во всей сети одного типа;
- 2 — primary VLAN;
- 3 — isolated VLAN.
pdu_ports
Порты PDU:
- id — код записи;
- port — номер порта;
- powercounter — счётчик питания;
- powerload — загрузка питания;
- statdate — дата последнего сбора статистики.
port2port
Таблица для связи двух портов:
- link1 — код первого порта. Ссылка на таблицу switch_ports;
- link2 — код второго порта. Ссылка на таблицу switch_ports.
port_agregate
Агрегация портов:
- id — код записи;
- switch_ports — код порта коммутатора. Ссылка на таблицу switch_ports;
- name — наименование;
- is_primary — первичная или нет.
router_iface
Интерфейс маршрутизаторов:
- id — код записи;
- device — код оборудования. Ссылка на таблицу equipment;
- iface — интерфейс;
- net — сеть;
- notes — примечание.
router_route
Таблица маршрутизации:
- id — код записи;
- device — код оборудования. Ссылка на таблицу equipment;
- ip — IP-адрес;
- dest — IP-адрес пункта назначения.
router_vlan
Маршрутизация сетей:
- id — код записи;
- device — код оборудования. Ссылка на таблицу equipment;
- vid — код VLAN;
- vname — наименование VLAN.
switch_ports
Порты коммутатора:
- id — код записи;
- port — номер порта;
- speed — скорость порта;
- duplex — режим порта:
- 0 — не установлен;
- 1 — полудуплекс;
- 2 — полный дуплекс;
- 3 — несогласованный;
- 4 — авто.
- if_index — индекс интерфейса;
- dot_1d_base_port — номер порта, содержащего информацию об организации моста;
- vlan — код VLAN. Ссылка на таблицу VLAN;
- mapped_vlan — код PVLAN. Ссылка на таблицу vlans;
- isuplink — uplink;
- istrunk — работает в режиме Trunk;
- trunk_members — члены trunk. Ссылка на таблицу vlans.
ipmi_sessions
Сессии проксирования IPMI:
- ipmi — id IPMI. Ссылка на таблицу equipment;
- longtask — id фоновой задачи;
- user — имя пользователя на сервере проксирования, сгенерированное для этой сессии.
Типы серверов
typelist
Типы серверов:
- id — код записи;
- name — наименование;
- corecnt — количество ядер;
- cpuperf — производительность процессора;
- hddcnt — количество жёстких дисков;
- hddperf — производительность жёстких дисков;
- hddsize — размер жёстких дисков;
- ram — размер оперативной памяти;
- ramperf — производительность оперативной памяти;
- srvsize — размер в стойке;
- raid — используется ли аппаратный RAID;
- notes — примечание;
- allow_netflow — запрет netflow;
- disable_ipmi_autoadd — не добавлять IPMI автоматически;
- chassis_type — тип корпуса;
- blade_count — количество слотов под серверы;
- localspeed — скорость локального соединения;
- smart_params — параметры SMART;
srvtype_check
Таблица соответствия серверов и типов серверов:
- id — код записи;
- server — код сервера. Ссылка на таблицу servers;
- startdate — дата проведения тестирования ОС для данного типа;
- type — код типа сервера. Ссылка на таблицу typelist.
os_to_types
Шаблоны ОС для типов серверов:
- id — код записи;
- type — код типа сервера. Ссылка на таблицу typelist;
- os — наименование.
Сети
ip
IP-адреса:
- id — код записи;
- ip — IP-адрес;
- owner — код владельца. Ссылка на таблицу users;
- domain — доменное имя;
- gateway — адрес шлюза;
- netmask — маска сети.
ip2vlan
IP-адреса в VLAN:
vlans
VLAN:
- id — код записи;
- name — наименование;
- notes — примечание;
- is_service — защищённая сеть или нет;
- pvlan_type — тип VLAN:
- 0 — обычный VLAN;
- 1 — выставляется, если на разных коммутаторах этот VLAN принадлежит разным типам, хотя должен быть быть во всей сети одного типа;
- 2 — primary VLAN;
- 3 — isolated VLAN.
net_vlans
Сети VLAN:
- id — код записи;
- vlan — код VLAN. Ссылка на таблицу vlans;
- net — сеть;
- type — тип IP-адресов;
- notes — примечание;
- was_used — использована ли сеть.
lanlist
Таблица сетевых адаптеров:
- id — код записи;
- adapter — наименование адаптера;
- server — код сервера. Ссылка на таблицу servers;
- mac — MAC-адрес;
- ip — IP-адрес.
mac_list
MAC-адреса:
- id — код записи;
- port — порт;
- mac — MAC-адрес.
Статистика
Общие для таблиц поля:
- begin — дата сбора статистики;
- processed — обработаны ли данные;
- count — количество.
burstable_day
Трафик по дням:
- id — код записи;
- server — код сервера. Ссылка на таблицу servers;
- date — дата, за которую собрана статистика;
- burst_in — величина входящего трафика;
- burst_out — величина исходящего трафика.
bustable_stat
Трафик:
- server — код сервера. Ссылка на таблицу servers;
- date — дата, за которую собрана статистика;
- burst — величина трафика.
srv_current_day
Статистика по току для серверов по дням:
- begin — дата сбора статистики;
- processed — обработаны ли данные;
- count — количество;
- server — код сервера. Ссылка на таблицу servers;
- current — потребление тока.
srv_current_hour
Почасовая статистика по току для серверов:
- begin — дата сбора статистики;
- processed — обработаны ли данные;
- count — количество;
- server — код сервера. Ссылка на таблицу servers;
- current — потребление тока.
srv_power_day
Статистика по энергопитанию для серверов по дням:
- begin — дата сбора статистики;
- processed — обработаны ли данные;
- count — количество;
- server — код сервера. Ссылка на таблицу servers;
- power — потребление питания.
srv_power_hour
Почасовая статистика по энергопитанию для серверов:
- begin — дата сбора статистики;
- processed — обработаны ли данные;
- count — количество;
- server — код сервера. Ссылка на таблицу servers;
- power — потребление питания.
srv_traff_day
Статистика по трафику для серверов по дням:
- begin — дата сбора статистики;
- processed — обработаны ли данные;
- count — количество;
- server — код сервера. Ссылка на таблицу servers;
- ip — IP-адрес;
- rx — входящий трафик;
- tx — исходящий трафик.
srv_traff_hour
Почасовая статистика по трафику для серверов:
- begin — дата сбора статистики;
- processed — обработаны ли данные;
- count — количество;
- server — код сервера. Ссылка на таблицу servers;
- ip — IP-адрес;
- rx — входящий трафик;
- tx — исходящий трафик.
switch_ports_stat
Статистика для портов коммутатора:
- id — код записи;
- switch_port — код порта. Ссылка на таблицу switch_ports;
- rxcounter — rx-счётчик;
- txcounter — tx-счётчик;
- rxpcounter — rxp-счётчик;
- txpcounter — txp-счётчик;
- bitload — нагрузка на сеть (бит/с);
- packload — нагрузка на сеть (пакет/с);
- statdate — дата сбора статистики.
temp_average_hour
Почасовая статистика по средней температуре:
- begin — дата сбора статистики;
- processed — обработаны ли данные;
- count — количество;
- thekey — код устройства (для привязки статистики к конкретному устройству);
- temperature — температура.
overall_power_hour
Общая статистика по потреблению питания за час:
- begin — дата сбора статистики;
- processed — обработаны ли данные;
- count — количество;
- thekey — код устройства (для привязки статистики к конкретному устройству);
- in_power — входящее;
- out_power — исходящее.
overall_traff_stat
Общая статистика по трафику:
- id — код записи;
- date — дата;
- traffload — нагрузка на сеть;
- state — состояние.
rack_temp_hour
Статистика по температуре стоек:
- begin — дата сбора статистики;
- processed — обработаны ли данные;
- count — количество;
- rack — код стойки. Ссылка на таблицу racks;
- temperature — температура.
oper_stat
Статистика по операциям:
- id — код записи;
- startdate — дата начала;
- vendate — дата окончания;
- status — статус;
- os — шаблон;
- type — код типа сервера. Ссылка на таблицу typelist.
Служебные записи
История изменений
Таблицы для сохранения истории по объектам DCImanager имеют ряд общих полей и поля исходной таблицы в двух вариантах: без суффикса и с суффиксом _new. В первом сохраняется исходное значение поля, во втором — новое значение:
- reference — ссылка на запись в исходной таблице;
- username — имя пользователя, от имени которого производились изменения;
- request_ip — IP-адрес, с которого производились изменения;
- request_action — функция, которой производились изменения;
- fromdate — дата, с которой действовали прежние значения;
- changedate — дата изменения данных;
- changedfields — список полей, в которых изменились данные;
- xxx — поле со старым значением данных;
- xxx_new — поле с новым значением данных.
Список таблиц для сохранения истории:
- history_ispare;
- history_servers.
tasks
Задачи:
- id — код записи;
- date — дата;
- requester — код пользователя, сделавшего запрос. Ссылка на таблицу users;
- responsible — код пользователя, решившего запрос. Ссылка на таблицу users;
- type — тип;
- state — состояние;
- notes — примечание;
- data — данные.
Таблицы с уведомлениями
events_admin (для администратора), events_owner (для владельца):
- id — код записи;
- id_problem — код проблемы.