WEB-серверы
При работе по подключению WEB-серверов в качестве источника событий в Платформу Радар вам может пригодиться следующая справочная информация:
- Включение/выключение источников в Платформе;
- Пример конфигурационного файла лог-коллектора;
- Руководство по настройке лог-коллектора.
Apache HTTP Server
Характеристики источника в Платформе Радар:
Характеристика | Значение |
---|---|
Название | Apache-Http-Server |
Тип | Http-Server |
Вендор | Apache-Software-Foundation |
Порт | 2830 |
Протокол | TCP |
Конфигурационный файл системы располагается по следующему пути:
- для систем на базе "Debian" --
/etc/apache2/apache2.conf
; - для систем на базе "RHEL" --
/etc/httpd/conf/httpd.conf
.
Для настройки источника выполните следующие действия:
-
В конфигурационном файле системы укажите уровень журналирования:
LogLevel info
-
Обновите сервис
apache
:# systemctl reload apache2.service
-
Проверьте состояние сервиса:
# systemctl status apache2.service
-
В каталоге
/etc/rsyslog.d/
создайте конфигурационный файлapache2.conf
и укажите в нем следующие настройки:# Apache2 logs input(type="imfile" File="/var/log/apache2/access.log" Tag="apache2-accesslog" Severity="warn" Facility="local2") input(type="imfile" File="/var/log/apache2/error.log" Tag="apache2-errorlog" Severity="warn" Facility="local3") local2,local3.* @@<IP-адрес лог-коллектора>:2830
Где:
local2,local3
- значение facility для журналов Access.log и Error.log;@@
- передача данных по протоколу TCP;<IP-адрес лог-коллектора>
- IP-адрес лог-коллектора;2830
- порт, по которому лог-коллектор будет принимать события от данного источника.
-
Сохраните изменения и перезапустите службу
rsyslog
:# systemctl restart rsyslog.service
-
В файл конфигурации лог-коллектора
config.yaml
внесите следующие изменения:tcp_input_apachehttp: & tcp_input_apachehttp id: "tcp_input_apachehttp" host: "<IP-адрес лог-коллектора>" port: 2830 sock_buf_size: 0 format: "json" log_level: "INFO" tcp_output_apachehttp: & tcp_output_apachehttp id: "tcp_output_apachehttp" target_host: "<IP-адрес Платформы Радар/или балансера>" port: 2830 collectors: tcp_receiver: - <<: *tcp_input_apachehttp senders: port: 48003 tcp: - <<: *tcp_output_apachehttp route_apachehttp: &route_apachehttp collector_id: - "tcp_input_apachehttp" sender_id: - "tcp_output_apachehttp" routers: - <<: *route_apachehttp
-
Перезапустите службу лог-коллектора.
- Перейдите в раздел Администрирование → Источники → Управление источниками.
- Включите источник Apache-Http-Server.
- Нажмите кнопку Синхронизировать.
- Перейдите в раздел События и проверьте наличие потока событий от данного источника.
Apache HTTP Server. Windows
Характеристики источника в Платформе Радар:
Характеристика | Значение |
---|---|
Название | Apache-Http-Server |
Тип | Http-Server |
Вендор | Apache-Software-Foundation |
Порт | 2830 |
Протокол | TCP |
Для настройки источника выполните следующие действия:
-
В конфигурационном файле системы
<путь до каталога Apache>/conf/httpd.conf
укажите следующие настройки:ErrorLog "logs/error.log" <IfModule log_config_module> LogFormat "%h %l %u %t \"%r\" %\>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common CustomLog "logs/access.log" common </IfModule>
-
В ОС Windows перезапустите службу
apache
: -
В файл конфигурации лог-коллектора
config.yaml
внесите изменения в зависимости от хоста, на котором развернут лог-коллектор:Сценарий, когда лог-коллектор развёрнут на том же хосте где и сам DNS сервер:
file_input_apachehttp: & file_input_apachehttp id: "file_input_apachehttp" poll_interval: 1 files: ["C:/Apache24/logs/access.log", "C:/Apache24/logs/error.log"] using_regexp: false regexp_starting_dir: "." regexp_expression: "^.*_logs$" dir_check_interval: 2 read_from_last: true enable_watcher: true log_level: "INFO" format: "json" tcp_sender_apachehttp: & tcp_sender_apachehttp id: "tcp_sender_apachehttp" target_host: "<IP-адрес Платформы Радар/или балансера>" port: 2830 log_level: "INFO" senders: port: 48002 log_level: "INFO" tcp: - <<: *tcp_sender_apachehttp collectors: log_level: "INFO" files: - <<: *file_input_apachehttp route_apachehttp: &route_apachehttp collector_id: - "file_input_apachehttp" sender_id: - "tcp_sender_apachehttp" routers: - <<: *route_apachehttp
Сценарий, когда лог-коллектор забирает события с DNS сервера по SMB:
smb: & smb id: "smb" remote_servers: ["IP-адрес apache-сервера"] port: 445 share: "\\\\IP-адрес apache-сервера\\logs" domain: "." user: "User" password: "Password" poll_interval: 3 files: [ "access.log", "error.log" ] using_regexp: false regexp_starting_dir: "." regexp_expression: ".xml$" dir_check_interval: 3 read_from_last: true format: "json" log_level: "INFO" tcp_sender_apachehttp: & tcp_sender_apachehttp id: "tcp_sender_apachehttp" target_host: "<IP-адрес Платформы Радар/или балансера>" port: 2830 log_level: "INFO" senders: port: 48002 tcp: - <<: *tcp_sender_apachehttp collectors: smb: - <<: *smb route_apachehttp: &route_apachehttp collector_id: - "smb" sender_id: - "tcp_sender_apachehttp" routers: - <<: *route_apachehttp
-
Перезапустите службу лог-коллектора.
- Перейдите в раздел Администрирование → Источники → Управление источниками.
- Включите источник Apache-Http-Server.
- Нажмите кнопку Синхронизировать.
- Перейдите в раздел События и проверьте наличие потока событий от данного источника.
Apache Tomcat
Apache Tomcat - это служба, которая может использоваться в следующих сценариях:
- в качестве самостоятельного веб-сервера;
- в качестве контейнера сервлетов вместе с Glassfish, JBoss;
- в качестве сервера контента, вместе с Apache HTTP Server.
Характеристики источника в Платформе Радар:
Характеристика | Значение |
---|---|
Название | Apache-Tomcat-Web-Server |
Тип | Web-Server |
Вендор | Apache-Software-Foundation |
Порт | 2911 |
Протокол | TCP |
Cобытия от источника включены по умолчанию и записываются в следующие журналы:
catalina.out и catalina.$(date).log
- журнал контейнера сервлетов, основные события, произошедшие с ядром Tomcat;localhost.$(date).log
- журнал событий локального экземпляра Tomcat, в который, как правило, сохраняются основные внутренние ошибки;localhost_access_log.$(date).txt
- журнал запросов (access log), эквивалентный журналу службы httpd (параметры доступа определяются в файле/opt/tomcat/conf/server.xml)
;- журналы
manager.$(date).log и host-manager.$(date).log
- журналы работы веб-приложений, функционирующих в составе Tomcat.
Для настройки источника выполните следующие действия:
-
В каталоге
/etc/rsyslog.d/
создайте конфигурационный файлtomcat.conf
и укажите в нем следующие настройки:# Apache Tomcat logs input(type="imfile" File="/opt/tomcat/logs/localhost_access_log*.txt" Tag="catalina-access" Severity="info" Facility="local1") input(type="imfile" File="/opt/tomcat/logs/catalina.out" Tag="catalina-out" Severity="info" Facility="local2") local1,local2.* @@<IP-адрес лог-коллектора>:514
Где:
local1,local2
- значение facility для журналов Access.log и Сatalina.out;@@
- передача данных по протоколу TCP;<IP-адрес лог-коллектора>
- IP-адрес лог-коллектора;514
- порт, по которому лог-коллектор будет принимать события от данного источника.
Внимание! В случае, если Tomcat запущен из-под выделенной учетной записи, необходимо предоставить соответствующие права на чтение для каталога с журналами. Также, в конфигурации Tomcat для файлов журналов должно быть задано корректное значение UMASK (0022).
-
Откройте конфигурационный файл службы
rsyslog
:# nano /etc/rsyslog.conf
-
В конфигурационном файле
/etc/rsyslog.conf
укажите следующие настройки:module(load="imfile" PollingInterval="10")
-
Перезапустите службу
rsyslog
:# systemctl restart rsyslog.service
-
В файл конфигурации лог-коллектора
config.yaml
внесите следующие изменения:tcp_input_tomcat: & tcp_input_tomcat id: "tcp_input_tomcat" host: "<IP-адрес лог-коллектора>" port: 514 sock_buf_size: 0 format: "json" log_level: "INFO" tcp_output_tomcat: & tcp_output_tomcat id: "tcp_output_tomcat" target_host: "<IP-адрес Платформы Радар/или балансера>>" port: 2911 sock_buf_size: 0 log_level: "INFO" ssl_enable: false require_cert: false ssl_compression: false batch_mode_enable: false collectors: tcp_receiver: - <<: *tcp_input_tomcat senders: port: 48003 tcp: - <<: *tcp_output_tomcat route_tomcat: &route_tomcat collector_id: - "tcp_input_tomcat" sender_id: - "tcp_output_tomcat" routers: - <<: *route_tomcat
-
Перезапустите службу лог-коллектора.
- Перейдите в раздел Администрирование → Источники → Управление источниками.
- Включите источник Apache-Tomcat-Web-Server.
- Нажмите кнопку Синхронизировать.
- Перейдите в раздел События и проверьте наличие потока событий от данного источника.
Mantis Bug Tracker
Характеристики источника в Платформе Радар:
Характеристика | Значение |
---|---|
Название | MantisBT-System |
Тип | Bug Tracking System |
Вендор | MantisBT Team |
Порт | 2962 |
Протокол | TCP |
Для настройки источника выполните следующие действия:
-
В конфигурационном файле Mantis
/etc/apache2/sites-enabled/
укажите пути к файлам журналов:ErrorLog "/var/log/apache2/mantisbt-error_log" TransferLog "/var/log/apache2/mantisbt-access_log"
-
В каталоге
/etc/rsyslog.d/
создайте конфигурационный файл70-mantis.conf
и укажите в нем следующие настройки:module(load="imfile" PollingInterval="1") input(type="imfile" File="/var/log/nginx/access.log" Tag="nginx-access" Severity="info" Facility="local0") input(type="imfile" File="/var/log/nginx/error.log" Tag="nginx-error" Severity="warn" Facility="local1") local0,local1.* @@<IP-адрес лог-коллектора>:2962
Где:
local0,local1
- значение facility для журналов Access.log и Error.log;@@
- передача данных по протоколу TCP;<IP-адрес лог-коллектора>
- IP-адрес лог-коллектора;2962
- порт, по которому лог-коллектор будет принимать события от данного источника.
-
Сохраните изменения и перезапустите службу
rsyslog
:# systemctl restart rsyslog.service
-
В файл конфигурации лог-коллектора
config.yaml
внесите следующие изменения:tcp_input_mantis_bt: & tcp_input_mantis_bt id: "tcp_input_mantis_bt" host: "<IP-адрес лог-коллектора>" port: 2962 sock_buf_size: 0 format: "json" log_level: "INFO" tcp_output_mantis_bt: & tcp_output_mantis_bt id: "tcp_output_mantis_bt" target_host: "<IP-адрес Платформы Радар/или балансера>" port: 2962 sock_buf_size: 0 log_level: "INFO" collectors: tcp_receiver: - <<: *tcp_input_mantis_bt senders: port: 48003 tcp: - <<: *tcp_output_mantis_bt route_mantis_bt: &route_mantis_bt collector_id: - "tcp_input_mantis_bt" sender_id: - "tcp_output_mantis_bt" routers: - <<: *route_mantis_bt
-
Перезапустите службу лог-коллектора.
- Перейдите в раздел Администрирование → Источники → Управление источниками.
- Включите источник MantisBT-System.
- Нажмите кнопку Синхронизировать.
- Перейдите в раздел События и проверьте наличие потока событий от данного источника.
Microsoft Sharepoint
Характеристики источника в Платформе Радар:
Характеристика | Значение |
---|---|
Название | Microsoft-Sharepoint |
Тип | Sharepoint |
Вендор | Groupware |
Порт | 1529 |
Протокол | TCP |
Настройка источника включает в себя следующие шаги:
- Настройка аудита в Microsoft Sharepoint.
- Создание MSSQL пользователя с ограниченными правами.
- Настройка лог-коллектора и включение источника в платформе.
- Тонкая настройка SQL-запроса для извлечения информации из всех сайтов системы.
Шаг 1. Настройка аудита в Microsoft Sharepoint
Включение аудита происходит для каждого сайта отдельно.
Для включения аудита сайта выполните следующие действия:
- Войдите на сайт, аудит которого необходимо включить.
-
Откройте Настройки сайта и выберите пункт Сведения о сайте (см. рисунок 1).
Рисунок 1 -- Microsoft Sharepoint. Настройки сайта
-
В открывшемся окне выберите пункт Просмотреть все параметры сайта (см. рисунок 2).
Рисунок 2 -- Microsoft Sharepoint. Просмотреть все параметры сайта
-
В открывшемся окне перейдите к блоку Администрирование семейств сайтов и выберите пункт Возможности семейства сайтов (см. рисунок 3).
Рисунок 3 -- Администрирование семейств сайтов. Возможности семейства сайтов
-
Перейдите к блоку Отчеты и активируйте создание отчетов с анализом информации, содержащейся в Microsoft Sharepoint (см. рисунок 4).
Рисунок 4 -- Microsoft Sharepoint. Активация создания отчетов
-
Вернитесь в Администрирование семейств сайтов и выберите пункт Параметры аудита семейства сайтов (см. рисунок 5).
Рисунок 5 -- Администрирование семейств сайтов. Параметры аудита семейства сайтов
-
В открывшемся окне Настройка параметров аудита укажите события, подлежащие аудиту, установив соответствующие флаги и нажмите кнопку ОК (см. рисунок 6).
Рисунок 6 -- Окно "Настройка параметров аудита". Выбор событий, подлежащих аудиту
После этого в Администрирование семейств сайтов появится новый пункт Отчеты по журналу аудита, который позволяет вручную выгружать отчёты по нужным критериям (см. рисунок 7).
Рисунок 7 -- Администрирование семейств сайтов. Отчеты по журналу аудита
Шаг 2. Создание MSSQL пользователя с ограниченными правами
На данном шаге выполняется создание пользователя "AuditReader", который будет иметь права только на выполнение SQL-запроса в базе WSS_Content. Подробнее о SQL-запросе описано на четвертом шаге настройки источника.
-
Создаёте логин "AuditReader" и укажите пароль:
USE [master]; GO CREATE LOGIN AuditReader WITH PASSWORD = 'Password';
-
Создайте пользователя AuditReader в базе WSS_Content и присвойте ему логин "AuditReader":
USE [WSS_Content]; GO CREATE USER AuditReader FOR LOGIN AuditReader;
-
Выдайте пользователю AuditReader право выполнять только операцию
SELECT
в следующих таблицах:USE [WSS_Content]; GO GRANT SELECT ON dbo.AuditData TO AuditReader; GRANT SELECT ON dbo.UserInfo TO AuditReader; GRANT SELECT ON dbo.WebsPlus TO AuditReader;
-
Ограничьте доступ пользователя AuditReader к базе WSS_Content:
USE [master]; GO DENY VIEW ANY DATABASE TO AuditReader; GO USE [WSS_Content]; GO DENY VIEW DEFINITION TO AuditReader; GO
Шаг 3. Настройка лог-коллектора и включение источника в платформе
-
В файл конфигурации лог-коллектора
config.yaml
внесите следующие изменения:odbc_collector: &odbc_collector id: "odbc_collector" poll_interval: 5 read_from_last: true connection_string: "Driver={ODBC Driver 17 for SQL Server};Server=<IP-адрес лог-коллектора>\\SQLEXPRESS;database=WSS_Content;UID=auditreader;PWD=123;" sql: > SELECT ad.Occurred AS [Date], u.tp_Title AS [User], u.tp_Login AS [UserLogin], ad.Event AS [EventID], ad.ItemType AS [ItemTypeID], ad.DocLocation AS [DocLocationID], ad.EventData AS [EventData], ad.MachineName, ad.MachineIP, wp.TitleResource AS [SiteName], ad.UserId AS [UserID], ad.SiteId AS [SiteId], ad.ItemId AS [ItemId], CAST(DATEDIFF_BIG(ns, '1970-01-01 00:00:00.0000000', ad.Occurred) AS BIGINT) AS epoch FROM [WSS_Content].[dbo].[AuditData] ad LEFT JOIN [WSS_Content].[dbo].[UserInfo] u ON ad.UserId = u.tp_ID LEFT JOIN [WSS_Content].[dbo].[WebsPlus] wp ON ad.SiteId = wp.SiteId WHERE CAST(DATEDIFF_BIG(ns, '1970-01-01 00:00:00.0000000', ad.Occurred) AS BIGINT) > ? ORDER BY ad.Occurred DESC; bookmark_field: "epoch" tcp_output_ms_sharepoint: &tcp_output_ms_sharepoint id: "tcp_output_ms_sharepoint" target_host: "<IP-адрес Платформы Радар/или балансера>" port: 1529 collectors: log_level: "INFO" odbc: - <<: *odbc_collector senders: port: 48002 log_level: "INFO" tcp: - <<: *tcp_output_ms_sharepoint route_ms_sharepoint: &route_ms_sharepoint collector_id: - "odbc_collector" sender_id: - "tcp_output_ms_sharepoint" routers: - <<: *route_ms_sharepoint
-
Перезапустите службу лог-коллектора.
- Перейдите в раздел Администрирование → Источники → Управление источниками.
- Включите источник Microsoft-Sharepoint.
- Нажмите кнопку Синхронизировать.
- Перейдите в раздел События и проверьте наличие потока событий от данного источника.
Шаг 4. Тонкая настройка SQL-запроса для извлечения информации из всех сайтов системы
SQL-запрос извлекает информацию о событиях аудита из таблицы AuditData, которая хранится в базе данных WSS_Content.
Пример запроса:
SELECT
ad.Occurred AS [Date],
u.tp_Title AS [User],
u.tp_Login AS [UserLogin],
ad.Event AS [EventID],
ad.ItemType AS [ItemTypeID],
ad.DocLocation AS [DocLocationID],
ad.EventData AS [EventData],
ad.MachineName,
ad.MachineIP,
wp.TitleResource AS [SiteName],
ad.UserId AS [UserID],
ad.SiteId AS [SiteId],
ad.ItemId AS [ItemId],
CAST(DATEDIFF_BIG(ns, '1970-01-01 00:00:00.0000000', ad.Occurred) AS BIGINT) AS epoch
FROM
[WSS_Content].[dbo].[AuditData] ad
LEFT JOIN
[WSS_Content].[dbo].[UserInfo] u ON ad.UserId = u.tp_ID
LEFT JOIN
[WSS_Content].[dbo].[WebsPlus] wp ON ad.SiteId = wp.SiteId
WHERE
CAST(DATEDIFF_BIG(ns, '1970-01-01 00:00:00.0000000', ad.Occurred) AS BIGINT) > ?
ORDER BY
ad.Occurred DESC;
Где:
Occurred
- содержит дату и время, когда произошло событие аудита;tp_Title
- содержит название пользователя, связанного с событием аудита;tp_Login
- содержит логин пользователя, связанного с событием аудита;Event
- содержит числовой идентификатор события аудита;ItemType
- возвращает тип объекта, к которому относится событие аудита;DocLocation
- показывает местоположение документа или объекта, которое было изменено или на которое было совершено действие;EventData
- содержит дополнительные данные, связанные с событием, которое было зафиксировано;MachineName
иMachineIP
- показывают имя компьютера и IP-адрес, с которых было совершено действие;UserID
- идентификатор пользователя, совершившего действие;SiteId
- идентификатор сайта, на котором произошло событие;ItemId
- идентификатор элемента, на котором было совершено действие.
За присоединение таблицы WebsPlus к таблице AuditData для получения имени сайта, связанного с событием отвечает строка:
wp.TitleResource AS [SiteName],
Где, SiteName
- имя сайта, на котором произошло событие.
За преобразование даты и времени возникновения события в формат epoch
, значение которого будет использоваться в качестве уникального идентификатора события, по которому будет работать лог-коллектор, отвечает строка:
CAST(DATEDIFF_BIG(ns, '1970-01-01 00:00:00.0000000', ad.Occurred) AS BIGINT) AS epoch
За объединение таблиц AuditData, UserInfo и WebsPlus отвечают два оператора LEFT JOIN
:
FROM
[WSS_Content].[dbo].[AuditData] ad
LEFT JOIN
[WSS_Content].[dbo].[UserInfo] u ON ad.UserId = u.tp_ID
LEFT JOIN
[WSS_Content].[dbo].[WebsPlus] wp ON ad.SiteId = wp.SiteId
В первом операторе LEFT JOIN
выполняется присоединение таблицы UserInfo, которая содержит информацию о пользователях SharePoint.
Во втором операторе LEFT JOIN
выполняется присоединение таблицы WebsPlus, которая содержит информацию о сайтах SharePoint.
Оба оператора LEFT JOIN
используются, чтобы сохранить все строки из таблицы AuditData, даже если нет соответствующих записей в таблицах UserInfo и WebsPlus. Если соответствующая запись не найдена, значения в столбцах, которые соответствуют отсутствующим записям, будут NULL
.
Для корректной работы лог-коллектора необходимо добавить условие в запрос для выбора только тех строк, у которых разница между датой в столбце Occurred и датой "1970-01-01 00:00:00.0000000" больше, чем значение, которое будет заменено на место знака вопроса в момент выполнения запроса:
WHERE
CAST(DATEDIFF_BIG(ns, '1970-01-01 00:00:00.0000000', ad.Occurred) AS BIGINT) > ?
За сортировку событий от последнего к первому отвечает строка:
ORDER BY
ad.Occurred DESC
Nginx
Характеристики источника в Платформе Радар:
Характеристика | Значение |
---|---|
Название | Nginx-Web-server |
Тип | Web_server |
Вендор | Nginx |
Порт | 2960 |
Протокол | TCP |
Для настройки источника выполните следующие действия:
-
В конфигурационных файлах
/etc/nginx/nginx.conf
и/opt/pangeoradar/configs/nginx.conf
в блоке# Logging Setting
укажите пути для регистрации событий Access.log и Error.log:## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log;
-
В конфигурационном файле
/etc/rsyslog.conf
добавьте следующее значение:# Include all config files in /etc/rsyslog.d/ $IncludeConfig /etc/rsyslog.d/*.conf
-
Создайте файл
/etc/rsyslog.d/nginx.conf
и укажите в нем следующие настройки::input(type="imfile" File="/var/log/nginx/access.log" Tag="nginx-access" Severity="info" Facility="local0") input(type="imfile" File="/var/log/nginx/error.log" Tag="nginx-error" Severity="warn" Facility="local1") local0,local1.* @@<IP-адрес лог-коллектора>:2960
Где:
local0,local1
- значение facility для журналов Access.log и Error.log;@@
- передача данных по протоколу TCP;<IP-адрес лог-коллектора>
- IP-адрес лог-коллектора;2960
- порт, по которому лог-коллектор будет принимать события от данного источника.
-
Сохраните изменения и перезапустите службу
rsyslog
:# systemctl restart rsyslog.service
-
В файл конфигурации лог-коллектора
config.yaml
внесите следующие изменения:tcp_input_nginx: &tcp_input_nginx id: "tcp_input_nginx" host: "<IP-адрес лог-коллектора>" port: 2960 sock_buf_size: 0 format: "json" log_level: "INFO" tcp_output_nginx: & tcp_output_nginx id: "tcp_output_nginx" target_host: "<IP-адрес Платформы Радар/или балансера>" port: 2960 sock_buf_size: 0 log_level: "INFO" senders: port: 48002 tcp: - <<: * tcp_output_nginx collectors: tcp_receiver: - <<: *tcp_input_nginx route_nginx: &route_nginx collector_id: - "tcp_input_nginx" sender_id: - "tcp_output_nginx" routers: - <<: *route_nginx
-
Перезапустите службу лог-коллектора.
- Перейдите в раздел Администрирование → Источники → Управление источниками.
- Включите источник Nginx-Web-server.
- Нажмите кнопку Синхронизировать.
- Перейдите в раздел События и проверьте наличие потока событий от данного источника.