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:

  • ip — код IP-адреса. Ссылка на таблицу ip;
  • vlans — код VLAN. Ссылка на таблицу vlans.

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 — код проблемы.