Развертывание syslog-сервера возможно в двух вариантах:
- На том же хосте, что и ECCM.
В данном случае необходимо при настройке указать порт, отличный от 514, во избежание конфликтов с внутренним сервисом ECCM.
Описание используемых портов ECCM приведено в разделе Векторы сетевого взаимодействия. - На отдельном хосте.
В данном случае вы можете использовать 514 порт, как описано в инструкции ниже.
1. Настройка сервера rsyslog
Установите rsyslog:
Блок кода | ||||
---|---|---|---|---|
| ||||
apt-get install rsyslog |
...
Далее необходимо создать условия для того, чтобы логи записывались в отдельный файл.
Общий файл логов eccm:
Создайте директорию для логов ECCM:
Блок кода | ||||
---|---|---|---|---|
|
...
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
mkdir /var/log/eccm |
Назначьте необходимые права:
- для Ubuntu
Блок кода | ||||
---|---|---|---|---|
|
...
chown syslog:adm/var/log/ |
...
eccm |
...
/ |
...
- Для Astra
Блок кода | ||||
---|---|---|---|---|
|
...
chown root:adm/var/log/eccm/ |
В
...
конец файла /etc/rsyslog.conf
...
добавьте следующие
...
строки:
Блок кода | ||||
---|---|---|---|---|
|
...
$ModLoad |
...
imudp |
...
$UDPServerRun |
...
514 |
...
$ModLoad |
...
imtcp |
...
$InputTCPServerRun 514 |
Блок кода | ||||
---|---|---|---|---|
|
...
$template RemoteLogs,"/var/log/eccm/ |
...
%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?RemoteLogs
& ~ |
Перезапустите службу:
Блок кода | ||||
---|---|---|---|---|
| ||||
sudo systemctl restart rsyslog |
2. Настройка сервера ECCM
...
(Только для Astra) создайте директорию /etc/docker/
Блок кода | ||||
---|---|---|---|---|
| ||||
mkdir/etc/docker |
Файл /etc/docker/daemon.json
...
должен выглядеть следующим образом:
Блок кода | ||||
---|---|---|---|---|
| ||||
{
"log-driver": "syslog",
"log-opts": {
"syslog-address": "tcp://<ip_syslog_server>:514",
"tag": "{{.Name}}"
}
} |
В файле eccm/1.13/eccm/docker-compose.yml закомментируйте строки, которые отвечают за запись логов на тот же сервер, где запущен ECCM:
Блок кода | ||||
---|---|---|---|---|
| ||||
nano eccm/docker-compose.yml
#x-docker-logging:
# logging:
# &docker-logging
# driver: "json-file"
# options:
# max-size: ${LOGGING_MAX_FILE_SIZE:-50M}
# max-file: ${LOGGING_MAX_FILES:-5}
# compress: ${LOGGING_COMPRESS:-true}
и для всех контейнеров
# logging:
# <<: *docker-logging |
Также закомментируйте строки в файле eccm/1.1N/postgres/docker-compose.yml:
Блок кода | ||||
---|---|---|---|---|
| ||||
nano postgres/docker-compose.yml
# logging:
# driver: "json-file"
# options:
# max-size: ${LOGGING_MAX_FILE_SIZE:-50M}
# max-file: ${LOGGING_MAX_FILES:-5}
# compress: ${LOGGING_COMPRESS:-true} |
Перезапустите docker:
Блок кода | ||||
---|---|---|---|---|
| ||||
systemctl restart docker |
Если у вас уже запущены контейнеры, удалите
...
Если на сервере также запущены другие контейнеры, то можно удалить только контейнеры ECCM:
...
language | yml |
---|---|
theme | RDark |
...
их. Данные при этом не потеряются:
Блок кода | ||||
---|---|---|---|---|
|
...
docker stop $(docker ps -a -q) #остановить все контейнеры
docker rm $(docker ps -a -q) #удалить все контейнеры
. |
...
/ |
...
compose |
...
-tools.sh --delete-containers |
Перезапустите контейнеры:
Блок кода | ||||
---|---|---|---|---|
| ||||
./compose-tools.sh -s <ip_eccm> |
Если запись логов не началась, перезапустите службу:
Блок кода | ||||
---|---|---|---|---|
| ||||
systemctl restart rsyslog |