Системы управления базами данных
При работе по подключению систем управления базами данных в качестве источника событий в Платформу Радар вам может пригодиться следующая справочная информация:
- Включение/выключение источников в Платформе;
- Пример конфигурационного файла лог-коллектора;
- Руководство по настройке лог-коллектора.
Microsoft SQL Server. Event Log
Характеристики источника в Платформе Радар:
Характеристика | Значение |
---|---|
Название | Microsoft-SQL-Server |
Тип | SQLServer |
Вендор | Microsoft |
Порт | 1519 |
Протокол | TCP |
Примечание: лог-коллектор должен быть установлен на том же сервере, где и Microsoft SQL Server.
Настройка источника включает в себя следующие шаги:
- Включение аудита MS SQL Server.
- Создание учетной записи Windows.
- Предоставление пользователю прав доступа к журналу событий.
- Настройка лог-коллектора и включение источника в платформе.
Шаг 1. Включение аудита MS SQL Server
- Запустите Microsoft SQL Server Management Studio.
-
В окне подключения к базе данных укажите название экземпляра и введите учетные данные (см. рисунок 1).
Рисунок 1 -- Подключение к базе данных
-
В разделе Object explorer перейдите во вкладку "Security" → "Audits". Вызовите контекстное меню и выберите опцию New Audit... (см. рисунок 2).
Рисунок 2 -- Создание аудита
-
В открывшейся вкладке "Create Audit", в поле Audit name укажите название аудита, в поле Audit destination выберите значение "Application Log" и нажмите кнопку ОК (см. рисунок 3).
Рисунок 3 -- Настройка аудита
-
В разделе Object explorer перейдите во вкладку "Security" → "Server Audit Specification". Вызовите контекстное меню и опцию New Server Audit Specification... (см. рисунок 4).
Рисунок 4 -- Создание спецификации аудита
-
В открывшейся вкладке "Create Server Audit Specification" (см. рисунок 5) выполните следующие действия:
- в поле Name укажите название спецификации аудита;
- в поле Audit из выпадающего списка выберите ранее созданный аудит;
- в поле Actions выберите типы событий для отслеживания,
- нажмите кнопку ОК.
Рисунок 5 -- Настройка спецификации аудита
Шаг 2. Создание учетной записи Windows
- В панели управления Windows откройте консоль Computer Management (Управление компьютером).
-
В консоли откройте раздел System Tools (Служебные программы) → Local Users and Groups (Локальные пользователи и группы) → Users (Пользователи), вызовите контекстное меню и выберите функцию New User (Новый пользователь) для создания нового пользователя (см. рисунок 6).
Рисунок 6 -- Создание пользователя
-
В открывшемся окне New User (Новый пользователь) (см. рисунок 7) выполните следующие действия:
- в поле Name (Имя) укажите имя нового пользователя;
- в поле Password (Пароль) установите пароль и подтвердить его в поле Confirm Password (Подтвердить);
- при необходимости установите следующие флаги:
- User cannot change password (Запретить смену пароля пользователем);
- Password never expires (Срок действия пароля неограничен).
- нажмите кнопку Create.
Рисунок 7 -- Настройка параметров пользователя
IШаг 3. Предоставление пользователю прав доступа к журналу событий
- В консоли Computer Management (Управление компьютером) перейдите в раздел System Tools (Служебные программы) → Local Users and Groups (Локальные пользователи и группы) → Groups (Группы).
- Выберите в списке группу Event Log Readers (Читатели журнала событий), вызовите контекстное меню и выберите пункт Add To Group (Добавить в группу). Откроется окно "Event Log Readers Properties (Свойства: Читатели журнала событий)".
-
В окне выполните следующие действия:
- нажмите кнопку Add (Добавить);
- в открывшемся окне "Select Users (Выбор: Пользователи)" выберите из списка ранее созданного пользователя и добавьте его в группу, нажав кнопку ОК.
-
Нажмите кнопку OK.
Шаг 4. Настройка лог-коллектора и включение источника в платформе
-
В файл конфигурации лог-коллектора
config.yaml
внесите следующие изменения:eventlog_collector: & eventlog_collector id: "eventlog_collector" channel: ['Application'] query: "*[System[Provider[@Name='Имя экземпляра СУБД>']]]" batch_size: 31 timeout: 3 poll_interval: 1 read_from_last: false resolve_sid: false log_level: "INFO" worker_count: 1 remote: enabled: true user: "<user_name>" password: "<password>" domain: "." remote_servers: ["<IP-адрес сервера с СУБД>"] auth_method: "Negotiate" encoding: change_to_utf8: true original_encoding: "cp1251" tcp_output_mssql: & tcp_output_mssql id: "tcp_output_mssql" target_host: "<IP-адрес Платформы Радар/или балансера>" port: 1519 log_level: "INFO" collectors: event_log: - <<: *eventlog_collector senders: port: 48002 tcp: - <<: *tcp_output_mssql route_mssql: &route_mssql collector_id: - "eventlog_collector" sender_id: - "tcp_output_mssql" routers: - <<: *route_mssql
Примечание: в качестве данных для подключения необходимо использовать созданную ранее учетную запись. В параметре
query
указывается запрос для получения событий только от настраиваемого источника. -
Перезапустите службу лог-коллектора.
- Перейдите в раздел Администрирование → Источники → Управление источниками.
- Включите источник Microsoft-SQL-Server.
- Нажмите кнопку Синхронизировать.
- Перейдите в раздел События и проверьте наличие потока событий от данного источника.
Microsoft SQL Server. ODBC
Характеристики источника в Платформе Радар:
Характеристика | Значение |
---|---|
Название | Microsoft-SQL-Server |
Тип | SQLServer |
Вендор | Microsoft |
Порт | 1519 |
Протокол | TCP |
Примечание: лог-коллектор должен быть установлен на том же сервере, где и Microsoft SQL Server.
Настройка источника включает в себя следующие шаги:
- Включение аудита MS SQL Server.
- Установка ODBC драйвера.
- Настройка лог-коллектора и включение источника в платформе.
Шаг 1. Включение аудита MS SQL Server
- Запустите Microsoft SQL Server Management Studio.
-
В окне подключения к базе данных укажите название экземпляра и введите учетные данные (см. рисунок 8).
Рисунок 8 -- Подключение к базе данных
-
В разделе Object explorer перейдите во вкладку "Security" → "Audits". Вызовите контекстное меню и выберите опцию New Audit... (см. рисунок 9).
Рисунок 9 -- Создание аудита
-
В открывшейся вкладке "Create Audit", в поле Audit name укажите название аудита, в поле Audit destination выберите значение "Application Log" и нажмите кнопку ОК (см. рисунок 10).
Рисунок 10 -- Настройка аудита
-
В разделе Object explorer перейдите во вкладку "Security" → "Server Audit Specification". Вызовите контекстное меню и опцию New Server Audit Specification... (см. рисунок 11).
Рисунок 11 -- Создание спецификации аудита
-
В открывшейся вкладке "Create Server Audit Specification" (см. рисунок 12) выполните следующие действия:
- в поле Name укажите название спецификации аудита;
- в поле Audit из выпадающего списка выберите ранее созданный аудит;
- в поле Actions выберите типы событий для отслеживания;
- нажмите кнопку ОК.
Рисунок 12 -- Настройка спецификации аудита
Шаг 2. Установка ODBC драйвера
- С официального сайта скачайте ODBC Driver for SQL Server.
- Установите скачанный драйвер на сервер с коллектором.
-
Узнайте точное название драйвера. Для этого запустите Administrative Tools → ODBC Data Sources (64-bit) (см. рисунок 13) во вкладке Drivers (поле Name)
Рисунок 3 -- Раздел "Administrative Tools"
-
Откроется окно просмотра информации о драйвере. Необходимое значение отображается на вкладке "Drivers" в поле Name (см. рисунок 14).
Рисунок 14 -- Просмотр информации о драйвере
Шаг 3. Настройка лог-коллектора и включение источника в платформе
-
В файл конфигурации лог-коллектора
config.yaml
внесите следующие изменения:odbc_collector: &odbc_collector id: "odbc_collector" poll_interval: 5 read_from_last: true connection_string: "server=IP-адрес сервера с СУБД;port=1433;driver={ODBC Driver 18 for SQL Server};database=master;Encrypt=Optional;UID=<user_name>;PWD=<Password>" sql: > SELECT CAST(DATEDIFF_BIG(ns, '1970-01-01 00:00:00.0000000', event_time) AS BIGINT) as epoch, event_time, action_id, succeeded, session_id, class_type, session_server_principal_name, server_principal_name, server_principal_sid, database_principal_name, target_server_principal_name, target_server_principal_sid, target_database_principal_name, server_instance_name, database_name, schema_name, object_name, statement, additional_information, transaction_id FROM fn_get_audit_file ('C:\Program Files\Microsoft SQL Server\MSSQL13.SQLEXPRESS\MSSQL\DATA\*.sqlaudit', default, default) WHERE CAST(DATEDIFF_BIG(ns, '1970-01-01 00:00:00.0000000', event_time) AS BIGINT) > ?; bookmark_field: "epoch" tcp_output_mssql: & tcp_output_mssql id: "tcp_output_mssql" target_host: "<IP-адрес Платформы Радар/или балансера>" port: 1519 log_level: "INFO" collectors: odbc: - <<: *odbc_collector senders: port: 48002 tcp: - <<: *tcp_output_mssql route_mssql: &route_mssql collector_id: - "odbc_collector" sender_id: - "tcp_output_mssql" routers: - <<: *route_mssql
В поле
connection_string
укажите:- IP-адрес сервера с СУБД;
- Порт для подключения к базе данных;
- Название драйвера;
- Название базы данных;
- Учетные данные для подключения к БД.
В разделе с SQL запросом необходимо указать путь к файлам с событиями аудита.
-
Перезапустите службу лог-коллектора.
- Перейдите в раздел Администрирование → Источники → Управление источниками.
- Включите источник Microsoft-SQL-Server.
- Нажмите кнопку Синхронизировать.
- Перейдите в раздел События и проверьте наличие потока событий от данного источника.
Oracle Database. Audit
Характеристики источника в Платформе Радар:
Характеристика | Значение |
---|---|
Название | Oracle-Database |
Тип | Database |
Вендор | Oracle |
Порт | 2770 |
Протокол | TCP |
Для настройки источника выполните следующие действия:
-
Подключитесь к СУБД локально с привилегиями
sysdba
:# sqlplus / as sysdba
-
Выполните команду:
# alter session set "_ORACLE_SCRIPT"=true
-
Установите журнал аудита OS:
# ALTER SYSTEM SET audit_trail=OS SCOPE=SPFILE
-
Выключите и включите СУБД:
# Shutdown # Startup
-
Проверьте параметры аудита командой:
# show parameter audit
Убедитесь, что
audit_trail
принял значение OS. Запишите значениеaudit_file_dest
, оно понадобится при настройке отправки сообщений для параметраFile
. -
Выполните команду:
# ALTER SYSTEM SET audit_sys_operations=true SCOPE=SPFILE
-
Установите важность событий командой:
# alter system set audit_syslog_level='local5.info' scope=spfile sid='*'
-
Выполните команду
# ALTER SYSTEM SET audit_trail=DB, EXTENDED SCOPE=SPFILE
-
Выполните последовательно команды:
# Shutdown # Startup # show parameter audit
На выходе должны появиться сообщения (см. рисунок 15).
Рисунок 15 -- Вывод сообщений
-
Настройте параметры аудита:
AUDIT ALTER SYSTEM BY ACCESS; AUDIT DELETE ON SYS.AUD$ BY ACCESS; AUDIT DELETE ON SYS.FGA_LOG$ BY ACCESS; AUDIT EXECUTE ON SYS.DBMS_FGA BY ACCESS; AUDIT INSERT ON SYS.AUD$ BY ACCESS; AUDIT INSERT ON SYS.FGA_LOG$ BY ACCESS; AUDIT SELECT ON SYS.DBA_USERS BY ACCESS; AUDIT SELECT ON SYS.LINK$ BY ACCESS; AUDIT SELECT ON SYS.USER_DB_LINKS BY ACCESS; AUDIT SELECT ON SYS.USER_HISTORY$ BY ACCESS; AUDIT SYSTEM AUDIT BY ACCESS; AUDIT TABLE BY ACCESS; AUDIT UPDATE ON SYS.AUD$ BY ACCESS; AUDIT UPDATE ON SYS.FGA_LOG$ BY ACCESS;
-
В каталоге
/etc/rsyslog.d/
создайте конфигурационный файлoracle_audit.conf
и укажите в нем следующие настройки:input(type="imfile" File="<значение audit_file_dest из п.7>.xml" PersistStateInterval="100" Tag="oracle_audit_trail:" Severity="info" Facility="local5" startmsg.regex="<AuditRecord>" ) local5.* @@<IP-адрес лог-коллектора>:2770
Где:
local5
- необходимое значение facility;@@
- передача данных по протоколу TCP;<IP-адрес лог-коллектора>
- IP-адрес лог-коллектора;2770
- порт, по которому лог-коллектор будет принимать события от данного источника.
-
Сохраните изменения и перезапустите службу
rsyslog
:# systemctl restart rsyslog.service
-
В файл конфигурации лог-коллектора
config.yaml
внесите следующие изменения:tcp_input_oracle_audit: & tcp_input_oracle_audit id: "tcp_input_oracle_audit" host: "<IP-адрес лог-коллектора>" port: 2770 sock_buf_size: 0 format: "json" log_level: "INFO" tcp_output_oracle_audit: & tcp_output_oracle_audit id: "tcp_output_oracle_audit" target_host: "<IP-адрес Платформы Радар/или балансера>" port: 2770 sock_buf_size: 0 log_level: "INFO" collectors: tcp_receiver: - <<: *tcp_input_oracle_audit senders: port: 48003 tcp: - <<: *tcp_output_oracle_audit route_oracle_audit: &route_oracle_audit collector_id: - "tcp_input_oracle_audit" sender_id: - "tcp_output_oracle_audit" routers: - <<: *route_oracle_audit
-
Перезапустите службу лог-коллектора.
- Перейдите в раздел Администрирование → Источники → Управление источниками.
- Включите источник Oracle-Database.
- Нажмите кнопку Синхронизировать.
- Перейдите в раздел События и проверьте наличие потока событий от данного источника.
Orcale Database. NetListener
Характеристики источника в Платформе Радар:
Характеристика | Значение |
---|---|
Название | Oracle-Database-NetListener |
Тип | Database |
Вендор | Oracle |
Порт | 2771 |
Протокол | TCP |
Для настройки источника выполните следующие действия:
-
Запустите LSNRCTL командой:
# LSNRCTL
-
Определите экземпляр используемой службы Oracle NetListener командой:
# show current_listener
После выполнения команды отобразится имя экземпляра СУБД.
-
Для смены используемого экземпляра используется команда:
# set current_listener
-
Проверьте статус журналирования:
# show log_status
Если для параметра
log_status
указано OFF, то включите журналирование:# set log_status on save_config reload
-
В каталоге
/etc/rsyslog.d/
создайте конфигурационный файлoracle_netlistener.conf
и укажите в нем следующие настройки:module(load="imfile" mode="inotify") #PollingInterval="10") #mode="inotify") input(type="imfile" File="/<параметр File из п.4 >/log.xml" PersistStateInterval="100" Tag="oracle_netlistener:" Severity="info" Facility="local3" readMode="2" )local3.* @@<IP-адрес лог-коллектора>:2771
Где:
local3
- необходимое значение facility;@@
- передача данных по протоколу TCP;<IP-адрес лог-коллектора>
- IP-адрес лог-коллектора;2771
- порт, по которому лог-коллектор будет принимать события от данного источника.
-
Сохраните изменения и перезапустите службу
rsyslog
:# systemctl restart rsyslog.service
-
В файл конфигурации лог-коллектора
config.yaml
внесите следующие изменения:tcp_input_oracle_netlistener: & tcp_input_oracle_netlistener id: "tcp_input_oracle_netlistener" host: "<IP-адрес лог-коллектора>" port: 2771 sock_buf_size: 0 format: "json" log_level: "INFO" tcp_output_oracle_netlistener: & tcp_output_oracle_netlistener id: "tcp_output_oracle_netlistener" target_host: "<IP-адрес Платформы Радар/или балансера>" port: 2771 sock_buf_size: 0 log_level: "INFO" collectors: tcp_receiver: - <<: *tcp_input_oracle_netlistener senders: port: 48003 tcp: - <<: *tcp_output_oracle_netlistener route_oracle_netlistenert: &route_oracle_netlistener collector_id: - "tcp_input_oracle_netlistener" sender_id: - "tcp_output_oracle_netlistener" routers: - <<: *route_oracle_netlistener
-
Перезапустите службу лог-коллектора.
- Перейдите в раздел Администрирование → Источники → Управление источниками.
- Включите источник Oracle-Database-NetListener.
- Нажмите кнопку Синхронизировать.
- Перейдите в раздел События и проверьте наличие потока событий от данного источника.
Oracle MySQL
Характеристики источника в Платформе Радар:
Характеристика | Значение |
---|---|
Название | Oracle-MySQL |
Тип | MySQL |
Вендор | Oracle |
Порт | 4005 |
Протокол | TCP |
Для настройки источника выполните следующие действия:
-
Установите модуль аудита MariaDB, последовательно выполнив команды:
# wget http://mirror.mephi.ru/mariadb/mariadb-10.1.45/bintar-linux-x86_64/mariadb-10.1.45-linux-x86_64.tar.gz # sudo tar -xzf mariadb-10.5.5-linux-x86_64.tar.gz # sudo install mariadb-10.1.45-linux-x86_64/lib/plugin/server_audit.so /usr/lib/mysql/plugin # sudo install mariadb-10.5.5-linux-x86_64/lib/plugin/server_audit.so /usr/lib/mysql/plugin # Sudo mysql # INSTALL PLUGIN server_audit SONAME 'server_audit.so' # SHOW PLUGINS # Set Global server_audit_logging=on # EXIT
-
В конфигурационном файле
/etc/mysql/mysql.conf.d/mysqld.cnf
укажите следующие настройки::plugin-load=server_audit=server_audit.so server_audit_logging=on server_audit_events=connect,query,table,query_ddl,query_dml,query_dcl server_audit_output_type = SYSLOG server_audit_syslog_facility = LOG_SYSLOG server_audit_file_path = /var/log/mysql/audit.log
-
Перезапустите сервис MySQL:
service mysql restart
-
В каталоге
/etc/rsyslog.d/
создайте конфигурационный файл20-mysql.conf
и укажите в нем следующие настройки:template (name="radar" type="string" string="<%PRI%>%TIMESTAMP:::date-rfc3339% %HOSTNAME% %syslogtag%%$.suffix%%msg:::sp-if-no-1st-sp%%msg%") :syslogtag, contains, "mysql" @@<IP-адрес лог-коллектора>:4005;radar
Где:
@@
- передача данных по протоколу TCP;<IP-адрес лог-коллектора>
- IP-адрес лог-коллектора;4005
- порт, по которому лог-коллектор будет принимать события от данного источника.
-
Сохраните изменения и перезапустите службу
rsyslog
:# systemctl restart rsyslog.service
-
В файл конфигурации лог-коллектора
config.yaml
внесите следующие изменения:tcp_input_oracle_mysql: & tcp_input_oracle_mysql id: "tcp_input_oracle_mysql" host: "<IP-адрес лог-коллектора>" port: 4005 sock_buf_size: 0 format: "json" log_level: "INFO" tcp_output_oracle_mysql: & tcp_output_oracle_mysql id: "tcp_output_oracle_mysql" target_host: "<IP-адрес Платформы Радар/или балансера>" port: 4005 sock_buf_size: 0 log_level: "INFO" collectors: tcp_receiver: - <<: *tcp_input_oracle_mysql senders: port: 48003 tcp: - <<: *tcp_output_oracle_mysql route_oracle_mysql: &route_oracle_mysql collector_id: - "tcp_input_oracle_mysql" sender_id: - "tcp_output_oracle_mysql" routers: - <<: *route_oracle_mysql
-
Перезапустите службу лог-коллектора.
- Перейдите в раздел Администрирование → Источники → Управление источниками.
- Включите источник Oracle-MySQL.
- Нажмите кнопку Синхронизировать.
- Перейдите в раздел События и проверьте наличие потока событий от данного источника.
PostgreSQL
Характеристики источника в Платформе Радар:
Характеристика | Значение |
---|---|
Название | PostgreSQL-PostgreSQL |
Тип | PostgreSQL |
Вендор | PostgreSQL |
Порт | 4000 |
Протокол | TCP |
Для настройки источника выполните следующие действия:
-
Узнайте расположение конфигурационного файла
postgresql.conf
на сервере:# psql -U <username> -c 'SHOW config_file'
Пример ответа:
/var/app/data/postgresql.conf
-
В конфигурационный файл
postgresql.conf
укажите следующие настройки:log_destination = 'syslog' logging_collector = off syslog_facility = 'LOCAL0' syslog_ident = 'postgres' syslog_sequence_numbers = on syslog_split_messages = off client_min_messages = log log_min_messages = info log_min_error_statement = info log_checkpoints = off log_connections = on log_disconnections = on log_duration = off log_error_verbosity = default log_hostname = on log_line_prefix = 'pgmessage: %m %a %u %d %r %i %e ' log_statement = 'mod' lc_messages = 'en_US.UTF-8'
-
Перезапустите службу
postgresql
. -
В каталоге
/etc/rsyslog.d/
создайте конфигурационный файл10-pgsql.conf
и укажите в нем следующие настройки:if $programname == 'postgres' then @<IP-адрес лог-коллектора>:4000
Где:
@
- передача данных по протоколу UDP;<IP-адрес лог-коллектора>
- IP-адрес лог-коллектора;4000
- порт, по которому лог-коллектор будет принимать события от данного источника.
-
Сохраните изменения и перезапустите службу
rsyslog
:# systemctl restart rsyslog.service
-
В файл конфигурации лог-коллектора
config.yaml
внесите следующие изменения:udp_input_postgre: & udp_input_postgre id: "udp_input_postgre" host: "<IP-адрес лог-коллектора>" port: 4000 sock_buf_size: 0 format: "json" log_level: "INFO" tcp_output_postgre: & tcp_output_postgre id: "tcp_output_postgre" target_host: "<IP-адрес Платформы Радар/или балансера>" port: 4000 sock_buf_size: 0 log_level: "INFO" collectors: udp_receiver: - <<: *udp_input_postgre senders: port: 48003 tcp: - <<: *tcp_output_postgre route_postgre: &route_postgre collector_id: - "udp_input_postgre" sender_id: - "tcp_output_postgre" routers: - <<: *route_postgre
-
Перезапустите службу лог-коллектора.
- Перейдите в раздел Администрирование → Источники → Управление источниками.
- Включите источник PostgreSQL-PostgreSQL.
- Нажмите кнопку Синхронизировать.
- Перейдите в раздел События и проверьте наличие потока событий от данного источника.