Rsyslog - oddělení lokálních a vzdálených logů

Rsyslog - oddělení lokálních a vzdálených logů
« kdy: 26. 07. 2022, 19:12:23 »
Ahoj, existuje nějaká globální možnost nastavení, aby mi zprávy posílané na rsyslog server NIKDY nechodily do lokálních souborů /var/log/messages , boot, secure apod. Prostě , co přijde zvenku, jde jen svou cestou třeba do /var/log/remote/*   
Zatím tam mám nějaké duplicity, které řeším per partes ale to není ono
Linux, Verze rsyslog 8
Dík


Re:Rsyslog - oddělení lokálních a vzdálených logů
« Odpověď #1 kdy: 26. 07. 2022, 20:06:56 »
je to dokumentované tady, https://www.rsyslog.com/storing-and-forwarding-remote-messages/, je ti na tom něco nejasné?

Re:Rsyslog - oddělení lokálních a vzdálených logů
« Odpověď #2 kdy: 26. 07. 2022, 23:23:15 »
je to dokumentované tady, https://www.rsyslog.com/storing-and-forwarding-remote-messages/, je ti na tom něco nejasné?
Diky, prozkoumam, ale to co chci je , aby se mi zprávy z reportujících mašin neduplikovaly  do lokálních logů (=kam píše místní linux svoje kecy) jen pro, že posílají nesmysly typu authpriv.info.
Pokud možno přes UDP.
Ale zkusím tvůj příklad upravit, asi jsme na stopě.Dik
« Poslední změna: 26. 07. 2022, 23:29:01 od FKoudelka »

Re:Rsyslog - oddělení lokálních a vzdálených logůny
« Odpověď #3 kdy: 26. 07. 2022, 23:41:34 »
je to dokumentované tady, https://www.rsyslog.com/storing-and-forwarding-remote-messages/, je ti na tom něco nejasné?
Hmm , koukám na to, ale nepomůže. Například authpriv.* půjde napřed do /var/log/secure a pak taky jinam. Je jedno kam jinam, v mém připadě do dynfile dle hostName , lokálně.
A to je přesně to, čemu chci zabránit, neb mi duplicity sviní disk. Na druhou stranu, nechci s vaničkou
vylít i dítě, míním tím zahodit lokální zprávy se stejnou facility.
« Poslední změna: 26. 07. 2022, 23:49:10 od FKoudelka »

k3dAR

  • *****
  • 2 837
  • porad nemam telo, ale uz mam hlavu... nobody
    • Zobrazit profil
    • E-mail


Re:Rsyslog - oddělení lokálních a vzdálených logů
« Odpověď #5 kdy: 27. 07. 2022, 07:44:18 »
Zdravím,  řešil jsem :-)
ve /etc/rsyslog.d/remote.conf mám:
module(load="imudp")                                                                                                                                                                     
input(type="imudp" port="514")                                                                                                                                                           
module(load="imtcp")                                                                                                                                                                     
input(type="imtcp" port="514")                                                                                                                                                           
                                                                                                                                                                                         
#template(name="mydynafile" type="string" string="/var/log/%hostname%/%hostname%.log")                                                                                                   
template(name="mydynafile" type="string" string="/var/log/_remote/%hostname%.log")                                                                                                       
if $hostname != 'debian' then {                                                                                                                                                           
        action(type="omfile" dynaFile="mydynafile")                                                                                                                                       
        stop                                                                                                                                                                             
    }                                                                                                                                                                                     
                                                                                                                                                                                         
        A to loguje správně do adresáře _remote a nezasírá přitom lokální soubory. Zkuste                                                                                                                                                                                 
                                                                                                                                                                                         
                                                                                                                                                                                         
   

Re:Rsyslog - oddělení lokálních a vzdálených logů
« Odpověď #6 kdy: 27. 07. 2022, 07:45:11 »
Ještě doplňuji, že "debian" je jméno lokálního stroje na kterém běží rsyslog

Re:Rsyslog - oddělení lokálních a vzdálených logů
« Odpověď #7 kdy: 27. 07. 2022, 08:50:49 »
nejde spis o tohle? ;-)
https://www.rsyslog.com/storing-messages-from-a-remote-system-into-a-specific-file/
Ne, nejde, ale díky.
Taky používám, ale takhle ti stejně probublají zprávy do lokální sekce.

Re:Rsyslog - oddělení lokálních a vzdálených logů
« Odpověď #8 kdy: 27. 07. 2022, 08:54:25 »
Zdravím,  řešil jsem :-)
ve /etc/rsyslog.d/remote.conf mám:
module(load="imudp")                                                                                                                                                                     
input(type="imudp" port="514")                                                                                                                                                           
module(load="imtcp")                                                                                                                                                                     
input(type="imtcp" port="514")                                                                                                                                                           
                                                                                                                                                                                         
#template(name="mydynafile" type="string" string="/var/log/%hostname%/%hostname%.log")                                                                                                   
template(name="mydynafile" type="string" string="/var/log/_remote/%hostname%.log")                                                                                                       
if $hostname != 'debian' then {                                                                                                                                                           
        action(type="omfile" dynaFile="mydynafile")                                                                                                                                       
        stop                                                                                                                                                                             
    }                                                                                                                                                                                     
                                                                                                                                                                                         
        A to loguje správně do adresáře _remote a nezasírá přitom lokální soubory. Zkuste                                                                                                                                                                                 
                                                                                                                                                                                         
                                                                                                                                                                                         
   
Díky, něco takového jsem našel, ale zatím nezkoušel. Je super, že potvrzujete, že to funguje.

Re:Rsyslog - oddělení lokálních a vzdálených logů
« Odpověď #9 kdy: 27. 07. 2022, 09:07:40 »
Ještě doplňuji, že "debian" je jméno lokálního stroje na kterém běží rsyslog
Vtipný je to odfiltrovat přes ten lokální (jediný jistý) hostname.
Některé stroje to posílají tak blbě, že to padá třeba do souboru Jul.log :-) .

Re:Rsyslog - oddělení lokálních a vzdálených logů
« Odpověď #10 kdy: 27. 07. 2022, 10:59:06 »
Některé stroje to posílají tak blbě, že to padá třeba do souboru Jul.log :-) .

Neni ten nazev souboru spise o prevodu ip na jmeno?

Re:Rsyslog - oddělení lokálních a vzdálených logů
« Odpověď #11 kdy: 27. 07. 2022, 12:22:40 »
Některé stroje to posílají tak blbě, že to padá třeba do souboru Jul.log :-) .

Neni ten nazev souboru spise o prevodu ip na jmeno?
Nerozumím.
Je to o tom, že správný záznam vypadá takto:
authpriv.notice: Jul 27 12:16:41 host1  ....
a ten špatný
user.notice: Jul 27 12:18:03 Jul authpriv.notice 27:  12:17:58+02:00 172.x.x.x ..............
nebo přinejlepším
authpriv.notice: Jul 27 12:18:52 Jul 27 12:18:05+02:00 172.y.y.y ...........................

mají blbě template a podezírám, že schválně, ale editovat to nemůžu
Dá se to nějak lokálně přepsat na tom cílovém serveru?
Zaboha nemůžu příjít na to, jak vypsat, jak se které pole jmenuje

Re:Rsyslog - oddělení lokálních a vzdálených logů
« Odpověď #12 kdy: 27. 07. 2022, 12:24:09 »
Zdravím,  řešil jsem :-)
ve /etc/rsyslog.d/remote.conf mám:
module(load="imudp")                                                                                                                                                                     
input(type="imudp" port="514")                                                                                                                                                           
module(load="imtcp")                                                                                                                                                                     
input(type="imtcp" port="514")                                                                                                                                                           
                                                                                                                                                                                         
#template(name="mydynafile" type="string" string="/var/log/%hostname%/%hostname%.log")                                                                                                   
template(name="mydynafile" type="string" string="/var/log/_remote/%hostname%.log")                                                                                                       
if $hostname != 'debian' then {                                                                                                                                                           
        action(type="omfile" dynaFile="mydynafile")                                                                                                                                       
        stop                                                                                                                                                                             
    }                                                                                                                                                                                     
                                                                                                                                                                                         
        A to loguje správně do adresáře _remote a nezasírá přitom lokální soubory. Zkuste                                                                                                                                                                                 
                                                                                                                                                                                         
                                                                                                                                                                                         
   

Díky moc !!! Funguje to skvěle.

Re:Rsyslog - oddělení lokálních a vzdálených logů
« Odpověď #13 kdy: 27. 07. 2022, 13:14:45 »
Nerozumím.
Je to o tom, že správný záznam vypadá takto:
authpriv.notice: Jul 27 12:16:41 host1  ....
a ten špatný
user.notice: Jul 27 12:18:03 Jul authpriv.notice 27:  12:17:58+02:00 172.x.x.x ..............
nebo přinejlepším
authpriv.notice: Jul 27 12:18:52 Jul 27 12:18:05+02:00 172.y.y.y ...........................

mají blbě template a podezírám, že schválně, ale editovat to nemůžu
Dá se to nějak lokálně přepsat na tom cílovém serveru?
Zaboha nemůžu příjít na to, jak vypsat, jak se které pole jmenuje

Ja jsem to videl jen z vlaku, ale pokud se dobre pamatuji, tak na centosu7 nazev souboru (zde %hostname%) byl dan prekladem ip adresy a ne nejakym polem v zaznamu. Stacilo zmenit DNS (a rDNS) a nazev souboru se zmenil. Ale mozna si to pletu s postupem vyroby slivovice :)

Re:Rsyslog - oddělení lokálních a vzdálených logů
« Odpověď #14 kdy: 27. 07. 2022, 16:03:31 »
Diky vsem. Nakonec jsem ty blby formaty a lokalni messages vyresil takto:


$template FormatWithPRI,"%timegenerated:::date-rfc3339%; %fromhost%; %pri-text%; %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n"
template (name="DynFile" type="string" string="/var/log/syslog_/%fromhost%.log")
if $hostname != 'centosrv' then {
   action(type="omfile" dynaFile="DynFile" template="FormatWithPRI")
    stop
 }
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
authpriv.*                                              /var/log/secure
mail.*                                                  -/var/log/maillog
..............