Для початку перевіряємо чи є встановлений rsyslog командою sudo systemctl status rsyslog
Додати для прийому всіх логів і скидання в певний каталог, за певним програмним іменем
Для відправлення всіх логів (*.*) на інший віддалений сервер:
Звісно якщо не встановленій то встановлюємо sudo apt install rsyslog
Для налаштування редагуємо sudo vim /etc/rsyslog/rsyslog.conf
Розкоментувати рядки для прийому логів
module(load="imudp")
input(type="imudp" port="514")
module(load="imtcp")
input(type="imtcp" port="514")
$template RemoteHostLog,"/var/log/rsyslog/%HOSTNAME%/%PROGRAMNAME%.log"
*.*?RemoteHostLog
*.*@@192.n.n.n:514 --->це для TCP
*.*@@192.n.n.n:514 --->це для UDP
Створюю новий файл
PS: Для більш зручного відображення встановив утиліту lnav, нижче деякі команди:
/etc/rsyslog.d/20-network.conf
Туди копіюю слідуюче:
# --- INPUTS ---
module(load="imudp")
module(load="imtcp")
input(type="imudp" port="514")
input(type="imtcp" port="514")
# --- TEMPLATE ---
template(
name="NetLogs"
type="string"
string="/var/log/network/%FROMHOST-IP%/current.log"
)
# --- RULE ---
if ($fromhost-ip != "127.0.0.1") then {
action(type="omfile" dynaFile="NetLogs")
stop
}
sudo mkdir -p /var/log/network
sudo chown syslog:adm /var/log/network
sudo chmod 755 /var/log/network
/etc/logrotate.d/network-logs
Туди копі слідуюче
/var/log/network/*/current.log {
missingok
notifempty
nocompress
copytruncate
dateext
dateformat -%Y-%m-%d_08-00
rotate 100000
}
sudo crontab -e
0 8 * * * /usr/sbin/logrotate -f /etc/logrotate.d/network-logs
Команди писав по пам'яті, ось що вони означають: