Перейти к содержимому

Как поместить логи sql в журнал application

  • автор:

Просмотр журнала приложений Windows

Если настройками SQL Server предусмотрено использование журнала приложений Microsoft Windows, каждый сеанс SQL Server записывает новые события в этот журнал. В отличие от журнала ошибок SQL Server , новый журнал приложений не создается заново каждый раз при запуске экземпляра SQL Server.

Просмотр и управление журналом приложений Windows осуществляется с помощью средства просмотра событий Windows или средства просмотра журналов в среде SQL Server Management Studio.

С помощью средства просмотра событий можно просмотреть три журнала.

Тип журнала Windows Описание
Системный журнал Регистрирует события, записанные компонентами операционной системы Windows. Например, отказ загрузки драйвера или другого системного компонента при запуске записывается в системный журнал.
Журнал безопасности Регистрирует события безопасности, например неудавшиеся попытки входа в систему. Это помогает отследить изменения в системе безопасности и идентифицировать возможные «дыры». Например, попытка войти в систему регистрируется в журнале безопасности в зависимости от параметров аудита в диспетчере пользователей.

Дополнительные сведения о средстве просмотра событий, управлении журналом приложений и данных, которые он представляет, см. в документации Windows.

Просмотр журнала приложений Windows

Просмотр журнала приложений Windows

SQL Server настроен для использования журнала приложений Windows, каждый сеанс SQL Server записывает в этот журнал новые события. В отличие от журнала ошибок SQL Server, новый журнал приложений не создается каждый раз при запуске экземпляра SQL Server.

В этой статье рассматриваются операционные системы Windows 10 и более поздних версий.

