Fórum Root.cz

Hlavní témata => Server => Téma založeno: FKoudelka 26. 07. 2022, 19:12:23

Název: Rsyslog - oddělení lokálních a vzdálených logů
Přispěvatel: FKoudelka 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
Název: Re:Rsyslog - oddělení lokálních a vzdálených logů
Přispěvatel: _Tomáš_ 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é?
Název: Re:Rsyslog - oddělení lokálních a vzdálených logů
Přispěvatel: FKoudelka 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
Název: Re:Rsyslog - oddělení lokálních a vzdálených logůny
Přispěvatel: FKoudelka 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.
Název: Re:Rsyslog - oddělení lokálních a vzdálených logů
Přispěvatel: k3dAR 27. 07. 2022, 00:51:19
nejde spis o tohle? ;-)
https://www.rsyslog.com/storing-messages-from-a-remote-system-into-a-specific-file/
Název: Re:Rsyslog - oddělení lokálních a vzdálených logů
Přispěvatel: zapik1 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                                                                                                                                                                                 
                                                                                                                                                                                         
                                                                                                                                                                                         
   
Název: Re:Rsyslog - oddělení lokálních a vzdálených logů
Přispěvatel: zapik1 27. 07. 2022, 07:45:11
Ještě doplňuji, že "debian" je jméno lokálního stroje na kterém běží rsyslog
Název: Re:Rsyslog - oddělení lokálních a vzdálených logů
Přispěvatel: FKoudelka 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.
Název: Re:Rsyslog - oddělení lokálních a vzdálených logů
Přispěvatel: FKoudelka 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.
Název: Re:Rsyslog - oddělení lokálních a vzdálených logů
Přispěvatel: FKoudelka 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 :-) .
Název: Re:Rsyslog - oddělení lokálních a vzdálených logů
Přispěvatel: messagebus 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?
Název: Re:Rsyslog - oddělení lokálních a vzdálených logů
Přispěvatel: FKoudelka 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
Název: Re:Rsyslog - oddělení lokálních a vzdálených logů
Přispěvatel: FKoudelka 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.
Název: Re:Rsyslog - oddělení lokálních a vzdálených logů
Přispěvatel: messagebus 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 :)
Název: Re:Rsyslog - oddělení lokálních a vzdálených logů
Přispěvatel: FKoudelka 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
..............