Knowledgebase

Aveti intrebari? Sunteti in locul potrivit!

Cum setati Rsyslog Server pe Ubuntu 18.04 LTS

Log-urile sunt foarte utile pentru analizarea si rezolvarea problemelor legate de sistem si aplicatiilor in Linux. In mod implicit, toate fisierele log sunt localizate in directorul / var / log pentru sistemele de operare bazate pe Linux. Exista mai multe tipuri de fisiere log, inclusiv cronuri, kernel, utilizatori, securitate si majoritatea acestor fisiere sunt controlate de serviciul Rsyslog.

In mod implicit, Rsyslog este instalat pe serverele Ubuntu 18.04, in cazul in care nu este instalat executati urmatoarea comanda:

apt-get install rsyslog -y

Dupa instalarea  Rsyslog, puteti verifica versiunea  Rsyslog utilizand urmatoarea comanda:

rsyslogd -v

Ar trebui sa aveti urmatorul output:

rsyslogd 8.32.0, compiled with:
	PLATFORM:				x86_64-pc-linux-gnu
	PLATFORM (lsb_release -d):		
	FEATURE_REGEXP:				Yes
	GSSAPI Kerberos 5 support:		Yes
	FEATURE_DEBUG (debug build, slow code):	No
	32bit Atomic operations supported:	Yes
	64bit Atomic operations supported:	Yes
	memory allocator:			system default
	Runtime Instrumentation (slow code):	No
	uuid support:				Yes
	systemd support:			Yes
	Number of Bits in RainerScript integers: 64

See http://www.rsyslog.com for more information.

Puteti verifica statusul  Rsyslog utilizand urmatoarea comanda:

systemctl status rsyslog

Ar trebui sa avetiurmatorul output:

? rsyslog.service - System Logging Service
   Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-10-22 04:28:55 UTC; 1min 31s ago
     Docs: man:rsyslogd(8)
           
RSyslog Documentation
Main PID: 724 (rsyslogd) Tasks: 4 (limit: 1114) CGroup: /system.slice/rsyslog.service ??724 /usr/sbin/rsyslogd -n Oct 22 04:28:53 ubuntu1804 systemd[1]: Starting System Logging Service... Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: imuxsock: Acquired UNIX socket '/run/systemd/journal/syslog' (fd 3) from systemd. [v8.32.0] Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: rsyslogd's groupid changed to 106 Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: rsyslogd's userid changed to 102 Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: [origin software="rsyslogd" swVersion="8.32.0" x-pid="724" x-info="http://www.rsyslog.com"] start Oct 22 04:28:55 ubuntu1804 systemd[1]: Started System Logging Service.

Configurararea Rsyslog Server

Rsyslog este instalat si functional. Este necesara configurarea server mode. Puteti realiza acest lucru editand /etc/rsyslog.conf.

nano /etc/rsyslog.conf

Este necesar sa selecati utilizarea  UDP sau TCP sau ambele.

Pentru a utiliza ambele tipuri de conectari UDP si TCP in acelasi timp, cautati si decomentati liniile de mai jos :

$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514

Apoi, definiti un subnet specific , IP sau domeniu pentru a limita accesul:

$AllowedSender TCP, 127.0.0.1, 192.168.0.0/24, *.exemplu.ro
$AllowedSender UDP, 127.0.0.1, 192.168.0.0/24, *.exemplu.ro

Estene cecesara sa adaugati un template pentru a specifica serverului Rsyslog  unde anume sa stocheze mesajele de tip syslog. Adaugati urmatoarea linie chiar dupa sectiunea GLOBAL DIRECTIVES :

$template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" 
*.* ?remote-incoming-logs
& ~

Salvati si inchideti fisierele dupa ce ati terminat editarea. Apoi, verificati configurarea Rsyslog pentru eventuale erori de sintaxa utilizand urmatoarea comanda :

rsyslogd -f /etc/rsyslog.conf -N1

Ar trebui sa aveti urmatorul output:

rsyslogd: version 8.32.0, config validation run (level 1), master config /etc/rsyslog.conf
rsyslogd: End of config validation run. Bye.

Intr-un final, restartati serviciul Rsyslog utilizand urmatoarea comanda:

systemctl restart rsyslog

Acum, verificati daca Rsyslog asculta TCP/UDP utilizand comanda:

netstat -4altunp | grep 514

Art trebui sa aveti urmatorul output:

tcp        0      0 0.0.0.0:514             0.0.0.0:*               LISTEN      1332/rsyslogd       
udp        0      0 0.0.0.0:514             0.0.0.0:*                           1332/rsyslogd       

Configurarea clientului  Rsyslog

Rsyslog server este instalat si configurat sa primeasca log-urile de host-urile remote.

Acum,  este necesar sa configurati clientul Rsyslog pentru a transmite mesaje de tip syslog spre serverul remote.

Autentificati intr-un client si deschideti fisierul de configurare Rsyslog :

nano /etc/rsyslog.conf

Adaugati urmatoarele linii la sfarsitul fisierului:

##Enable sending of logs over UDP add the following line:

*.* @192.168.0.101:514


##Enable sending of logs over TCP add the following line:

*.* @@192.168.0.101:514

##Set disk queue when rsyslog server will be down:

$ActionQueueFileName queue
$ActionQueueMaxDiskSpace 1g
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionResumeRetryCount -1

Salvati si inchideti fisierul . Apoi, restartati serverul Rsyslog pentru aplicarea modificarilo:

systemtcl restart rsyslog

Vizualizarea log-urilor unui client

In acest moment, clientul Rsyslog este configurat pentru a trimite log-ul lui la serverul Rsyslog.

Acum,  autentificati la serverul Rsyslog si verificati directorul  /var/log directory.  Ar trebui sa observati inregistrarile hosname-ului cu detaliile clientului, inclusiv anumite fisiere cu log-uri pentru:

ls /var/log/rsyslog-client/

Output-ul va avea forma:

CRON.log  kernel.log  rsyslogd-2039.log  rsyslogd.log  sudo.log  wpa_supplicant.log