Инфраструктурные системы
vGate
Настройка подключения источника vGate
Перейдите в настройки и сначала включите отправку событий в Syslog.
Для этого выберите:
Настройки>Аудит>Настройки сбора сообщений.
Выберите чекбоксы - Включить аудит событий и отправка в Syslog.
Нажмите ОК.
Рисунок 1 -- Настройка отправки событий в Syslog.
Для отправки можно включить все уведомления или только необходимые. Для включения всех уведомлений выделите их с помощью комбинации клавиш Ctrl+A и выберите любой чекбокс, после чего будут добавлены все события (см. рисунок 2).
Рисунок 2 -- Добавление всех уведомлений.
После того как вы включили возможность отправки событий, необходимо указать адрес log-collector'a и порт.
Для этого выберите:
Настройки>Аудит>Настройка уведомлений о событиях по протоколу Syslog.
Выберите чекбокс - Включить отправку уведомлений.
В поле "Сервер" укажите адрес log-collector'a. В поле "Порт" укажите порт log-collector'a.
Рисунок 3 -- Настройка адреса и порта.
Настройки конфигурации log-collectora
# = vGate =
udp_input_515: &udp_input_515
id: "udp_input_515"
host: "172.30.254.166"
port: 515
sock_buf_size: 0
format: "json"
tcp_output_2745: &tcp_output_2745
id: "tcp_output_2745"
target_host: "172.30.254.67"
port: 2745
#=====
senders:
port: 48002
log_level: "INFO"
tcp:
- <<: *tcp_output_2745
collectors:
log_level: "INFO"
udp_receiver:
- <<: *udp_input_515
#====
route_1: &route_1
collector_id:
- "udp_input_515"
sender_id:
- "tcp_output_2745"
#====
routers:
- <<: *route_1
ISC Bind DNS
Настройка логирования bind
В файл /etc/bind/named.conf
добавьте следующие строки:
logging {
channel named {
file "/var/log/named/named.log" versions 10 size 20M;
severity info;
print-time yes;
print-category yes;
print-severity yes;
};
channel security {
file "/var/log/named/security.log" versions 10 size 20M;
severity info;
print-time yes;
print-severity yes;
};
channel dnssec {
file "/var/log/named/dnssec.log" versions 10 size 20M;
severity info;
print-time yes;
print-severity yes;
};
channel resolver {
file "/var/log/named/resolver.log" versions 10 size 20M;
severity info;
print-time yes;
print-severity yes;
};
channel query_log {
file "/var/log/named/query.log" versions 10 size 80M;
severity info;
print-time yes;
print-severity yes;
};
channel query_error {
file "/var/log/named/query_errors.log" versions 10 size 20M;
severity info;
print-time yes;
print-severity yes;
};
channel lame_servers {
file "/var/log/named/lame-servers.log" versions 10 size 20M;
severity info;
print-time yes;
print-severity yes;
};
channel capacity {
file "/var/log/named/capacity.log" versions 10 size 20M;
severity info;
print-time yes;
print-severity yes;
};
channel database {
file "/var/log/named/database.log" versions 10 size 20M;
severity info;
print-time yes;
print-severity yes;
};
channel update {
file "/var/log/named/update.log" versions 10 size 10M;
severity info;
print-time yes;
print-severity yes;
};
category default { default_syslog; named; };
category general { default_syslog; named; };
category security { security; };
category queries { query_log; };
category query-errors { query_error; };
category lame-servers { lame_servers; };
category dnssec { dnssec; };
category edns-disabled { default_syslog; resolver; };
category config { default_syslog; named; };
category resolver { resolver; };
category cname { resolver; };
category spill { capacity; };
category rate-limit { capacity; };
category database { database; };
category client { default_syslog; named; };
category network { default_syslog; named; };
category unmatched { named; };
category delegation-only { named; };
category update { default_syslog; update; };
category update-security { default_syslog; update; };
};
Далее необходимо сохранить, выйти и проверить конфигурацию.
sudo named-checkconf /etc/bind/named.conf.options
Далее создать директорию где будут хранится журналы и нужные файлы под них, задать необходимые разрешения и владельцев, перезапустить сервис Bind9.
mkdir -p /var/log/named
touch /var/log/named/named.log
touch /var/log/named/security.log
touch /var/log/named/dnssec.log
touch /var/log/named/resolver.log
touch /var/log/named/query.log
touch /var/log/named/query_errors.log
touch /var/log/named/lame-servers.log
touch /var/log/named/capacity.log
touch /var/log/named/database.log
touch /var/log/named/update.log
chown bind:bind /var/log/named
chown bind:bind /var/log/named/*.log
chmod 640 /var/log/named/*.log
service bind9 restart
Это позволит начать отслеживание логов bind.
Настройка rsyslog на сервере bind
Создайте шаблон для rsyslog'a по пути /etc/rsyslog.d/
. Например bind.conf
sudo nano /etc/rsyslog.d/bind.conf
Содержимое файла представлено ниже:
module(load="imfile" PollingInterval="10")
input(type="imfile"
reopenOnTruncate="on"
File="/var/log/named/capacity.log"
Tag="tag_dns_log")
input(type="imfile"
reopenOnTruncate="on"
File="/var/log/named/dnssec.log"
Tag="tag_dns_log")
input(type="imfile"
reopenOnTruncate="on"
File="/var/log/named/named.log"
Tag="tag_dns_log")
input(type="imfile"
reopenOnTruncate="on"
File="/var/log/named/query.log"
Tag="tag_dns_log")
input(type="imfile"
reopenOnTruncate="on"
File="/var/log/named/security.log"
Tag="tag_dns_log")
input(type="imfile"
reopenOnTruncate="on"
File="/var/log/named/database.log"
Tag="tag_dns_log")
input(type="imfile"
reopenOnTruncate="on"
File="/var/log/named/lame-servers.log"
Tag="tag_dns_log")
input(type="imfile"
reopenOnTruncate="on"
File="/var/log/named/query_errors.log"
Tag="tag_dns_log")
input(type="imfile"
reopenOnTruncate="on"
File="/var/log/named/resolver.log"
Tag="tag_dns_log")
input(type="imfile"
reopenOnTruncate="on"
File="/var/log/named/update.log"
Tag="tag_dns_log")
if $syslogtag == 'tag_dns_log' then @x.x.x.x:2800
& stop
Где вместо x.x.x.x укажите ip-адрес лог-коллектора и порт после двоеточия.
Перезапустите службу rsyslog.
systemctl restart rsyslog
Настройки конфигурации log-collectora
udp_input_2800: &udp_input_2800
id: "udp_input_2800"
host: "192.168.1.100"
port: 2800
sock_buf_size: 0
format: "json"
tcp_output_2800: &tcp_output_2800
id: "tcp_output_2800"
target_host: "192.168.1.200"
port: 2800
senders:
port: 48002
log_level: "INFO"
tcp:
- <<: *tcp_output_2800
collectors:
udp_receiver:
- <<: *udp_input_2800
route_1: &route_1
collector_id:
- "udp_input_2800"
sender_id:
- "tcp_output_2800"
routers:
- <<: *route_1
Вместо x.x.x.x укажите ip-адрес лог-коллектора и выбранный ранее порт для tcp_input.
Dell IDRAC
Включение аудита IDRAC
-
Войдите в Chasis Management Controller UI . Выберите Server Overview > Properties > Status.
Рисунок 4 -- Выбор настроек.
-
Нажмите на кнопку IDRAC для серверов, на которых вы хотите включить логирование.
Рисунок 5 -- Выбор серверов.
-
Выберите Server > Logs > Settings. На странице Settings отметьте галочкой Enable the Remote Syslog Settings , затем введите IP лог-коллектора в поле Syslog Server и выбранный номер порта для подключения в поле Port Number.
Рисунок 6 -- Настройка параметров логгирования.
-
Выберите Server > Alerts > Включите Alerts и Alert Filter в зависимости от ваших требований.
Рисунок 7 -- Выбор алертов.
-
Чуть ниже во вкладке Alerts and Remote System Log Configuration > отметьте галочками Remote System Log для создания необходимых алертов.
Рисунок 8 -- Создание алертов.
Повторите создание алертов на всех страницах.
Добавление новой конфигурации в коллектор
Приведенные настройки с описанием для добавления в config.yaml ниже:
tcp_input_3: &tcp_input_3
id: "tcp_input_3"
host: "<IP-адрес платформы>"
port: 999
sock_buf_size: 0
format: "json"
encoding:
change_to_utf8: true
original_encoding: "cp1251"
В качестве порта для подключения необходимо указать порт, выбранный на шаге 3.
Linux KVM
Установка KVM
#Проверка поддержки виртуализации и разрядности
egrep -c '(vmx|svm)' /proc/cpuinfo
egrep -c 'lm' /proc/cpuinfo
# Установка пакетов
apt install virtinst
apt install qemu-kvm bridge-utils virt-manager virt-viewer
# Добавить пользователя в группы
adduser <user> libvirt
adduser <user> kvm
Проверка работы KVM
# Проверка наличия qemu в системе с помощью утилиты virsh
virsh -c qemu:///system list
Id Name State
--------------------
# Проверка прав доступа к файлам
ls -la /var/run/libvirt/libvirt-sock
srw-rw-rw- 1 root root 0 Aug 23 13:52 /var/run/libvirt/libvirt-sock
ls -lh /usr/bin/kvm
lrwxrwxrwx 1 root root 18 Jul 11 23:07 /usr/bin/kvm -> qemu-system-x86_64
#Если запущена хотя бы одна виртуальная машина
virsh -c qemu:///system list
Id Name State
-----------------------------
7 ubuntu22.04 running
Настройка rsyslog
Лог KVM располагается в директории:
/home/$USER/.cache/virt-manager/virt-manager.log
Настройка доступа к данному файлу.
chmod 644 /home/$USER/.cache/virt-manager/virt-manager.log
Далее необходимо подготовить конфигурационный файл для rsyslog
. Файл будет располагаться в директории /etc/rsyslog.d/
. Желательно именовать файл в соответствии с системным шаблоном: [00]-rsyslog.d
, а
sudo vi /etc/rsyslog.d/30-kvm.conf
# Input modules
module(load="imfile" mode="inotify" PollingInterval="10")
# KVM log
input(type="imfile" File="/home/$USER/.cache/virt-manager/virt-manager.log"
Tag="kvm"
Severity="info"
Facility="local3")
local3.* @@172.30.250.70:3000
Где:
imfile
- модуль, обрабатывающий лог;File
- непосредственно сам лог (полный путь к файлу);Tag
- тег, который будет использоваться для записей, полученных из указанного выше лог-файла;Severity
- уровень критичности события (info, debug, warning, error);Facility
- категория источника;local3.* @@172.30.250.70:3000
- переслать лог на лог-коллектор по порту 3000 с использованием протокола TCP (@@ - TCP, @ - UDP).
Проверка конфигурации rsyslog
:
rsyslogd -N1
rsyslogd: version 8.2310.0-1.fc38, config validation run (level 1), master config /etc/rsyslog.conf
rsyslogd: End of config validation run. Bye.
# Проверить конкретный файл конфигурации
rsyslogd -f /etc/rsyslog.d/30-kvm.conf -N1
rsyslogd: version 8.2310.0-1.fc38, config validation run (level 1), master config /etc/rsyslog.d/30-kvm.conf.conf
rsyslogd: End of config validation run. Bye.
Перезапуск службы rsyslog
systemctl restart rsyslog
Настройка лог-коллектора
## IP-адрес лог-коллектора: 172.30.250.70, IP-адрес Платформы: 172.30.254.84
## Лог-коллектор принимает события через порт 3000, Платформа - 2746
---
cluster:
url: "https://172.30.254.84:9000/cm/api/agent/"
api_key: "57dbc2b0-41e8-0f55-95d8-1c19c2e44347"
controller:
port: 48000
metric_server:
port: 48005
log_level: "ERROR"
api_server:
address: "172.30.250.70"
port: 8085
read_timeout: 60
write_timeout: 60
wait: 5
enable_tls: false
cert_file: "/opt/pangeoradar/certs/server.crt"
key_file: "/opt/pangeoradar/certs/server.key"
cert_key_pass: ""
require_client_cert: false
ca_file: "/opt/pangeoradar/certs/pgr.crt"
log_level: "WARN"
journal:
port: 48004
log_level: "INFO"
log_path: "/var/log/logcollector/journal.log"
rotation_size: 30
max_backups: 7
max_age: 7
tcp_input: &tcp_input
id: "tcp_input"
host: "172.30.250.70"
port: 3000
buf_size: 0
format: "json"
tcp_sender: &tcp_sender
id: "tcp_sender"
target_host: "172.30.254.84"
port: 2746
log_level: "WARN"
senders:
port: 48002
out_file:
- <<: *out_file
tcp:
- <<: *tcp_sender
collectors:
tcp_receiver:
- <<: *tcp_input
route_1: &route_1
collector_id:
- "tcp_input"
sender_id:
- "tcp_sender"
routers:
- <<: *route_1
Пример лога KVM
[Thu, 19 Oct 2023 10:55:32 virt-manager 27744] DEBUG (storage:207) refreshing pool=VMachines
[Thu, 19 Oct 2023 10:55:32 virt-manager 27744] DEBUG (connection:691) storage pool refresh event: pool=VMachines
[Thu, 19 Oct 2023 10:55:58 virt-manager 27744] DEBUG (createvol:313) Starting background vol creation.
[Thu, 19 Oct 2023 10:55:58 virt-manager 27744] DEBUG (storage:659) Creating storage volume 'host-suse-test.qcow2'
[Thu, 19 Oct 2023 10:55:58 virt-manager 27744] DEBUG (storage:697) Using vol create flags=1
[Thu, 19 Oct 2023 10:56:01 virt-manager 27744] DEBUG (storage:701) Storage volume 'host-suse-test.qcow2' install complete.
[Thu, 19 Oct 2023 10:56:01 virt-manager 27744] DEBUG (createvol:315) vol creation complete.
[Thu, 19 Oct 2023 10:56:01 virt-manager 27744] DEBUG (createvol:69) Closing new volume wizard
[Thu, 19 Oct 2023 10:56:01 virt-manager 27744] DEBUG (connection:691) storage pool refresh event: pool=VMachines
Linux NFS Server
Данное руководство описывает механизм сбора событий Linux NFS server и отправки их в Платформу Радар.
Настройка журналирования NFS
Все настройки, перечисленные ниже, должны осуществляться с правами администратора (root). Если вы работаете под непривилегированным пользователем, используйте команду sudo. Пример конфигурации приведен для сервера под управлением ОС Debian. Если вы используете другой дистрибутив Linux, то расположение файлов и настройки могут немного отличаться, в таком случае обратитесь к документации к своему дистрибутиву.
-
Откройте файл
/etc/default/nfs-kernel-server
# nano /etc/default/nfs-kernel-server
и добавьте следующую строку:
RPCNFSDOPTS="--syslog"
Если параметр RPCNFSDOPTS уже присутствует, то просто нужно добавить ключ --syslog
-
Откройте файл
/etc/idmapd.conf
# nano /etc/idmapd.conf
и для переменной Verbosity введите значение 4:
Verbosity = 4
-
Выполните следующую команду:
# rpcdebug -m nfsd -s all
-
Перезапустите службу nfs-kernel-server
# systemctl restart nfs-kernel-server.service
-
Откройте файл /etc/rsyslog.conf
# nano /etc/rsyslog.conf
и добавьте в конец файла следующую строку:
:msg,contains,"nfsd" @@172.30.250.32:4570
-
Перезапустите службу rsyslog
# systemctl restart rsyslog.service
Конфигурация лог коллектора
Пример конфигурационного файла лог коллектора:
license_path: "C:/Program Files/Log Collector//pgr-agent.lic"
cluster:
url: "https://адрес_Радар_Мастер"
api_key: "api_key"
controller:
port: 48000
metric_server:
port: 48005
secret_file: "C:/Program Files/Log Collector/secret"
secret_storage: "C:/Program Files/Log Collector/secret_storage"
api_server:
address: "ip-адрес лог коллектора"
port: 8080
read_timeout: 60
write_timeout: 60
wait: 5
enable_tls: false
cert_file: "C:/Program Files/Log Collector/certs/agent.crt"
key_file: "C:/Program Files/Log Collector/certs/agent.key"
cert_key_pass: ""
require_client_cert: false
ca_file: "C:/Program Files/Log Collector/certs/pgr.crt"
log_level: "WARN"
journal:
port: 48004
log_level: "INFO"
log_path: "C:/Program Files/Log Collector/journal.log"
rotation_size: 30
max_backups: 7
max_age: 7
tcp_input_linux_nfs: &tcp_input_linux_nfs
id: "tcp_input_linux_nfs"
host: "ip-адрес лог коллектора"
port: 4570
enable_tls: false
compression_enabled: false
connections_limit: 10
format: "json"
log_level: "INFO"
tcp_output_linux_nfs: &tcp_output_linux_nfs
id: "tcp_output_linux_nfs"
target_host: "ip-адрес балансера"
port: 4570
senders:
port: 48002
tcp:
- <<: *tcp_output_linux_nfs
collectors:
tcp_receiver:
- <<: *tcp_input_linux_nfs
route_linux_nfs: &route_linux_nfs
collector_id:
- "tcp_input_linux_nfs"
sender_id:
- "tcp_output_linux_nfs"
routers:
- <<: *route_linux_nfs
Microsoft DNS
Для получения событий запросов и ответов DNS сервера необходимо включить журнал отладки, по умолчанию он выключен. Для этого откройте оснастку DNS сервера, далее перейдите в его свойства. В свойствах DNS сервера выберите "Ведение журнала отладки".
Рисунок 9 -- Ведение журнала отладки.
Отметьте чекбоксы (см. рисунок 9) и нажмите кнопку "ОК".
В поле "Имя и путь к файлу" укажите Ваш файл, куда DNS сервер будет создавать события.
Нажмите кнопку "Применить".
Настройки Logcollectora
Сценарий, когда лог-коллектор развёрнут на том же хосте где и сам DNS сервер.
cluster:
url: "https://192.168.1.200:9000/cm/api/agent/"
api_key: "bac1e342-f819-1a9f-5a16-c925b8b407b7"
controller:
port: 48000
metric_server:
port: 48005
secret_file: "C:\\Program Files\\Log Collector\\secret"
secret_storage: "C:\\Program Files\\Log Collector\\secret.storage"
api_server:
address: "192.168.1.100"
port: 8080
read_timeout: 60
write_timeout: 60
wait: 5
enable_tls: false
cert_file: "certs/server.crt"
key_file: "certs/server.key"
cert_key_pass: ""
require_client_cert: true
ca_file: "certs/pgr.crt"
log_level: "INFO"
journal:
port: 48004
log_level: "INFO"
log_path: "C:/Program Files/Log Collector/journal.log"
rotation_size: 30
max_backups: 7
max_age: 7
win_dns: &win_dns
id: "win_dns"
poll_interval: 1
files: ["C:\\\\DNS_logs\\dns_logs.txt"]
using_regexp: false
regexp_starting_dir: "c://DNS_logs/"
regexp_expression: ".txt"
dir_check_interval: 2
read_from_last: true
enable_watcher: true
log_level: "INFO"
format: "json"
encoding:
change_to_utf8: false
original_encoding: "cp1251"
filters:
blacklist: ["^M.*", "^D.*", "^L.*", "^\\s+.*"]
win_dns_out: &win_dns_out
id: "win_dns_out"
target_host: "192.168.1.200"
port: 1516
senders:
port: 48002
tcp:
- <<: *win_dns_out
collectors:
files:
- <<: *win_dns
route_1: &route_1
collector_id:
- "win_dns"
sender_id:
- "win_dns_out"
routers:
- <<: *route_1
Сценарий, когда лог-коллектор забирает события с DNS сервера по SMB.
cluster:
url: "https://192.168.1.200:9000/cm/api/agent/"
api_key: "57dbc2b0-41e8-0f55-95d8-1c19c2e44347"
controller:
port: 48000
metric_server:
port: 48005
secret_file: "C:\\Program Files\\Log Collector\\secret"
secret_storage: "C:\\Program Files\\Log Collector\\secret.storage"
api_server:
address: "192.168.1.100"
port: 8080
read_timeout: 60
write_timeout: 60
wait: 5
enable_tls: false
cert_file: "certs/server.crt"
key_file: "certs/server.key"
cert_key_pass: ""
require_client_cert: true
ca_file: "certs/pgr.crt"
log_level: "INFO"
journal:
port: 48004
log_level: "INFO"
log_path: "C:\\Program Files\\Log Collector\\journal.log"
rotation_size: 30
max_backups: 7
max_age: 7
smb_collector_out: &smb_collector_out
id: "smb_collector_out"
target_host: "192.168.1.200"
port: 1516
smb_collector: &smb_collector
id: "smb_collector"
remote_servers: ["192.168.1.2"]
port: 445
share: "\\\\192.168.88.1.2\\DNS_logs"
domain: "."
user: "logcoll"
password: "1"
poll_interval: 5
files: ["dns_logs.txt"]
using_regexp: false
regexp_starting_dir: "."
regexp_expression: ".(?:txt|log)$"
dir_check_interval: 5
read_from_last: true
format: "json"
log_level: "INFO"
filters:
blacklist: ["^M.*", "^D.*", "^L.*", "^\\s+.*"]
senders:
port: 48002
log_level: "INFO"
tcp:
- <<: *smb_collector_out
collectors:
log_level: "INFO"
smb:
- <<: *smb_collector
route_1: &route_1
collector_id:
- "smb_collector"
sender_id:
- "smb_collector_out"
routers:
- <<: *route_1
FreeRADIUS
Для отправки событий с сервера FreeRADIUS используется rsyslog. События записываются и забираются из файла radius.log
.
Для источника FreeRADIUS используется порт 2935.
В разделе "Журнал" файла radiusd.conf
находится основная конфигурация ведения журнала для сервера FreeRADIUS.
nano /etc/freeradius/3.0/radiusd.conf
Необходимо найти блок log:
log {
destination = files #Куда попадают логи
file = ${logdir}/radius.log #Назначение файла лога
syslog_facility = daemon #Название журнала
stripped_names = no
auth = no # Статус аутентификации
auth_badpass = no # Тот же статус но с некорректными данными
auth_goodpass = no # Тот же статус но с корректными данными
# msg_goodpass = ""
# msg_badpass = ""
}
И далее настроить его следующим образом:
log {
destination = syslog
file = syslog
syslog_facility = local2
stripped_names = no
auth = yes #
auth_badpass = no
auth_goodpass = no
# msg_goodpass = ""
# msg_badpass = ""
}
В конфигурационном файле найдите пункт logdir = /var/log/freeradius/radius.log
и замените его на logdir = syslog
Далее необходимо настроить rslyslog.conf
, разрешить отправку по tcp порту, создать в rslyslog.d
свою конфигурацию с содержимым
local2.* @@адрес лог коллектора:2935
Настройка лог-коллектора
tcp_input_2935: &tcp_input_2935
id: "tcp_input_2935"
host: "xx.xx.xx.xx" #адрес лог-коллектора
port: 2935
sock_buf_size: 0
format: "json"
tcp_output_2935: &tcp_output_2935
id: "tcp_output_2935"
target_host: "xx.xx.xx.xx" #адрес платформы
port: 2935
senders:
port: 48002
tcp:
- <<: *tcp_output_2935
collectors:
tcp_receiver:
- <<: *tcp_input_2935
route_1: &route_1
collector_id:
- "tcp_input_2935"
sender_id:
- "tcp_output_2935"
routers:
- <<: *route_1