Download PDF
Download page Логирование событий безопасности.
Логирование событий безопасности
Платформа записывает информацию о событиях в системный журнал journald. К событиям относятся все действия пользователей и служб платформы. Чтобы получить информацию о событиях безопасности (попытках входа в систему, изменения прав доступа и т.д.), отфильтруйте содержимое системного журнала. В статье приведён пример Python-скрипта для фильтрации.
Логика работы скрипта
Скрипт определяет события безопасности и выводит информацию о них в консоль. Чтобы определить событие безопасности, скрипт сравнивает запись в journald с шаблонами из переменной filters.
По умолчанию скрипт определяет следующие события:
- вход в платформу;
- выход из платформы;
- создание учётной записи;
- удаление учётной записи;
- изменение роли учётной записи;
- создание ключа для авторизации по ключу;
- авторизация по ключу;
- сброс пароля учётной записи;
- блокировка и разблокировка учётной записи;
- создание и удаление группы;
- добавление в группу и удаление из группы;
- удаление активной сессии;
- добавление и удаление SSH-ключа;
- включение и выключение режима обслуживания;
- блокировка и разблокировка сервера;
- включение и выключение автоматического изменения порядка загрузки серверов в BIOS/UEFI;
- изменение механизма или порядка загрузки сервера в BIOS/UEFI;
- смена основного IP-адреса сервера;
- создание сетевого подключения;
- удаление сетевого подключения;
- выдача серверу IP-адреса;
- редактирование настроек IP-адреса сервера;
- удаление IP-адреса сервера;
- редактирование настроек порта коммутатора;
- включение и выключение порта коммутатора;
- включение и выключение порта PDU;
- включение, выключение и перезагрузка сервера;
- редактирование настроек BIOS сервера;
- создание профиля сервера;
- редактирование профиля сервера;
- привязка профиля к серверу;
- применение настроек профиля к серверу.
Чтобы не определять часть событий, удалите их из переменной filters. Описание событий указано в комментариях к значениям переменной.
Шаблон сообщения может содержать плейсхолдеры вида: <параметр>. Скрипт отобразит информацию о событии, если в сообщении journald на месте плейсхолдеров находится любое количество символов. Например, если указать шаблон POST /auth/v4/acl/<ID>/user/<ID>, может быть выведена запись POST /auth/v4/acl/123/user/456789.
Пример скрипта не является готовым решением, а только демонстрирует возможность экспорта сообщений из journald. Вы можете доработать алгоритм скрипта под ваши нужды.
Пример скрипта
#!/usr/bin/env python3
import select
from systemd import journal
def matches_template(message, template):
"""Проверка на наличие плейсхолдеров"""
if '<' not in template or '>' not in template:
# Нет плейсхолдера — простая подстрока
return template in message
# Разбиваем шаблон на части по <...>
parts = []
start = 0
while True:
i = template.find('<', start)
if i == -1:
# Остаток после последней >
parts.append(template[start:])
break
parts.append(template[start:i])
j = template.find('>', i)
if j == -1:
# Незакрытая < — считаем всё до конца как текст
parts.append(template[i:])
break
start = j + 1
# Убираем пустые части (например, если шаблон начинается с <...>)
parts = [p for p in parts if p]
if not parts:
return True # пустой шаблон — совпадает всегда
# Проверяем, что все части идут в message в правильном порядке
pos = 0
for part in parts:
idx = message.find(part, pos)
if idx == -1:
return False
pos = idx + len(part)
return True
j = journal.Reader()
j.log_level(journal.LOG_INFO)
j.seek_tail()
j.get_previous()
p = select.poll()
p.register(j, j.get_events())
filters = {
# Вход в платформу
'login': {
# proxy_message — тип запроса. Например, /public/token при авторизации
'proxy': "Begin processing request target: '/public/token'",
# auth_message — авторизация по логину и паролю. Содержит id или email пользователя
'auth': "SELECT auth_user.id AS `id`,auth_user.password AS `password`",
# input_message — IP-адрес и результат операции:
# 200 — авторизация выполнена;
# 400 — в авторизации отказано.
'input': "POST /auth/v4/public/token"
},
# Выход из платформы
'logout': {
# proxy_message1 — тип запроса (DELETE/target/%2Ftoken — выход из системы)
'proxy1': "Begin processing request target: '/public/global/whoami/method/DELETE/target/%2Ftoken",
# proxy_message2 — сведения об учётной записи
'proxy2': "Auth response body",
# auth_message — удаление токена авторизации
'auth': "DELETE FROM auth_token WHERE auth_token.id",
# input_message — результат операции
'input': "DELETE /auth/v4/token"
},
# Создание учётной записи
'user_create': {
# writer_message1 — тип запроса (POST /user — создание учётной записи)
'writer1': "request method: POST url: /user",
# writer_message2 — заголовок internal-auth, содержит данные об учётной записи пользователя, отправившего запрос, в формате base64
'writer2': "Got header: [internal-auth]",
# writer_message3 — IP-адрес, с которого отправлен запрос
'writer3': "Got header: [x-forwarded-for]",
# writer_message4 — содержимое запроса (имя созданной учётной записи и ее роль)
'writer4': "RequestBody",
# writer_message5 — ID созданной учётной записи
'writer5': "User <username> created in auth"
},
# Удаление учётной записи
'user_delete': {
# writer_message1 — тип запроса (DELETE /user/<ID> — удаление учётной записи)
'writer1': "request method: DELETE url: /user/<ID>",
# writer_message2 — заголовок internal-auth, содержит данные об учётной записи пользователя, отправившего запрос, в формате base64
'writer2': "Got header: [internal-auth]",
# writer_message3 — IP-адрес, с которого отправлен запрос
'writer3': "Got header: [x-forwarded-for]",
# auth_message — ID удалённой учётной записи
'auth': "DELETE FROM auth_user WHERE auth_user.id"
},
# Изменение роли учётной записи
'user_role_change': {
# writer_message1 — тип запроса (POST /user/<ID> — редактирование учётной записи)
'writer1': "request method: POST url: /user/<ID>",
# writer_message2 — заголовок internal-auth, содержит данные об учётной записи пользователя, отправившего запрос, в формате base64
'writer2': "Got header: [internal-auth]",
# writer_message3 — IP-адрес, с которого отправлен запрос
'writer3': "Got header: [x-forwarded-for]",
# auth_message — ID редактируемой учётной записи и назначенная ей роль
'auth': "UPDATE auth_user SET `roles`"
},
# Создание ключа для авторизации по ключу
'auth_key_create': {
# proxy_message1 — тип запроса (POST /user/<ID_или_email>/key — создание ключа)
'proxy1': "Begin processing request target: '/user/<ID_или_email>/key'",
# proxy_message2 — сведения об учётной записи, от которой пришёл запрос
'proxy2': "Auth response body",
# auth_message — сведения о созданном ключе
'auth': "INSERT INTO auth_key",
# input_message — результат операции и IP-адрес, с которого был отправлен запрос
'input1': "POST /auth/v4/user/<ID_или_email>/key",
'input2': "POST /api/auth/v4/user/<ID_или_email>/key"
},
# Авторизация по ключу
'auth_by_key': {
# proxy_message — тип запроса (/public/key — авторизация по ключу)
'proxy': "Begin processing request target: '/public/key'",
# auth_message — данные созданного токена авторизации
'auth': "INSERT INTO auth_token",
# input_message — результат операции и IP-адрес, с которого был отправлен запрос
'input1': "POST /auth/v4/public/key",
'input2': "POST /api/auth/v4/public/key"
},
# Сброс пароля учётной записи
'password_reset': {
# proxy_message1 — тип запроса (POST /user/<ID>/password — сброс пароля)
'proxy1': "Begin processing request target: '/user/<ID>/password'",
# proxy_message2 — сведения об учётной записи, запросившей сброс пароля
'proxy2': "Auth response body",
# auth_message — сведения об учетной записи, для которой пароль был сброшен
'auth': "UPDATE auth_user SET `password`",
# input_message — результат операции и IP-адрес, с которого был отправлен запрос
'input': "POST /auth/v4/user/100007/password"
},
# Блокировка и разблокировка учётной записи
'user_lock_toggle': {
# proxy_message1 — тип запроса (POST /user/<ID>/suspend — блокировка учётной записи, POST /user/<ID>/resume — разблокировка)
'proxy1': "Begin processing request target: '/user/<ID>/suspend'",
'proxy2': "Begin processing request target: '/user/100007/resume'",
# proxy_message2 — сведения об учётной записи, запросившей операцию
'auth_info': "Auth roles",
# auth_message — сведения о заблокированной или разблокированной учётной записи
'auth1': "UPDATE auth_user SET `state`='disabled'",
'auth2': "UPDATE auth_user SET `state`='active'",
# input_message — результат операции и IP-адрес, с которого был отправлен запрос
'input1': "POST /auth/v4/user/<ID>/suspend",
'input2': "POST /auth/v4/user/<ID>/resume"
},
# Создание и удаление группы
'acl_group_create_delete': {
# proxy_message1 — тип запроса (POST /acl — создание ACL-группы, DELETE /acl/<ID> — удаление)
'proxy1': "Begin processing request target: '/public/global/whoami/method/POST/target/%2Facl'",
'proxy2': "Begin processing request target: '/public/global/whoami/method/DELETE/target/%2Facl%2F1'",
# proxy_message2 — сведения об учётной записи, запросившей операцию
'proxy_info': "Auth response body",
# auth_message — сведения о созданной или удаленной ACL-группе
'auth1': "INSERT INTO auth_acl",
'auth2': "DELETE FROM auth_acl WHERE",
# input_message — результат операции и IP-адрес, с которого был отправлен запрос
'input1': "POST /auth/v4/acl",
'input2': "DELETE /auth/v4/acl"
},
# Добавление в группу и удаление из группы
'user_acl_membership': {
# proxy_message1 — тип запроса (POST /auth/v4/acl/<ID>/user/<ID> — добавление учётной записи в ACL-группу, DELETE /auth/v4/acl/<ID>/user/<ID> — удаление записи из группы)
'proxy1': "Begin processing request target: '/user/100000/method/POST/target/%2Facl%2F3%2Fuser%2F100007'",
'proxy2': "Begin processing request target: '/user/100000/method/DELETE/target/%2Facl%2F3%2Fuser%2F100007'",
# proxy_message2 — сведения об учётной записи, запросившей операцию
'proxy_info': "Auth roles",
# auth_message — сведения о созданной или удалённой связи между учётной записью и группой
'auth1': "INSERT INTO auth_user2acl",
'auth2': "DELETE FROM auth_user2acl WHERE",
# input_message — результат операции и IP-адрес, с которого был отправлен запрос
'input1': "POST /auth/v4/acl/<ID>/user/<ID>",
'input2': "DELETE /auth/v4/acl/<ID>/user/<ID>"
},
# Удаление активной сессии
'session_delete': {
# proxy_message1 — тип запроса (DELETE /auth/v4/session/<ID> — удаление сессии авторизации)
'proxy1': "Begin processing request target: '/public/global/whoami/method/DELETE/target/%2Fsession%2F10000003'",
# proxy_message2 — сведения об учётной записи, запросившей операцию
'proxy2': "Auth response body",
# auth_message — ID удаляемой сессии
'auth': "DELETE FROM auth_token WHERE",
# input_message — результат операции и IP-адрес, с которого был отправлен запрос
'input': "DELETE /auth/v4/session/<ID>"
},
# Добавление и удаление SSH-ключа
'ssh_key_manage': {
# proxy_message1 — тип запроса (POST /auth/v4/self/sshkey — добавление ключа, DELETE /auth/v4/self/sshkey/<ID> — удаление ключа)
'proxy1': "Begin processing request target: '/public/global/whoami/method/POST/target/%2Fself%2Fsshkey'",
'proxy2': "Begin processing request target: '/public/global/whoami/method/DELETE/target/%2Fself%2Fsshkey%2F1'",
# proxy_message2 — сведения об учётной записи, запросившей операцию
'proxy_info': "Auth response body",
# auth_message — сведения о добавляемом или удаляемом ключе
'auth1': "INSERT INTO auth_user_sshkey",
'auth2': "DELETE FROM auth_user_sshkey WHERE",
# input_message — результат операции и IP-адрес, с которого был отправлен запрос
'input1': "POST /auth/v4/self/sshkey",
'input2': "DELETE /auth/v4/self/sshkey/1"
},
# Включение и выключение режима обслуживания
'maintenance_toggle': {
# proxy_message — тип запроса (POST /server/{server_id} — изменение настроек сервера)
'proxy': "Begin processing request target: '/server/<ID>",
# dci_writer_message1 — настройки, переданные в API-запросе
'dci1': 'RequestBody: {"maintenance":true}',
'dci2': 'RequestBody: {"maintenance":false}',
# dci_writer_message2 — внесение изменений в БД
'dci3': "UPDATE dci_server SET maintenance='1' WHERE id=<ID>",
'dci4': "UPDATE dci_server SET maintenance='0' WHERE id=<ID>",
# input_message — результат операции и IP-адрес, с которого был отправлен запрос
'input': "POST /dci/v3/server/<ID>"
},
# Блокировка и разблокировка сервера
'server_suspend_resume': {
# proxy_message — тип запроса (POST /server/{server_id}/suspend — блокировка сервера, POST /server/{server_id}/resume — разблокировка)
'proxy1': "Begin processing request target: '/server/<ID>/suspend",
'proxy2': "Begin processing request target: '/server/<ID>/resume",
# dci_writer_message — внесение изменений в БД
'dci1': "UPDATE dci_server SET state='suspending' WHERE id=<ID>",
'dci2': "UPDATE dci_server SET state='resuming' WHERE id=<ID>",
# input_message — результат операции и IP-адрес, с которого был отправлен запрос
'input1': "POST /dci/v3/server/<ID>/suspend",
'input2': "POST /dci/v3/server/<ID>/resume"
},
# Включение и выключение автоматического изменения порядка загрузки серверов в BIOS/UEFI
'boot_order_auto_toggle': {
# proxy_message — тип запроса (POST /setting/operation_change_boot_order — включение или автоматического изменения порядка загрузки)
'proxy': "Begin processing request target: '/setting/operation_change_boot_order'",
# dci_writer_message — внесение изменений в БД (value='true' — включение, value='false' — выключение)
'dci1': "UPDATE isp_settings SET value='true' WHERE name='operation_change_boot_order'",
'dci2': "UPDATE isp_settings SET value='false' WHERE name='operation_change_boot_order'",
# input_message — результат операции и IP-адрес, с которого был отправлен запрос
'input': "POST /api/dci/v3/setting/operation_change_boot_order"
},
# Изменение механизма или порядка загрузки сервера в BIOS/UEFI
'bios_boot_settings_change': {
# proxy_message — тип запроса (POST /server/{server_id} — изменение настроек сервера)
'proxy': "Begin processing request target: '/server/<ID>",
# dci_writer_message1 — настройки, переданные в API-запросе
'dci1': 'RequestBody: {"settings"',
# dci_writer_message2 — внесение изменений в БД
'dci2': "UPDATE dci_server SET settings=",
# input_message — результат операции и IP-адрес, с которого был отправлен запрос
'input': "POST /dci/v3/server/<ID>"
},
# Смена основного IP-адреса сервера
'server_main_ip_change': {
# proxy_message — тип запроса (POST /server/{server_id} — изменение настроек сервера)
'proxy': "Begin processing request target: '/server/<ID>",
# dci_writer_message1 — настройки, переданные в API-запросе
'dci1': 'RequestBody: {"main_ip',
# dci_writer_message2 — внесение изменений в БД
'dci2': "UPDATE dci_server SET main_ip",
# input_message — результат операции и IP-адрес, с которого был отправлен запрос
'input': "POST /dci/v3/server/<ID>"
},
# Создание сетевого подключения
'switch_connection_create': {
# proxy_message — тип запроса (POST /server/{server_id}/switch_connection — подключение к коммутатору)
'proxy': "Begin processing request target: '/server/<ID>/switch_connection'",
# dci_writer_message1 — настройки, переданные в API-запросе (ID порта)
'dci1': 'RequestBody: {"switch_port_id"',
# dci_writer_message2 — внесение изменений в БД
'dci2': "UPDATE dci_switch_port SET connection_type='server'",
# input_message — результат операции и IP-адрес, с которого был отправлен запрос
'input': "POST /dci/v3/server/<ID>/switch_connection"
},
# Удаление сетевого подключения
'switch_connection_delete': {
# proxy_message — тип запроса (DELETE /server/{server_id}/switch_connection — удаление подключения к коммутатору)
'proxy': "No schema handler for target: DELETE /server/<ID>/switch_connection/<ID>",
# dci_writer_message — внесение изменений в БД
'dci': "DELETE FROM dci_server_to_switch_port WHERE id=",
# input_message — результат операции и IP-адрес, с которого был отправлен запрос
'input': "DELETE /dci/v3/server/<ID>/switch_connection/<ID>"
},
# Выдача серверу IP-адреса
'server_ip_assign': {
# proxy_message — тип запроса (POST /server/{server_id}/ip — добавление IP-адреса)
'proxy': "Begin processing request target: '/server/<ID>/ip'",
# dci_writer_message1 — настройки, переданные в API-запросе (например, ID пула адресов и доменное имя)
'dci1': 'RequestBody: {"domain"',
# dci_writer_message2 — внесение изменений в БД
'dci2': "INSERT INTO dci_server_ip",
# input_message — результат операции и IP-адрес, с которого был отправлен запрос
'input': "POST /dci/v3/server/<ID>/ip"
},
# Редактирование настроек IP-адреса сервера
'server_ip_edit': {
# proxy_message — тип запроса (POST /ip/{ip_id} — редактирование IP-адреса)
'proxy': "Begin processing request target: '/ip/<ID>'",
# dci_writer_message — внесение изменений в БД
'dci': "UPDATE dci_server_ip",
# input_message — результат операции и IP-адрес, с которого был отправлен запрос
'input': "POST /dci/v3/ip/<ID>"
},
# Удаление IP-адреса сервера
'server_ip_delete': {
# proxy_message — тип запроса (DELETE /server/{server_id}/ip/{ip_id} — удаление IP-адреса)
'proxy': "No schema handler for target: DELETE /server/12/ip/11",
# dci_writer_message — внесение изменений в БД
'dci': "UPDATE dci_server_ip SET status='deleting'",
# input_message — результат операции и IP-адрес, с которого был отправлен запрос
'input': "POST /dci/v3/ip/<ID>"
},
# Редактирование настроек порта коммутатора
'switch_port_edit': {
# proxy_message — тип запроса (POST /switch/{switch_id}/port/{port_id} — изменение настроек порта)
'proxy': "Begin processing request target: '/switch/<ID>/port/<ID>'",
# dci_writer_message — внесение изменений в БД
'dci': "UPDATE dci_switch_port",
# input_message — результат операции и IP-адрес, с которого был отправлен запрос
'input': "POST /dci/v3/switch/<ID>/port/<ID>"
},
# Включение и выключение порта коммутатора
'switch_port_power_toggle': {
# proxy_message — тип запроса (POST /switch/{switch_id}/port/{port_id}/down — выключение порта, POST /switch/{switch_id}/port/{port_id}/up — включение порта)
'proxy1': "Begin processing request target: '/switch/<ID>/port/<ID>/down'",
'proxy2': "Begin processing request target: '/switch/<ID>/port/<ID>/up'",
# input_message — результат операции и IP-адрес, с которого был отправлен запрос
'input1': "POST /dci/v3/switch/<ID>/port/<ID>/down",
'input2': "POST /dci/v3/switch/<ID>/port/<ID>/up"
},
# Включение и выключение порта PDU
'pdu_port_power_toggle': {
# proxy_message — тип запроса (POST /pdu/{pdu_id}/port/{port_id}/down — выключение порта, POST /pdu/{pdu_id}/port/{port_id}/up — включение порта)
'proxy1': "Begin processing request target: '/pdu/<ID>/port/<ID>/down'",
'proxy2': "Begin processing request target: '/pdu/<ID>/port/<ID>/up'",
# input_message — результат операции и IP-адрес, с которого был отправлен запрос
'input1': "POST /dci/v3/pdu/<ID>/port/<ID>/down",
'input2': "POST /dci/v3/pdu/<ID>/port/<ID>/up"
},
# Включение, выключение и перезагрузка сервера
'server_power_control': {
# proxy_message — тип запроса (POST /server/{server_id}/power_off — выключение, POST /server/{server_id}/power_on — включение, POST /server/{server_id}/power_reset — перезагрузка)
'proxy1': "Begin processing request target: '/server/<ID>/power_on'",
'proxy2': "Begin processing request target: '/server/<ID>/power_off'",
'proxy3': "Begin processing request target: '/server/<ID>/power_reset'",
# input_message — результат операции и IP-адрес, с которого был отправлен запрос
'input1': "POST /dci/v3/server/<ID>/power_on",
'input2': "POST /dci/v3/server/<ID>/power_off",
'input3': "POST /dci/v3/server/<ID>/power_reset"
},
# Редактирование настроек BIOS сервера
'bios_settings_edit': {
# proxy_message — тип запроса (POST /ipmi/{ipmi_id}/bios_attr — изменение настроек BIOS)
'proxy': "Begin processing request target: '/ipmi/17/bios_attr'",
# dci_writer_message — список редактируемых настроек и их новые значения
'dci': 'RequestBody: {"attributes"',
# input_message — результат операции и IP-адрес, с которого был отправлен запрос
'input': "POST /api/dci/v3/ipmi/17/bios_attr"
},
# Создание профиля сервера
'server_profile_create': {
# proxy_message — тип запроса (POST /server_profile — создание профиля)
'proxy': "Begin processing request target: '/server_profile'",
# dci_writer_message1 — ID локации и параметры профиля
'dci1': 'RequestBody: {"location":<ID>,"model"',
# dci_writer_message2 — внесение изменений в БД
'dci2': "INSERT INTO dci_server_profile",
# input_message — результат операции и IP-адрес, с которого был отправлен запрос
'input': "POST /dci/v3/server_profile"
},
# Редактирование профиля сервера
'server_profile_edit': {
# proxy_message — тип запроса (POST /server_profile/{server_profile_id} — изменение настроек профиля)
'proxy': "Begin processing request target: '/server_profile/<ID>'",
# dci_writer_message1 — ID потока dci_writer
'dci1': "dci_writer[<ID>]: request method: POST url: /server_profile/<ID>",
# dci_writer_message2 — параметры запроса (настройки профиля и их новые значения)
'dci2': "dci_writer[<ID>]: RequestBody",
# dci_writer_message3 — внесение изменений в БД
'dci3': "UPDATE dci_server_profile",
# input_message — результат операции и IP-адрес, с которого был отправлен запрос
'input': "POST /dci/v3/server_profile/2"
},
# Привязка профиля к серверу
'server_profile_assign': {
# proxy_message — тип запроса (POST /server/{server_id}/server_profile — изменение привязка профиля)
'proxy': "Begin processing request target: '/server/<ID>/server_profile'",
# dci_writer_message1 — параметры запроса (ID профиля)
'dci1': 'RequestBody: {"server_profile_id"',
# dci_writer_message2 — внесение изменений в БД
'dci2': "dci_writer[<ID>]: RequestBody",
# dci_writer_message3 — внесение изменений в БД
'dci3': "INSERT INTO dci_server_profile_to_server",
# input_message — результат операции и IP-адрес, с которого был отправлен запрос
'input': "POST /dci/v3/server/<ID>/server_profile"
},
# Применение настроек профиля к серверу
'server_profile_apply': {
# proxy_message — тип запроса (POST /server/{server_id}/server_profile/{server_profile_id} — применение профиля)
'proxy': "Begin processing request target: '/server/<ID>/server_profile/<ID>'",
# input_message — результат операции и IP-адрес, с которого был отправлен запрос
'input': "POST /dci/v3/server/<ID>/server_profile/<ID>"
}
}
while p.poll():
if j.process() != journal.APPEND:
continue
for entry in j:
message = entry.get('MESSAGE', '')
matched_event = None
# Проверяем все события и их шаблоны
for event_name, patterns in filters.items():
if any(matches_template(message, pattern) for pattern in patterns.values()):
matched_event = event_name
break
if matched_event:
timestamp = entry.get('__REALTIME_TIMESTAMP', '')
print(f"[{matched_event}] {timestamp} {message}")
Подготовка и запуск скрипта
Для запуска скрипта:
Подключитесь к серверу с платформой по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
- Создайте файл example_filter.py с кодом скрипта.
- Запустите скрипт:
python3 example_filter.pyBASH
Примеры вывода
Вход в платформу
Пример вывода
Oct 07 08:20:10 DCI6-18781.example.com proxy[14966]: Begin processing request target: '/public/token', content length: 46
Oct 07 08:20:10 DCI6-18781.example.com dci_auth_v4[2937]: SELECT auth_user.ip_list AS `ip_list` FROM auth_user WHERE ((auth_user.id='100001' AND auth_user.ip_list IS NOT NULL))
Oct 07 08:20:10 DCI6-18781.example.com dci_input[2937]: 10.60.1.1 — - [07/Oct/2025:08:20:10 +0000] "POST /auth/v4/public/token HTTP/2.0" 400 82 "https://172.31.48.32/auth/login" "Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0" "-"
Выход из платформы
Пример вывода
Oct 07 08:22:11 DCI6-18781.example.com proxy[14951]: Begin processing request target: '/public/global/whoami/method/DELETE/target/%2Ftoken%2F10000005%2D4e39c62f%2D7c45%2D432c%2Da8a9%2D6c943f30d378', content length: --
Oct 07 08:22:11 DCI6-18781.example.com proxy[14966]: Auth response body: {"lang":"en","owner_email":"user@example.com","owner_id":100001,"roles":["@admin"],"session":"10000005-4e39c62f-7c45-432c-a8a9-6c943f30d378","trustee_email":"user@example.com","trustee_id":100001,"xsrf_token":"10000005-4e39c62f-7c45-432c-a8a9-6c943f30d378"}
Oct 07 08:22:11 DCI6-18781.example.com dci_auth_v4[2937]: DELETE FROM auth_token WHERE auth_token.id='10000005'
Oct 07 08:22:11 DCI6-18781.example.com dci_input[2937]: 10.60.1.1 — - [07/Oct/2025:08:22:11 +0000] "DELETE /auth/v4/token/10000005-4e39c62f-7c45-432c-a8a9-6c943f30d378 HTTP/2.0" 200 4 "https://172.31.48.32/dci/dashboard" "Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0" "-"
Создание учётной записи
Пример вывода
Oct 07 11:38:10 DCI-reference.example.com dci_writer[158498]: request method: POST url: /user version: HTTP/1.0
Oct 07 11:38:10 DCI-reference.example.com dci_writer[158498]: Got header: [internal-auth]eyJsYW5nIjoicnUiLCJvd25lcl9lbWFpbCI6ImEub2JlcnNodEBpc3BzeXN0ZW0uY29tIiwib3duZXJfaWQiOjEwMDAwMCwicm9sZXMiOlsiQGFkbWluIl0sInNlc3Npb24iOiIxMDAwMDAwNC1lZTQ4ZjdhYS0zMWJlLTRlYmMtYmY3Zi0xYTUyZmYxNGVkYzQiLCJ0cnVzdGVlX2VtYWlsIjoiYS5vYmVyc2h0QGlzcHN5c3RlbS5jb20iLCJ0cnVzdGVlX2lkIjoxMDAwMDAsInhzcmZfdG9rZW4iOiIxMDAwMDAwNC1lZTQ4ZjdhYS0zMWJlLTRlYmMtYmY3Zi0xYTUyZmYxNGVkYzQifQ==
Oct 07 11:38:10 DCI-reference.example.com dci_writer[158498]: Got header: [x-forwarded-for]10.60.1.1, 127.0.0.1
Oct 07 11:38:10 DCI-reference.example.com dci_writer[158498]: RequestBody: {"email":"user2@example.com","password":"*","role":"@user"}
Oct 07 11:38:10 DCI-reference.example.com dci_writer[158498]: User 'user2@example.com' created in auth with result: '{"id":100005,"uuid":"508ea979-abd0-432c-bcdb-323f298c9fc7"}'
Удаление учётной записи
Пример вывода
Oct 07 12:06:50 DCI-reference.example.com dci_writer[158498]: request method: DELETE url: /user/100005 version: HTTP/1.0
Oct 07 12:06:50 DCI-reference.example.com dci_writer[158498]: Got header: [internal-auth]eyJsYW5nIjoicnUiLCJvd25lcl9lbWFpbCI6ImEub2JlcnNodEBpc3BzeXN0ZW0uY29tIiwib3duZXJfaWQiOjEwMDAwMCwicm9sZXMiOlsiQGFkbWluIl0sInNlc3Npb24iOiIxMDAwMDAwNC1l
ZTQ4ZjdhYS0zMWJlLTRlYmMtYmY3Zi0xYTUyZmYxNGVkYzQiLCJ0cnVzdGVlX2VtYWlsIjoiYS5vYmVyc2h0QGlzcHN5c3RlbS5jb20iLCJ0cnVzdGVlX2lkIjoxMDAwMDAsInhzcmZfdG9rZW4iOiIxMDAwMDAwNC1lZTQ4ZjdhYS0zMWJlLTRlYmMtYmY3Zi0xYTUyZmYxNGVkYzQifQ==
Oct 07 12:06:50 DCI-reference.example.com dci_writer[158498]: Got header: [x-forwarded-for]10.60.1.1, 127.0.0.1, 127.0.0.1
Oct 07 12:06:50 DCI-reference.example.com dci_auth_v4[1113]: DELETE FROM auth_user WHERE auth_user.id='100005'
Изменение роли учётной записи
Пример вывода
Oct 07 13:43:27 DCI-reference.example.com msgsender_writer[156993]: request method: POST url: /user/100007 version: HTTP/1.0
Oct 07 13:43:27 DCI-reference.example.com dci_writer[158498]: Got header: [internal-auth]eyJsYW5nIjoicnUiLCJvd25lcl9lbWFpbCI6ImEub2JlcnNodEBpc3BzeXN0ZW0uY29tIiwib3duZXJfaWQiOjEwMDAwMCwicm9sZXMiOlsiQGFkbWluIl0sInNlc3Npb24iOiIxMDAwMDAwNC1lZTQ4ZjdhYS0zMWJlLTRlYmMtYmY3Zi0xYTUyZmYxNGVkYzQiLCJ0cnVzdGVlX2VtYWlsIjoiYS5vYmVyc2h0QGlzcHN5c3RlbS5jb20iLCJ0cnVzdGVlX2lkIjoxMDAwMDAsInhzcmZfdG9rZW4iOiIxMDAwMDAwNC1lZTQ4ZjdhYS0zMWJlLTRlYmMtYmY3Zi0xYTUyZmYxNGVkYzQifQ==
Oct 07 13:43:27 DCI-reference.example.com dci_writer[158498]: Got header: [x-forwarded-for]10.60.1.1, 127.0.0.1, 127.0.0.1
Oct 07 13:43:27 DCI-reference.example.com dci_auth_v4[1113]: UPDATE auth_user SET `roles`='[\"@admin\"]' WHERE id = '100007'
Создание ключа для авторизации по ключу
Пример вывода
Oct 07 14:14:48 DCI-reference.example.com proxy[157914]: Begin processing request target: '/user/user2@example.com/key', content length: 2
Oct 07 14:14:48 DCI-reference.example.com proxy[157914]: Auth response body: {"lang":"ru","owner_email":"user@example.com","owner_id":100000,"roles":["@admin"],"session":"00000000-ffffffff-0000-ffff-0000-ffffffffffff","trustee_ema
il":"user@example.com","trustee_id":100000,"xsrf_token":"00000000-ffffffff-0000-ffff-0000-ffffffffffff"}
Oct 07 14:14:48 DCI-reference.example.com dci_auth_v4[1113]: INSERT INTO auth_key (`id`,`name`,`user`,`expires_at`) VALUES('3','6450bfdd19e4d4bda2bcefca0aaff0d92e5a1c34c862503c8d5927e81c1bf569','100007','2025-10-07 15:14:48')
Oct 07 14:14:48 DCI-reference.example.com dci_input[1113]: 127.0.0.1 — - [07/Oct/2025:14:14:48 +0000] "POST /api/auth/v4/user/user2@example.com/key HTTP/1.1" 201 57 "-" "curl/7.81.0" "10.60.1.1"
Авторизация по ключу
Пример вывода
Oct 07 15:53:32 DCI-reference.example.com proxy[157914]: Begin processing request target: '/public/key', content length: 49
Oct 07 15:53:32 DCI-reference.example.com dci_auth_v4[1113]: INSERT INTO auth_token (`id`,`name`,`owner`,`trustee`,`last_used`,`created_at`,`expires_at`,`client_ip`,`description`,`need_2fa`,`user_agent`) VALUES('10000013','133edfa75b6ae76a7996d03c19c0b230633a5f0be12d0291688c1eabdc1adc91','100007','100007','2025-10-07 15:53:32','2025-10-07 15:53:32',NULL,'10.60.1.1','created by /public/key at 1759852412 with key 4','0','curl/7.81.0')
Oct 07 15:53:32 DCI-reference.example.com dci_input[1113]: 127.0.0.1 — - [07/Oct/2025:15:53:32 +0000] "POST /api/auth/v4/public/key HTTP/1.1" 201 106 "-" "curl/7.81.0" "10.60.1.1"
Сброс пароля учётной записи
Пример вывода
Oct 07 16:14:28 DCI-reference.example.com proxy[157914]: Begin processing request target: '/user/100007/password', content length: 27
Oct 07 16:14:28 DCI-reference.example.com proxy[157914]: Auth response body: {"lang":"ru","owner_email":"user@example.com","owner_id":100000,"roles":["@admin"],"session":"00000000-ffffffff-0000-ffff-0000-ffffffffffff","trustee_email":"user@example.com","trustee_id":100000,"xsrf_token":"00000000-ffffffff-0000-ffff-0000-ffffffffffff"}
Oct 07 16:14:28 DCI-reference.example.com dci_auth_v4[1113]: UPDATE auth_user SET `password`='$5$7ig49ITk$HreIz2aseGYGdfUHr0oVX2nl.G83zvUCL.5CyPDRkLC' WHERE id = '100007'
Oct 07 16:14:28 DCI-reference.example.com dci_input[1113]: 127.0.0.1 — - [07/Oct/2025:16:14:28 +0000] "POST /auth/v4/user/100007/password HTTP/1.1" 200 4 "https://172.31.48.200/dci/users/all?filter=~&sort=id:desc;&page=1:25;" "Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0" "10.60.1.1"
Блокировка и разблокировка учётной записи
Пример вывода
Oct 07 16:43:06 DCI-reference.example.com proxy[157914]: Begin processing request target: '/user/100007/suspend', content length: 2
Oct 07 16:43:06 DCI-reference.example.com proxy[157914]: Auth roles: {"lang":"ru","owner_email":"user@example.com","owner_id":100000,"roles":["@admin"],"session":"00000000-ffffffff-0000-ffff-0000-ffffffffffff","trustee_email":"user@example.com","trustee_id":100000,"xsrf_token":"00000000-ffffffff-0000-ffff-0000-ffffffffffff"}
Oct 07 16:43:06 DCI-reference.example.com dci_auth_v4[1113]: UPDATE auth_user SET `state`='disabled' WHERE id = '100007'
Oct 07 16:43:06 DCI-reference.example.com dci_input[1113]: 127.0.0.1 — - [07/Oct/2025:16:43:06 +0000] "POST /auth/v4/user/100007/suspend HTTP/1.1" 200 4 "-" "-" "10.60.1.1, 127.0.0.1"
Создание и удаление группы
Пример вывода
Oct 07 17:52:36 DCI-reference.example.com proxy[157914]: Begin processing request target: '/public/global/whoami/method/POST/target/%2Facl', content length: --
Oct 07 17:52:36 DCI-reference.example.com proxy[157914]: Auth response body: {"lang":"ru","owner_email":"user@example.com","owner_id":100000,"roles":["@admin"],"session":"00000000-ffffffff-0000-ffff-0000-ffffffffffff","trustee_email":"user@example.com","trustee_id":100000,"xsrf_token":"00000000-ffffffff-0000-ffff-0000-ffffffffffff"}
Oct 07 17:52:36 DCI-reference.example.com dci_auth_v4[1113]: INSERT INTO auth_acl (`id`,`name`,`ip_list`) VALUES('3','admins','[\"118.42.86.53\"]')
Oct 07 17:52:36 DCI-reference.example.com dci_input[1113]: 10.60.1.1 — - [07/Oct/2025:17:52:36 +0000] "POST /auth/v4/acl HTTP/2.0" 201 10 "https://172.31.48.200/dci/users/group" "Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0" "-"
Добавление в группу и удаление из группы
Пример вывода
Oct 07 18:39:53 DCI-reference.example.com proxy[157913]: Begin processing request target: '/user/100000/method/POST/target/%2Facl%2F3%2Fuser%2F100007', content length: --
Oct 07 18:39:53 DCI-reference.example.com proxy[157914]: Auth roles: {"lang":"ru","owner_email":"user@example.com","owner_id":100000,"roles":["@admin"],"session":"00000000-ffffffff-0000-ffff-0000-ffffffffffff","trustee_email":"user@example.com","trustee_id":100000,"xsrf_token":"00000000-ffffffff-0000-ffff-0000-ffffffffffff"}
Oct 07 18:39:53 DCI-reference.example.com dci_auth_v4[1113]: INSERT INTO auth_user2acl (`id`,`user`,`acl`) VALUES('1','100007','3')
Oct 07 18:39:53 DCI-reference.example.com dci_input[1113]: 127.0.0.1 — - [07/Oct/2025:18:39:53 +0000] "POST /auth/v4/acl/3/user/100007 HTTP/1.1" 201 10 "-" "-" "10.60.1.1, 127.0.0.1"
Удаление активной сессии
Пример вывода
Oct 07 19:00:55 DCI-reference.example.com proxy[157913]: Begin processing request target: '/public/global/whoami/method/DELETE/target/%2Fsession%2F10000003', content length: --
Oct 07 19:00:55 DCI-reference.example.com proxy[157914]: Auth response body: {"lang":"ru","owner_email":"user@example.com","owner_id":100000,"roles":["@admin"],"session":"00000000-ffffffff-0000-ffff-0000-ffffffffffff","trustee_email":"user@example.com","trustee_id":100000,"xsrf_token":"00000000-ffffffff-0000-ffff-0000-ffffffffffff"}
Oct 07 19:00:55 DCI-reference.example.com dci_auth_v4[1113]: DELETE FROM auth_token WHERE auth_token.id='10000003'
Oct 07 19:00:55 DCI-reference.example.com dci_input[1113]: 127.0.0.1 — - [07/Oct/2025:19:00:55 +0000] "DELETE /auth/v4/session/10000003 HTTP/1.1" 200 15 "https://172.31.48.200/dci/users/auth-sessions?filter=~&sort=~&page=1:25;" "Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0" "10.60.1.1"
Добавление и удаление SSH-ключа
Пример вывода
Oct 07 19:37:35 DCI-reference.example.com proxy[157913]: Begin processing request target: '/public/global/whoami/method/POST/target/%2Fself%2Fsshkey', content length: --
Oct 07 19:37:35 DCI-reference.example.com proxy[157914]: Auth response body: {"lang":"en","owner_email":"user2@example.com","owner_id":100007,"roles":["@user"],"session":"10000014-34162156-9288-4b28-9a2c-1223fd06ac2b","trustee_email":"user2@example.com","trustee_id":100007,"xsrf_token":"10000014-34162156-9288-4b28-9a2c-1223fd06ac2b"}
Oct 07 19:37:35 DCI-reference.example.com dci_auth_v4[1113]: INSERT INTO auth_user_sshkey (`id`,`name`,`owner`,`ssh_pub_key`) VALUES('1','SSH server key','100007','ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJm3EyZN20idnn+9sscr6qs6g04cDlQmM8rjrINW9fhm')
Oct 07 19:37:35 DCI-reference.example.com dci_input[1113]: 127.0.0.1 — - [07/Oct/2025:19:50:36 +0000] "POST /auth/v4/self/sshkey HTTP/1.1" 201 10 "https://172.31.48.200/auth/user/ssh" "Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/2010
0101 Firefox/143.0" "10.60.1.1"
Включение и выключение режима обслуживания
Пример вывода
Nov 01 19:54:01 DCI-reference.example.com proxy[56184]: Begin processing request target: '/server/12', content length: 20
Nov 01 19:54:01 DCI-reference.example.com dci_writer[160279]: RequestBody: {"maintenance":true}
Nov 01 19:54:01 DCI-reference.example.com dci_writer[160279]: db: id=0x7bd790201740 query='UPDATE dci_server SET maintenance='1' WHERE id=12' duration=120
Nov 01 19:54:01 DCI-reference.example.com dci_input[1113]: 10.60.1.1 — - [01/Nov/2025:19:54:01 +0000] "POST /dci/v3/server/12 HTTP/2.0" 200 19 "https://172.31.48.200/dci/server/list?filter=~&sort=id:desc;&page=1:25;" "Mozilla/5.0 (X11; Linux x86_64; rv:144.0) Gecko/20100101 Firefox/144.0" "-"
Блокировка и разблокировка сервера
Пример вывода
Nov 02 21:46:37 dci6.isptech.ru proxy[2188826]: Begin processing request target: '/server/31/suspend', content length: 2
Nov 02 21:46:37 dci6.isptech.ru dci_writer[2209537]: db: id=0x7f581c031f50 query='UPDATE dci_server SET state='suspending' WHERE id=31' duration=7260
Nov 02 21:46:37 dci6.isptech.ru dci_input[1262]: 10.60.1.1 — - [02/Nov/2025:21:46:37 +0000] "POST /dci/v3/server/31/suspend HTTP/2.0" 200 53 "https://172.31.52.10/dci/server/list?filter=~&sort=id:desc;&page=1:250;" "Mozilla/5.0 (X11; Linux x86_64; rv:144.0) Gecko/20100101 Firefox/144.0" "-"
Включение и выключение автоматического изменения порядка загрузки серверов в BIOS/UEFI
Пример вывода
Nov 04 14:36:37 DCI-reference.example.com proxy[56184]: Begin processing request target: '/setting/operation_change_boot_order', content length: 18
Nov 04 14:36:38 DCI-reference.example.com dci_writer[160279]: db: id=0x7bd790024c60 query='UPDATE isp_settings SET value='false' WHERE name='operation_change_boot_order'' duration=1082
Nov 04 14:36:38 DCI-reference.example.com dci_input[1113]: 10.60.1.1 — - [04/Nov/2025:14:36:38 +0000] "POST /api/dci/v3/setting/operation_change_boot_order HTTP/2.0" 200 39 "-" "curl/7.81.0" "-"
Изменение механизма или порядка загрузки сервера в BIOS/UEFI
Пример вывода
Nov 04 16:41:42 DCI-reference.example.com proxy[56184]: Begin processing request target: '/server/12', content length: 44
Nov 04 16:41:42 DCI-reference.example.com dci_writer[160279]: RequestBody: {"settings":{"boot_mode":"auto","efi":true}}
Nov 04 16:41:42 DCI-reference.example.com dci_writer[160279]: db: id=0x7bd7880ac8c0 query='UPDATE dci_server SET settings='{\"boot_mode\":\"auto\",\"efi\":true}' WHERE id=12' duration=173
Nov 04 16:41:42 DCI-reference.example.com dci_input[1113]: 127.0.0.1 — - [04/Nov/2025:16:41:42 +0000] "POST /api/dci/v3/server/12 HTTP/1.1" 200 19 "-" "curl/7.81.0" "10.60.1.1"
Смена основного IP-адреса сервера
Пример вывода
Nov 05 14:02:52 DCI-reference.example.com proxy[56184]: Begin processing request target: '/server/12', content length: 16
Nov 05 14:02:52 DCI-reference.example.com dci_writer[160279]: RequestBody: {"main_ipv4":10}
Nov 05 14:02:52 DCI-reference.example.com dci_writer[160279]: db: id=0x7bd79000bcb0 query='UPDATE dci_server SET main_ipv4=10 WHERE id=12' duration=107
Nov 05 14:02:52 DCI-reference.example.com dci_input[1113]: 127.0.0.1 — - [05/Nov/2025:14:02:52 +0000] "POST /dci/v3/server/12 HTTP/1.1" 200 19 "-" "-" "10.60.1.1, 127.0.0.1"
Создание сетевого подключения
Пример вывода
Nov 05 15:21:01 dci6.isptech.ru proxy[2188826]: Begin processing request target: '/server/30/switch_connection', content length: 22
Nov 05 15:21:01 dci6.isptech.ru dci_writer[2209537]: RequestBody: {"switch_port_id":287}
Nov 05 15:21:01 dci6.isptech.ru dci_writer[2209537]: db: id=0x7f581c061400 query='UPDATE dci_switch_port SET connection_type='server' WHERE id=287' duration=200
Nov 05 15:21:01 dci6.isptech.ru dci_input[1262]: 127.0.0.1 — - [05/Nov/2025:15:21:01 +0000] "POST /dci/v3/server/30/switch_connection HTTP/1.1" 200 9 "https://172.31.52.10/dci/server/30/connections" "Mozilla/5.0 (X11; Linux x86_64; rv:144.0) Gecko/20100101 Firefox/144.0" "10.60.1.1"
Удаление сетевого подключения
Пример вывода
Nov 05 15:30:42 dci6.isptech.ru proxy[2188826]: No schema handler for target: DELETE /server/30/switch_connection/29
Nov 05 15:30:42 dci6.isptech.ru dci_writer[2209537]: db: id=0x7f5814033770 query='DELETE FROM dci_server_to_switch_port WHERE id=29' duration=721
Nov 05 15:30:42 dci6.isptech.ru dci_input[1262]: 127.0.0.1 — - [05/Nov/2025:15:30:42 +0000] "DELETE /dci/v3/server/30/switch_connection/29 HTTP/1.1" 200 9 "https://172.31.52.10/dci/server/30/connections" "Mozilla/5.0 (X11; Linux x86_64; rv:144.0) Gecko/20100101 Firefox/144.0" "10.60.1.1"
Выдача серверу IP-адреса
Пример вывода
Nov 05 16:50:09 DCI-reference.example.com proxy[56184]: Begin processing request target: '/server/12/ip', content length: 63
Nov 05 16:50:09 DCI-reference.example.com dci_writer[160279]: RequestBody: {"domain":"server-006.example.com","family":"ipv4","ip_pool":2}
Nov 05 16:50:09 DCI-reference.example.com dci_writer[160279]: db: id=0x7bd78800a9f0 query='INSERT INTO dci_server_ip (id,domain,ip_pool,family,server) VALUES(11,'server-006.example.com',2,'ipv4',12)' duration=245
Nov 05 16:50:09 DCI-reference.example.com dci_input[1113]: 127.0.0.1 — - [05/Nov/2025:16:50:09 +0000] "POST /dci/v3/server/12/ip HTTP/1.1" 200 20 "-" "-" "10.60.1.1, 127.0.0.1"
Редактирование настроек IP-адреса сервера
Пример вывода
Nov 05 17:05:47 DCI-reference.example.com proxy[56184]: Begin processing request target: '/ip/11', content length: 42
Nov 05 17:05:47 DCI-reference.example.com dci_writer[160279]: db: id=0x7bd78830aba0 query='UPDATE dci_server_ip SET status='in_progress',domain='server-006-edited.example.com' WHERE id=11' duration=1237
Nov 05 17:05:47 DCI-reference.example.com dci_input[1113]: 127.0.0.1 — - [05/Nov/2025:17:05:47 +0000] "POST /dci/v3/ip/11 HTTP/1.1" 200 20 "-" "-" "10.60.1.1, 127.0.0.1"
Удаление IP-адреса сервера
Пример вывода
Nov 05 17:20:47 DCI-reference.example.com proxy[56184]: No schema handler for target: DELETE /server/12/ip/11
Nov 05 17:20:47 DCI-reference.example.com dci_writer[160279]: db: id=0x7bd788040f60 query='UPDATE dci_server_ip SET status='deleting' WHERE id=11' duration=1021
Nov 05 17:20:47 DCI-reference.example.com dci_input[1113]: 127.0.0.1 — - [05/Nov/2025:17:20:47 +0000] "DELETE /dci/v3/server/12/ip/11 HTTP/1.1" 200 20 "https://172.31.48.200/dci/server/12/ip/v4" "Mozilla/5.0 (X11; Linux x86_64; rv:144.0) Gecko/20100101 Firefox/144.0" "10.60.1.1"
Редактирование настроек порта коммутатора
Пример вывода
Nov 05 17:50:37 dci6.isptech.ru proxy[2188826]: Begin processing request target: '/switch/11/port/287', content length: 45
Nov 05 17:50:37 dci6.isptech.ru dci_writer[2209537]: db: id=0x7f581c1294e0 query='UPDATE dci_switch_port SET note='' WHERE id=287' duration=4505
Nov 05 17:50:37 dci6.isptech.ru dci_input[1262]: 127.0.0.1 — - [05/Nov/2025:17:50:37 +0000] "POST /dci/v3/switch/11/port/287 HTTP/1.1" 200 22 "-" "-" "10.60.1.1, 127.0.0.1"
Включение и выключение порта коммутатора
Пример вывода
Nov 05 18:41:49 dci6.isptech.ru proxy[2188826]: Begin processing request target: '/switch/11/port/287/down', content length: 2
Nov 05 18:41:50 dci6.isptech.ru dci_input[1262]: 10.60.1.1 — - [05/Nov/2025:18:41:50 +0000] "POST /dci/v3/switch/11/port/287/down HTTP/2.0" 200 48 "https://172.31.52.10/dci/devices/switch/11/ports?filter=~&sort=oper_status:desc;&page=1:100;" "Mozilla/5.0 (X11; Linux x86_64; rv:144.0) Gecko/20100101 Firefox/144.0" "-"
Включение и выключение порта PDU
Пример вывода
Nov 05 19:24:22 dci6.isptech.ru proxy[2188826]: Begin processing request target: '/pdu/4/port/24/down', content length: 2
Nov 05 19:24:22 dci6.isptech.ru dci_input[1262]: 10.60.1.1 — - [05/Nov/2025:19:24:22 +0000] "POST /dci/v3/pdu/4/port/24/down HTTP/2.0" 200 47 "https://172.31.52.10/dci/devices/pdu/4/ports" "Mozilla/5.0 (X11; Linux x86_64; rv:144.0) Gecko/20100101 Firefox/144.0" "-"
Включение, выключение и перезагрузка сервера
Пример вывода
Nov 05 19:49:42 DCI-reference.example.com proxy[56184]: Begin processing request target: '/server/6/power_on', content length: 2
Nov 05 19:49:42 DCI-reference.example.com dci_input[1113]: 10.60.1.1 — - [05/Nov/2025:19:49:42 +0000] "POST /dci/v3/server/6/power_on HTTP/2.0" 200 19 "https://172.31.48.200/dci/server/6/settings/main" "Mozilla/5.0 (X11; Linux x86_64; rv:144.0) Gecko/20100101 Firefox/144.0" "-"
Редактирование настроек BIOS сервера
Пример вывода
Nov 06 10:27:17 dci6.isptech.ru proxy[2188826]: Begin processing request target: '/ipmi/17/bios_attr', content length: 18
Nov 06 10:27:17 dci6.isptech.ru dci_writer[2209537]: RequestBody: {"attributes":{}}
Nov 06 10:27:17 dci6.isptech.ru dci_input[1262]: 127.0.0.1 — - [06/Nov/2025:10:27:17 +0000] "POST /api/dci/v3/ipmi/17/bios_attr HTTP/1.1" 400 64 "-" "curl/7.81.0" "10.60.1.1"
Создание профиля сервера
Пример вывода
Nov 06 11:06:20 DCI-reference.example.com proxy[56184]: Begin processing request target: '/server_profile', content length: 59
Nov 06 11:06:20 DCI-reference.example.com dci_writer[160279]: RequestBody: {"location":1,"model":"hp-gen9","name":"HP GEN9","note":""}
Nov 06 11:06:20 DCI-reference.example.com dci_writer[160279]: db: id=0x7bd78830adf0 query='INSERT INTO dci_server_profile (id,location,name,model) VALUES(2,1,'HP GEN9','hp-gen9')' duration=191
Nov 06 11:06:20 DCI-reference.example.com dci_input[1113]: 127.0.0.1 — - [06/Nov/2025:11:06:20 +0000] "POST /dci/v3/server_profile HTTP/1.1" 200 8 "https://172.31.48.200/dci/server/profile?filter=~&sort=~&page=1:25;" "Mozilla/5.0 (X11; Linux x86_64; rv:144.0) Gecko/20100101 Firefox/144.0" "10.60.1.1"
Редактирование профиля сервера
Пример вывода
Nov 06 12:26:46 DCI-reference.example.com proxy[56184]: Begin processing request target: '/server_profile/2', content length: 96
Nov 06 12:26:46 DCI-reference.example.com dci_writer[160279]: request method: POST url: /server_profile/2 version: HTTP/1.0
Nov 06 12:26:46 DCI-reference.example.com dci_writer[160279]: RequestBody: {"bios_attributes":{"NWSK001":"NWSK001Enabled"},"location":1,"model":"hp-gen9","name":"HP GEN9"}
Nov 06 12:26:46 DCI-reference.example.com dci_writer[160279]: db: id=0x7bd7900885b0 query='UPDATE dci_server_profile SET bios_attributes='{\"NWSK001\":\"NWSK001Enabled\"}' WHERE id=2' duration=196
Nov 06 12:26:46 DCI-reference.example.com dci_input[1113]: 127.0.0.1 — - [06/Nov/2025:12:26:46 +0000] "POST /dci/v3/server_profile/2 HTTP/1.1" 200 8 "https://172.31.48.200/dci/server/profile/2/bios/advanced/network_stack_configuration" "Mozilla/5.0 (X11; Linux x86_64; rv:144.0) Gecko/20100101 Firefox/144.0" "10.60.1.1"
Привязка профиля к серверу
Пример вывода
Nov 06 12:43:16 DCI-reference.example.com proxy[56184]: Begin processing request target: '/server/5/server_profile', content length: 23
Nov 06 12:43:16 DCI-reference.example.com dci_writer[160279]: RequestBody: {"server_profile_id":2}
Nov 06 12:43:16 DCI-reference.example.com dci_writer[160279]: db: id=0x7bd788089910 query='INSERT INTO dci_server_profile_to_server (id,server,profile) VALUES(2,5,2)' duration=5087
Nov 06 12:43:16 DCI-reference.example.com dci_input[1113]: 127.0.0.1 — - [06/Nov/2025:12:43:16 +0000] "POST /dci/v3/server/5/server_profile HTTP/1.1" 200 8 "-" "-" "10.60.1.1, 127.0.0.1"
Применение настроек профиля к серверу
Пример вывода
Nov 06 12:54:00 DCI-reference.example.com proxy[56184]: Begin processing request target: '/server/5/server_profile/2', content length: 2
Nov 06 12:54:00 DCI-reference.example.com dci_input[1113]: 127.0.0.1 — - [06/Nov/2025:12:54:00 +0000] "POST /dci/v3/server/5/server_profile/2 HTTP/1.1" 200 8 "-" "-" "10.60.1.1, 127.0.0.1"