Перейти к содержанию

WEB-серверы

Apache HTTP server

Для отправки событий стандартного логирования источника Apache-http-server выполните шаги:

  1. Проверьте в файле, расположенном по пути /etc/apache2/apache2.conf, наличие записи LogLevel info.

    Поддерживаемый уровень корректной обработки событий Платформой Радар - уровень warn, при необходимости можно изменить на LogLevel warn.

  2. После внесения изменений в файл /etc/apache2/apache2.conf обновите сервис apache, для этого выполните команду systemctl reload apache2.service и проверьте состояние сервиса командой systemctl status apache2.service.

  3. Далее создайте файл apache2.conf с настройками отправки событий через rSyslog в Платформу Радар по пути /etc/rsyslog.d/ со следующим содержимым:

    # 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.*  @@<collector_ip>:2830
    
  4. Перезапустите rSyslog командой

    systemctl restart rsyslog

    и проверьте состояние rSyslog командой systemctl status rsyslog.

  5. В конфигурационный файл лог-коллектора добавьте стандартную настройку tcp-input/tcp-output эквивалентную нижеуказанной настройке:

    tcp_input: &tcp_input
      id: "tcp_input"
      host: "0.0.0.0"
      port: 2830
      sock_buf_size: 0
      format: "json"
      log_level: "INFO"
    
    tcp_output: &tcp_output
      id: "tcp_output"
      target_host: "<Ip-адрес-Платформы-Радар>"
      port: 2830
    
    collectors:
      tcp_receiver:
        - <<: *tcp_input
    
    senders:
      port: 48003
      tcp:
        - <<: *tcp_output
    
    route_1: &route_1
      collector_id:
        - "tcp_input"
      sender_id:
        - "tcp_output"
    
    routers:
      - <<: *route_1
    
  6. Перезапустите сервис лог-коллектора для принятия изменений.

  7. Проверьте наличие событий в графическом интерфейсе Платформы Радар через вкладку Просмотр событий.

Apache Tomcat

Apache Tomcat - это служба, которая может использоваться в следующих сценариях:

  • в качестве самостоятельного веб-сервера;
  • в качестве контейнера сервлетов вместе с Glassfish, JBoss;
  • в качестве сервера контента, в связке с Apache HTTP Server.

По умолчанию, Apache Tomcat выполняет журналирование с помощью обработчика java.util.logging, параметры которого заданы в файле ${catalina.base}/conf/logging.properties (здесь ${catalina.base} - это директория, в которую установлен Tomcat). Если используются стандартные настройки, распределение событий Tomcat происходит по нескольким файлам, в зависимости от типа:

  • catalina.out и catalina.$(date).log - лог контейнера сервлетов, основные события, произошедшие с ядром Tomcat;
  • localhost.$(date).log - лог событий локального экземпляра Tomcat, в который, как правило, сохраняются основные внутренние ошибки;
  • localhost_access_log.$(date).txt - журнал запросов (access log), эквивалентный журналу службы httpd (параметры доступа определяются в файле ${catalina.base}/conf/server.xml);
  • журналы manager.$(date).log и host-manager.$(date).log - журналы работы веб-приложений, функционирующих в составе Tomcat.

Передачу журналов Apache Tomcat коллектору Платформы Радар можно организовать с помощью службы RSyslog. Для получения событий Tomcat необходимо настроить отправку содержимого журналов catalina.out и localhost_access_log*.txt.

Предположим, что отправка журналов будет выполнятся с использованием facility "local1","local2". Переменная ${catalina.base} в нашем примере будет иметь значение /opt/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.*  @@<collector_ip>:<collector_port>

Важно: вместо необходимо указать адрес хоста с установленным коллектором Платформы Радар, а вместо - сетевой порт для приема событий от источника. Два символа '@@' означают, что отправка будет производиться по протоколу TCP.

Важно: в случае, если Tomcat запущен из-под выделенной учетной записи, необходимо предоставить соответствующие права на чтение для каталога с журналами. В противном случае, служба rsyslog сообщит об ошибке чтения файла. Также, в конфигурации Tomcat для файлов журналов должно быть задано корректное значение UMASK (0022).

Разбор параметров:

  • Type - задает название модуля,
  • File - задает абсолютный путь до журналов Tomcat;
  • Tag - идентификатор для журналов, которые будут отправляться коллектору SIEM;
  • Severity - задает важность отправляемых сообщений;
  • Facility - задает идентификатор для источника событий на сервере.

После настройки файла tomcat.conf, следует проверить содержимое файла rsyslog.conf. Для модуля imfile должна быть задана частота опроса журналов, а сам модуль должен быть загружен:

module(load="imfile" PollingInterval="10")

После внесения изменений, следует перезагрузить службу rsyslog и проверить результат:

# systemctl stop rsyslog
# systemctl start rsyslog

Конфигурация коллектора логов Платформы Радар для приема событий должна иметь настройки, эквивалентные следующим:

tcp_input: &tcp_input
  id: "tcp_input"
  host: "0.0.0.0"
  port: 514
  sock_buf_size: 0
  format: "json"
  log_level: "INFO"

tcp_output: &tcp_output
  id: "tcp_output"
  target_host: "<log_collector_ip>"
  port: <log_source_port>
  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

senders:
  port: 48003
  tcp:
    - <<: *tcp_output

route_1: &route_1
  collector_id:
    - "tcp_input"
  sender_id:
    - "tcp_output"

routers:
  - <<: *route_1

Nginx

Для подключение веб-сервера Nginx в качестве источника событий выполните шаги:

  1. Для настройки внешнего веб-сервера nginx на отправку событий в Платформу Радар необходимо проверить файл с настройками по пути /etc/nginx/nginx.conf и файл настройки по пути /opt/pangeoradar/configs/nginx.conf.
  2. В настройке /*/*/*nginx.conf в поле # Logging Setting должны быть указаны пути для регистрации событий Access.log или Error.log. Если поле с данными параметрами отсутствует, то данную конструкцию добавьте вручную.

    ##
    # Logging Settings 
    ##
           access_log /var/log/nginx/access.log;
           error_log /var/log/nginx/error.log;
    
  3. Проверьте в файле /etc/rsyslog.conf наличие поля # Include all config files in /etc/rsyslog.d/. Если оно отсутствует, то добавьте следующее значение:

    # Include all config files in /etc/rsyslog.d/
           $IncludeConfig /etc/rsyslog.d/*.conf
    
  4. Создайте файл /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
    

    через @ задается отправка по протоколу «UDP» c указанием адреса машины с лог-коллектором и необходимым портом для отправки.

    через @@ задается отправка по протоколу «TCP» c указанием адреса машины с лог-коллектором и необходимым портом для отправки

    Шаблоны:

    для отправки по TCP

    local0,local1.* @@<Ip-адрес лог-коллектора>:<порт-лог-коллектора>

    для отправки по UDP

    local0,local1.* @<Ip-адрес лог-коллектора>:<порт-лог-коллектора>

  5. На машине с лог-коллектором добавьте настройку для получения событий от источника и отправки их в Платформу Радар

    ##################################################################
                Часть настройки лог-коллектора
    ##################################################################
    #  Так как в 4м пункте был выбран шаблон отправки по TCP, поэтому настройка на лог-коллекторе соответствует протоколу TCP
    
    tcp_input: &tcp_input
        id: " tcp_input"
      host: "0.0.0.0"
        port: 2960
        sock_buf_size: 0
      format: "json"
        log_level: "INFO"
    
        tcp_output: &  tcp_output
      id: "  tcp_output"
        target_host: "<ip адрес Платформы Радар>" 
      port: 2960
        sock_buf_size: 0
        log_level: "INFO"
    
    senders:
      port: 48002
        tcp:
        - <<: *  tcp_output
    collectors:
        tcp_receiver:
        - <<: *tcp_input
    
    route_1: &route_1
        collector_id:
        - "tcp_input"
        sender_id:
        - "tcp_output"
    routers:
      - <<: *route_1
    
  6. В Платформе Радар включите «Тип Источника» «Nginx-Web-server» и нажмите кнопку «Синхронизировать».

  7. Проверьте приходящие события в «Просмотр событий».