Просмотр журнала приложений Windows

  1. На панели поиска введите средство просмотра событий, а затем выберите классическое приложение Просмотр событий.
  2. В Просмотре событий разверните папку Журналы Windows и выберите журнал событий Приложение.
  3. События SQL Server определяются записью MSSQLSERVER (именованные экземпляры определяются с помощью MSSQL$instance_name>) в столбце Source. События агента SQL Server определяются записью SQLSERVERAGENT (для именованных экземпляров SQL Server, события агента SQL Server определяются с помощью SQLAgent$> События службы Microsoft Search идентифицируются записью Microsoft Search.
  4. Чтобы просмотреть журнал с другого компьютера, щелкните правой кнопкой мыши элемент Просмотр событий (локальных). Выберите пункт Подключение к другому компьютеру и заполните поля в диалоговом окне Выбор компьютера.
  5. При необходимости, чтобы отобразить только события SQL Server, в меню «Вид » выберите «Фильтр«. В списке Источник событий выберите MSSQLSERVER. Чтобы просмотреть только события агента SQL Server, вместо этого выберите SQLSERVERAGENT в списке источников событий.
  6. Чтобы просмотреть дополнительные сведения о событии, дважды щелкните событие.

Вертим логи как хотим ― анализ журналов в системах Windows

Пора поговорить про удобную работу с логами, тем более что в Windows есть масса неочевидных инструментов для этого. Например, Log Parser, который порой просто незаменим.

В статье не будет про серьезные вещи вроде Splunk и ELK (Elasticsearch + Logstash + Kibana). Сфокусируемся на простом и бесплатном.

Журналы и командная строка

До появления PowerShell можно было использовать такие утилиты cmd как find и findstr. Они вполне подходят для простой автоматизации. Например, когда мне понадобилось отлавливать ошибки в обмене 1С 7.7 я использовал в скриптах обмена простую команду:

findstr "Fail" *.log >> fail.txt

Она позволяла получить в файле fail.txt все ошибки обмена. Но если было нужно что-то большее, вроде получения информации о предшествующей ошибке, то приходилось создавать монструозные скрипты с циклами for или использовать сторонние утилиты. По счастью, с появлением PowerShell эти проблемы ушли в прошлое.

Основным инструментом для работы с текстовыми журналами является командлет Get-Content, предназначенный для отображения содержимого текстового файла. Например, для вывода журнала сервиса WSUS в консоль можно использовать команду:

Get-Content -Path 'C:\Program Files\Update Services\LogFiles\SoftwareDistribution.log' | Out-Host -Paging

Для вывода последних строк журнала существует параметр Tail, который в паре с параметром Wait позволит смотреть за журналом в режиме онлайн. Посмотрим, как идет обновление системы командой:

>Get-Content -Path "C:\Windows\WindowsUpdate.log" -Tail 5 -Wait

Смотрим за ходом обновления Windows.

Если же нам нужно отловить в журналах определенные события, то поможет командлет Select-String, который позволяет отобразить только строки, подходящие под маску поиска. Посмотрим на последние блокировки Windows Firewall:

Select-String -Path "C:\Windows\System32\LogFiles\Firewall\pfirewall.log" -Pattern 'Drop' | Select-Object -Last 20 | Format-Table Line

Смотрим, кто пытается пролезть на наш дедик.

При необходимости посмотреть в журнале строки перед и после нужной, можно использовать параметр Context. Например, для вывода трех строк после и трех строк перед ошибкой можно использовать команду:

Select-String 'C:\Windows\Cluster\Reports\Cluster.log' -Pattern ' err ' ‑Context 3

Оба полезных командлета можно объединить. Например, для вывода строк с 45 по 75 из netlogon.log поможет команда:

Get-Content 'C:\Windows\debug\netlogon.log' | Select-Object -First 30 -Skip 45

Журналы системы ведутся в формате .evtx, и для работы с ними существуют отдельные командлеты. Для работы с классическими журналами («Приложение», «Система», и т.д.) используется Get-Eventlog. Этот командлет удобен, но не позволяет работать с остальными журналами приложений и служб. Для работы с любыми журналами, включая классические, существует более универсальный вариант ― Get-WinEvent. Остановимся на нем подробнее.

Для получения списка доступных системных журналов можно выполнить следующую команду:

Get-WinEvent -ListLog *

Вывод доступных журналов и информации о них.

Для просмотра какого-то конкретного журнала нужно лишь добавить его имя. Для примера получим последние 20 записей из журнала System командой:

Get-WinEvent -LogName 'System' -MaxEvents 20

Последние записи в журнале System.

Для получения определенных событий удобнее всего использовать хэш-таблицы. Подробнее о работе с хэш-таблицами в PowerShell можно прочитать в материале Technet about_Hash_Tables.

Для примера получим все события из журнала System с кодом события 1 и 6013.

Get-WinEvent -FilterHashTable @

В случае если надо получить события определенного типа ― предупреждения или ошибки, ― нужно использовать фильтр по важности (Level). Возможны следующие значения:

  • 0 ― всегда записывать;
  • 1 ― критический;
  • 2 ― ошибка;
  • 3 ― предупреждение;
  • 4 ― информация;
  • 5 ― подробный (Verbose).

Собрать хэш-таблицу с несколькими значениями важности одной командой так просто не получится. Если мы хотим получить ошибки и предупреждения из системного журнала, можно воспользоваться дополнительной фильтрацией при помощи Where-Object:

Get-WinEvent -FilterHashtable @ | Where-Object -FilterScript

Ошибки и предупреждения журнала System.

Аналогичным образом можно собирать таблицу, фильтруя непосредственно по тексту события и по времени.

Подробнее почитать про работу обоих командлетов для работы с системными журналами можно в документации PowerShell:

PowerShell ― механизм удобный и гибкий, но требует знания синтаксиса и для сложных условий и обработки большого количества файлов потребует написания полноценных скриптов. Но есть вариант обойтись всего-лишь SQL-запросами при помощи замечательного Log Parser.

Работаем с журналами посредством запросов SQL

Утилита Log Parser появилась на свет в начале «нулевых» и с тех пор успела обзавестись официальной графической оболочкой. Тем не менее актуальности своей она не потеряла и до сих пор остается для меня одним из самых любимых инструментов для анализа логов. Загрузить утилиту можно в Центре Загрузок Microsoft, графический интерфейс к ней ― в галерее Technet. О графическом интерфейсе чуть позже, начнем с самой утилиты.

О возможностях Log Parser уже рассказывалось в материале «LogParser — привычный взгляд на непривычные вещи», поэтому я начну с конкретных примеров.

Для начала разберемся с текстовыми файлами ― например, получим список подключений по RDP, заблокированных нашим фаерволом. Для получения такой информации вполне подойдет следующий SQL-запрос:

SELECT extract_token(text, 0, ' ') as date, extract_token(text, 1, ' ') as time, extract_token(text, 2, ' ') as action, extract_token(text, 4, ' ') as src-ip, extract_token(text, 7, ' ') as port FROM 'C:\Windows\System32\LogFiles\Firewall\pfirewall.log' WHERE action='DROP' AND port='3389' ORDER BY date,time DESC

Посмотрим на результат:

Смотрим журнал Windows Firewall.

Разумеется, с полученной таблицей можно делать все что угодно ― сортировать, группировать. Насколько хватит фантазии и знания SQL.

Log Parser также прекрасно работает с множеством других источников. Например, посмотрим откуда пользователи подключались к нашему серверу по RDP.

Работать будем с журналом TerminalServices-LocalSessionManager\Operational.

Не со всеми журналами Log Parser работает просто так ― к некоторым он не может получить доступ. В нашем случае просто скопируем журнал из %SystemRoot%\System32\Winevt\Logs\Microsoft-Windows-TerminalServices-LocalSessionManager%4Operational.evtx в %temp%\test.evtx.

Данные будем получать таким запросом:

SELECT timegenerated as Date, extract_token(strings, 0, '|') as user, extract_token(strings, 2, '|') as sourceip FROM '%temp%\test.evtx' WHERE EventID = 21 ORDER BY Date DESC

Смотрим, кто и когда подключался к нашему серверу терминалов.

Особенно удобно использовать Log Parser для работы с большим количеством файлов журналов ― например, в IIS или Exchange. Благодаря возможностям SQL можно получать самую разную аналитическую информацию, вплоть до статистики версий IOS и Android, которые подключаются к вашему серверу.

В качестве примера посмотрим статистику количества писем по дням таким запросом:

SELECT TO_LOCALTIME(TO_TIMESTAMP(EXTRACT_PREFIX(TO_STRING([#Fields: date-time]),0,'T'), 'yyyy-MM-dd')) AS Date, COUNT(*) AS [Daily Email Traffic] FROM 'C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\MessageTracking\*.LOG' WHERE (event-id='RECEIVE') GROUP BY Date ORDER BY Date ASC

Если в системе установлены Office Web Components, загрузить которые можно в Центре загрузки Microsoft, то на выходе можно получить красивую диаграмму.

Выполняем запрос и открываем получившуюся картинку…

Любуемся результатом.

Следует отметить, что после установки Log Parser в системе регистрируется COM-компонент MSUtil.LogQuery. Он позволяет делать запросы к движку утилиты не только через вызов LogParser.exe, но и при помощи любого другого привычного языка. В качестве примера приведу простой скрипт PowerShell, который выведет 20 наиболее объемных файлов на диске С.

$LogQuery = New-Object -ComObject "MSUtil.LogQuery" $InputFormat = New-Object -ComObject "MSUtil.LogQuery.FileSystemInputFormat" $InputFormat.Recurse = -1 $OutputFormat = New-Object -ComObject "MSUtil.LogQuery.CSVOutputFormat" $SQLQuery = "SELECT Top 20 Path, Size INTO '%temp%\output.csv' FROM 'C:\*.*' ORDER BY Size DESC" $LogQuery.ExecuteBatch($SQLQuery, $InputFormat, $OutputFormat) $CSV = Import-Csv $env:TEMP'\output.csv' $CSV | fl Remove-Item $env:TEMP'\output.csv' $LogQuery=$null $InputFormat=$null $OutputFormat=$null

Ознакомиться с документацией о работе компонента можно в материале Log Parser COM API Overview на портале SystemManager.ru.

Благодаря этой возможности для облегчения работы существует несколько утилит, представляющих из себя графическую оболочку для Log Parser. Платные рассматривать не буду, а вот бесплатную Log Parser Studio покажу.

Интерфейс Log Parser Studio.

Основной особенностью здесь является библиотека, которая позволяет держать все запросы в одном месте, без россыпи по папкам. Также сходу представлено множество готовых примеров, которые помогут разобраться с запросами.

Вторая особенность ― возможность экспорта запроса в скрипт PowerShell.

В качестве примера посмотрим, как будет работать выборка ящиков, отправляющих больше всего писем:

Выборка наиболее активных ящиков.

При этом можно выбрать куда больше типов журналов. Например, в «чистом» Log Parser существуют ограничения по типам входных данных, и отдельного типа для Exchange нет ― нужно самостоятельно вводить описания полей и пропуск заголовков. В Log Parser Studio нужные форматы уже готовы к использованию.

Помимо Log Parser, с логами можно работать и при помощи возможностей MS Excel, которые упоминались в материале «Excel вместо PowerShell». Но максимального удобства можно достичь, подготавливая первичный материал при помощи Log Parser с последующей обработкой его через Power Query в Excel.

Приходилось ли вам использовать какие-либо инструменты для перелопачивания логов? Поделитесь в комментариях.

Системы управления базами данных

Получение событий с Microsoft SQL Server возможно реализовать двумя способами:

  • через события Windows events;
  • через ODBC коллектор.

Настройка получения событий через windows events.

Включение аудита MS SQL Server:

  1. Запустите Microsoft SQL Server Management Studio.
  2. В окне подключения к базе данных укажите название экземпляра и введите учетные данные (см. рисунок 1). Подключение к базе данныхРисунок 1 — Подключение к базе данных
  3. В панели Object explorer перейдите во вкладку Security → Audits. По правому щелчку мыши выберите опцию New Audit. (см. рисунок 2). Создание аудитаРисунок 2 — Создание аудита
  4. В открывшейся вкладке Create Audit укажите название аудита в поле Audit name. В качестве Audit destination выберите Application Log, нажмите ОК (см. рисунок 3). Настройка аудитаРисунок 3 — Настройка аудита
  5. В панели Object explorer перейдите во вкладку Security → Server Audit Specification. По правому щелчку мыши выберите опцию New Server Audit Specification. (см. рисунок 4). Создание спецификации аудитаРисунок 4 — Создание спецификации аудита
  6. В открывшейся вкладке Create Server Audit Specification укажите название спецификации аудита в поле Name. В поле Audit выберите ранее созданный аудит из выпадающего списка. В поле Actions выберите типы событий для отслеживания, нажмите ОК (см. рисунок 5). Настройка спецификации аудитаРисунок 5 — Настройка спецификации аудита

Создание учетной записи windows:

Создание пользователя

  1. В панели управления Windows откройте консоль Computer Management (Управление компьютером).
  2. В консоли откройте раздел System Tools (Служебные программы) → Local Users and Groups (Локальные пользователи и группы) → Users (Пользователи).
  3. В контекстном меню раздела Users (Пользователи) выберите функцию New User (Новый пользователь) для создания нового пользователя (см. рисунок 6). Рисунок 6 — Создание пользователя
  4. В открывшемся окне New User (Новый пользователь) введите следующие денные (см. рисунок 7):
    • В поле Name (Имя) ввести имя нового пользователя.
    • В поле Password (Пароль) установить пароль и подтвердить его в поле Confirm Password (Подтвердить).

При необходимости выставить настройки в пунктах:

  • User cannot change password (Запретить смену пароля пользователем).
  • Password never expires (Срок действия пароля неограничен).
  • Для создания пользователя с заданными параметрами нажать кнопку Create.

Настройка параметров пользователя

Рисунок 7 — Настройка параметров пользователя

Предоставление пользователю прав доступа к журналу событий:

  1. В консоли Computer Management (Управление компьютером) откройте раздел System Tools (Служебные программы) → Local Users and Groups (Локальные пользователи и группы) → Groups (Группы).
  2. Выберите в списке группу Event Log Readers (Читатели журнала событий).
  3. Откройте правой кнопкой мыши контекстное меню группы Event Log Readers (Читатели журнала событий) и выберите пункт Add To Group (Добавить в группу). Откроется окно Event Log Readers Properties (Свойства: Читатели журнала событий).
  4. Для добавления пользователя в группу:
    • Нажать кнопку Add (Добавить).
    • В открывшемся окне Select Users (Выбор: Пользователи) выбрать в списке ранее созданного пользователя и добавить его в группу, нажав кнопку ОК.
  5. Для сохранения введенных настроек в окне Event Log Readers Properties (Свойства: Читатели журнала событий) нажмите кнопку OK.

Добавление новой конфигурации в коллектор:

Передача событий в Платформу Радар осуществляется через eventlog_collector. Ниже приведены настройки с описанием для добавления в 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: "" password: "" domain: "." remote_servers: [""] auth_method: "Negotiate" encoding: change_to_utf8: true original_encoding: "cp1251" 

В качестве данных для подключения необходимо использовать созданную ранее учетную запись. В поле query мы указываем запрос для получения событий только от настраиваемого источника.

Настройка получения событий через odbc коллектор.

Включение аудита MS SQL Server:

  1. Запустите Microsoft SQL Server Management Studio.
  2. В окне подключения к базе данных укажите название экземпляра и введите учетные данные (см. рисунок 8). Подключение к базе данныхРисунок 8 — Подключение к базе данных
  3. В панели Object explorer перейдите во вкладку Security → Audits. По правому щелчку мыши выберите опцию New Audit. (см. рисунок 9). Создание аудитаРисунок 9 — Создание аудита
  4. В открывшейся вкладке Create Audit укажите название аудита в поле Audit name. В качестве Audit destination выберите Application Log, нажмите ОК (см. рисунок 10). Настройка аудитаРисунок 10 — Настройка аудита
  5. В панели Object explorer перейдите во вкладку Security → Server Audit Specification. По правому щелчку мыши выберите опцию New Server Audit Specification. (см. рисунок 11). Создание спецификации аудитаРисунок 11 — Создание спецификации аудита
  6. В открывшейся вкладке Create Server Audit Specification укажите название спецификации аудита в поле Name. В поле Audit выберите ранее созданный аудит из выпадающего списка. В поле Actions выберите типы событий для отслеживания, нажмите ОК (см. рисунок 12). Настройка спецификации аудитаРисунок 12 — Настройка спецификации аудита

Установка ODBC драйвера:

  1. С официального сайта скачайте ODBC Driver for SQL Server.
  2. Установите скачанный драйвер на сервер с коллектором.

Добавление новой конфигурации в коллектор:

Передача событий в Платформу Радар осуществляется через odbc_collector. Ниже приведены настройки с описанием для добавления в config.yaml:

odbc_collector: &odbc_collector id: "odbc_collector" poll_interval: 5 read_from_last: true connection_string: "server=IP-адрес сервера с СУБД;port=1433;driver=;database=master;Encrypt=Optional;UID=;PWD=" 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" 

В поле connection_string укажите:

  • IP-адрес сервера с СУБД
  • Порт для подключения к базе данных
  • Название драйвера Примечание: Название драйвера можно узнать, запустив Administrative Tools → ODBC Data Sources (64-bit) во вкладке Drivers (поле Name)
  • Название базы данных
  • Учетные данные для подключения к БД

В разделе с SQL запросом необходимо указать путь к файлам с событиями аудита.

C:\Program Files\Microsoft SQL Server\MSSQL13.SQLEXPRESS\MSSQL\DATA\*.sqlaudit

В данном случае коллектор будет читать все найденные файлы аудита по адресу C:\Program Files\Microsoft SQL Server\MSSQL13.SQLEXPRESS\MSSQL\DATA\

PostgreSQL

Для настройки логирования событий из БД PostrgreSQL выполните шаги:

    В командной строке сервера выполните команду

psql -U -c 'SHOW config_file' 
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' 
nano /etc/rsyslog.d/10-pgsql.conf if $programname == 'postgres' then @@rsyslog:4000 

Настройка ODBC PostgreSQL

  1. В конфигурационном файле /var/app/data/postgresql.conf настройте тип логирования (csvlog) и включите logging_collector .
log\_destination = 'csvlog' logging\_collector = on 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' 
CREATE TABLE postgres_log ( log_time timestamp(3) with time zone, user_name text, database_name text, process_id integer, connection_from text, session_id text, session_line_num bigint, command_tag text, session_start_time timestamp with time zone, virtual_transaction_id text, transaction_id bigint, error_severity text, sql_state_code text, message text, detail text, hint text, internal_query text, internal_query_pos integer, context text, query text, query_pos integer, location text, application_name text, PRIMARY KEY (session_id, session_line_num) ); 
COPY postgres_log FROM '/var/app/data/pg_log/postgresql-2020-09-01_000000.csv' WITH csv; 

Настройка ODBC

Подробнее о переносе описано в Руководстве PostgreSQL

  • Скачайте и установите драйвер ODBC для PostgreSQL на сервер NXLog.
    Проверьте наличие драйвера и его название, оно пригодится при настройке ConnectionString в ODBC-модуле NXLog Рисунок 13 — Настройка ODBC
  • Настройка ODBC-модуля NXLog

    Строка для ODBC-подключения:

     Module im\_odbc ConnectionString Driver=;Server=;Port=;Database=Database\_name;UID=Username;PWD=password; 

    Driver — имя драйвера ODBC из п.5 — PostgreSQL ODBC Driver(UNICODE) или PostgreSQL ODBC Driver(ANSI).
    Server — имя сервера PostgreSQL.
    Port — порт, используемый для подключения к серверу PostgreSQL (default 5432).
    Database — имя базы данных PostgreSQL.
    Uid и Pwd — Uid (идентификатор пользователя) и Pwd (пароль) для подключения.

    Oracle Database

    Настройка источника Oracle Database на отправку событий с помощью Oracle Audit.

    Настройку источника нужно выполнять от имени учетной записи root, поддерживающей в настраиваемом экземпляре СУБД роль sysadmin с привилегиями sysdba и sysoper:

    1. Подключитесь с помощью sqlplus локально, выполнив команду: sqlplus / as sysdba
    2. Выполните команду: alter session set «_ORACLE_SCRIPT»=true;
    3. Проверьте параметры аудита командой: show parameter audit
    4. Выполните команду установки журнала аудита OS: ALTER SYSTEM SET audit_trail=OS SCOPE=SPFILE;
    5. Выключите СУБД командой: Shutdown
    6. Включите СУБД командой: Startup
    7. Проверьте параметры аудита командой: show parameter audit Убедитесь, что audit_trail принял значение OS.
      Запишите значение audit_file_dest , оно понадобится при настройке отправки сообщений для параметра File .
    8. Выполните команду: ALTER SYSTEM SET audit_sys_operations=true SCOPE=SPFILE;
    9. Установите важность событий командой: alter system set audit_syslog_level=’local5.info’ scope=spfile sid=’*’;
    10. Выполните команду ALTER SYSTEM SET audit_trail=DB, EXTENDED SCOPE=SPFILE;
    11. Выполните последовательно команды:

    Shutdown Startup show parameter audit 

    На выходе должны появиться сообщения (см. рисунок 14). Рисунок 14 — Вывод сообщений
    Донастройте параметры аудита:

    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; 
    • создайте файл с конфигурацией для rsyslog: nano /etc/rsyslog.d/oracle_audit.conf
    • настройте чтение из файла:
    input(type="imfile" File=".xml" PersistStateInterval="100" Tag="oracle_audit_trail:" Severity="info" Facility="local5" startmsg.regex="" ) local5.* @@:2770 

    Oracle MySQL

    Для настройки источника Oracle MySQL выполните следующие шаги:

      Установите модуль аудита 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; 
    sudo nano /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 
    ``` SHOW VARIABLES LIKE '%audit%'; EXIT; ``` 

    Далее необходимо настроить rsyslogd. Для этого:

    1. Создайте файл с конфигурацией для rsyslog: sudo nano /etc/rsyslog.d/20-mysql.conf
    2. Запишите в созданный файл следующие значения:

    template (name="radar" type="string" string="%TIMESTAMP. date-rfc3339% %HOSTNAME% %syslogtag%%$.suffix%%msg. sp-if-no-1st-sp%%msg%") :syslogtag, contains, "mysql" @@:4005;radar 

    Orcale NetListener

    Для настройки источника Oracle NetListener выполните следующие шаги:

    1. Запустите LSNRCTL командой: LSNRCTL
    2. Определите экземпляр используемой службы Oracle NetListener командой: show current_listener
    3. После выполнения команды отобразится имя экземпляра СУБД.
    4. Для смены используемого экземпляра используется команда: set current_listener.
    5. Проверьте статус журналирования: show log_status
    6. Если для параметра log_status указано OFF, включите журналирование: set log_status on save_config reload
    7. Для отправки событий через rsyslog, узнайте путь к лог-файлам командой: show log_directory Он понадобится для следующего этапа настройки в параметре File.
    8. Создайте конфигурационный файл для rsyslog: sudo nano /etc/rsyslog.d/oracle_netlistener.conf
    9. Настройте чтение из файла:

    module(load="imfile" mode="inotify") #PollingInterval="10") #mode="inotify") input(type="imfile" File="//log.xml" PersistStateInterval="100" Tag="oracle_netlistener:" Severity="info" Facility="local3" readMode="2" )local3.* @@:2771 

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *