Fórum Root.cz
Hlavní témata => Server => Téma založeno: 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
-
je to dokumentované tady, https://www.rsyslog.com/storing-and-forwarding-remote-messages/, je ti na tom něco nejasné?
-
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
-
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.
-
nejde spis o tohle? ;-)
https://www.rsyslog.com/storing-messages-from-a-remote-system-into-a-specific-file/
-
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
-
Ještě doplňuji, že "debian" je jméno lokálního stroje na kterém běží rsyslog
-
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.
-
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.
-
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ě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ě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
-
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.
-
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 :)
-
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
..............