Az a gondom, hogy van egy Graylog szerver, ebbe ugye mindenhonnan jönnek a syslog dolgok, hurrá. Próbálom az apache2/mysql logokat is, leesik, hogy ezekben nincs syslog, direktben fileba mennek. Kotorászok, graylog-sidecar, filebeat, szenvedek, nem megy.
Ígéretes megoldás: rsyslog tud filet olvasni. És valóban, tud:
module(load="imfile" PollingInterval="10" statefile.directory="/var/spool/rsyslog")
input(type="imfile"
File="/var/log/apache2/*.log"
Tag="http"
Severity="*")
# Facility="local1")
# local1.* action(type="omfile" File="/var/log/local1.log")
Szóval a tervem az lett volna, hogy local1 facilitybe nyomja, amit aztán szépen a /var/log/local1.log fileba nyomok . Elvileg már a /var/log/syslog-ba se kellene kerülnie, de odamegy. Mindegy.
Tehát, valami ötlet rá, hogy a beolvasott filenak mi legyen a kimenete ?
Ilyet nem találok a configban, valójában a "Facility" is az olvasott filera vonatkozik, ami számomra totál értelmetlen.
Mellékelve az "imfile" doksija.
https://www.rsyslog.com/doc/v8-stable/configuration/modules/imfile.html
Bevallom, nekem az eredeti syslog is nehézkes volt, de azzal mégis elboldogult az ember - ezzel képtelen vagyok.
Egyébként ez a default kimenet és működik, csak az /var/log/syslog fileba ne kerülne bele :(
*.* @@10.31.75.10:1514
(a syslog.log kihagyására is itt van ez - de minthogy nem a local1-be megy a beolvasott file, semmit nem ér:
local1.none -/var/log/syslog )
Hozzászólások
Hmm, mondjuk az "apache log syslogba" dologra már találok megoldást, úgy tűnik. Ez mondjuk csak kulturáltabb, mint fileból olvasni és fileba írni
https://docs.trellix.com/bundle/xdr_dscg/page/UUID-4540547f-28c4-0553-8…
http://www.micros~1
Rekurzió: lásd rekurzió.
Általánosan: az action(ök) után állítsd meg a feldolgozást amikor oda elment ahova akarod, egyébként minden destination-re kiküldi.
& ~
Más:
Lehet nem ez az optimális mód a probléma megoldására, + ha van kedved/lehetőséged nézd meg a syslog-ng-t inkább. Szerintem jóval átláthatóbb.
Köszi. Közben más irányba indultam el, kiderült, hogy egész kultúrált az apache logolása:
- nem csak egyetlen érvényes CustomLog sor lehet, hanem több is - és mindet végrehajtja
- lehet akár script is, azaz (példák szerint) a "logger" is meghívható.
Innen már egyszerűbbnek tűnik, azaz az apache2 fog a rsyslog-ba logolni. (mégpedig megmarad az eredeti, virtualhostonkénti logfile is)
Na, ha hasonló van a mysql-nél is, akkor boldog leszek.
"& ~" -> ezt köszi, ma is tanultam valamit. Rémlik, mintha lett volna valahol említve ilyen a doksiban, de átsiklottam felette, az jobban izgatott, hogy tudok filet olvasni és írni.
Ha lehet is, nem egyszerű, nekem meg semmi kedvem olyan dolgot létrehozni, amit egy hónap múlva nem látok át.
http://www.micros~1
Rekurzió: lásd rekurzió.
syslog-ng tényleg 700x átláthatóbb, az is tud fájlból olvasni (sőt, ha jól rémlik apache loghoz még parser is van. szóval egyből tudod kultúráltan sdataként loggolni, gondolom annak örül a graylog)
Ez de mekkora gány!
Ráadásul több sebből vérzik:
- performance overhead: nagyobb terhelésű webszerver esetén minden egyes sor meghív egy külön logger-t ?!
- semmi nem garantálja, hogy ne veszíts logot,
- ha audit log is van, akkor ezzel megduplikálod a logbejegyézésket, mert az összes logeer hívás is logolva lesz.
- security vonzata: 'ps' is szépen mutatja majd a logokat - bármelyik usernek...
Ehez képest akármelyik syslog agent file reader implemetációja fényévekkel jobb és megbízhatóbb.
szerintem.
zrubi.hu
Azért a "| logger..." kapcsán érdemes újragondolni, amit írtál... Nem véletlenül pipe-pal indul...
ahh :)
így valóban nem annyira szörnyű a helyzet.
Sorry.
zrubi.hu
Én is majdnem ezzel kezdtem, de aztán megolvastam, hogy is van ez, az apache egyszer forkol, a logger pedig tud stdint olvasni hosszan. (Bár hevenyészett tesztjeim alapján baszik bekerülni a journalba, míg ki nem lép a logger, szóval valami van a puffereléssel.
Elvileg restartolja, ha meghal
nem lesz, mert egyszer indít loggert
nem paraméter, stdin, nem látszik.
Én is hajlanék erre, de nem tűnik ez akkora borzalomnak, mint mikor magam elé képzeltem egy minden alkalommal forkolt loggert.
A soha el nem készülő? Apache 2.6-ban (2.5 devel ág van már vagy 11!! éve) persze már van mod_syslog és mod_journald natívan.
https://httpd.apache.org/docs/trunk/mod/mod_log_config.html#customlog
Köszi, talán mire nyugdíjba megyek, meglesz.
http://www.micros~1
Rekurzió: lásd rekurzió.
Ok, akkor az apache megoldva. virtualhost:
CustomLog ${APACHE_LOG_DIR}/prodweb0001l_access.log combined
CustomLog "|/usr/bin/logger -t apache2_web1 -p local0.info" combined
Syslogba meg most nem kell semmi extra, már a *.* megy UDP-n a graylogba.
Feltűntek az "apache2_web1" üzenetek is, így már lehet rá szűrni.
http://www.micros~1
Rekurzió: lásd rekurzió.
Ok, mysql se lesz túl bonyolult. Az 5.7 óta gondoltak azokra a perverzekre, akik a syslogot használnák.
https://dev.mysql.com/doc/refman/8.0/en/error-log-syslog.html
https://dev.mysql.com/blog-archive/logging-with-mysql-error-logging-to-…
http://www.micros~1
Rekurzió: lásd rekurzió.
Egyben köszönöm az ötleteket, elhiszem, hogy jó a syslog-ng, de rsyslog van az Ubuntun gyárilag. Nem akarok most 10 gépet átkonfigurálni ezért - plusz az újaknál is.
Ha egyetlen sor beszúrásával az apache2 virtualhostok configjába megúszom, akkor hurrá (úgyis csak másolom és szerkesztem, ha új vh lesz)
http://www.micros~1
Rekurzió: lásd rekurzió.
Ja, én csak azért mondtam, mert írtad, hogy az rsyslog konfig pfejj.
Egyébként ennyi gépnél már van értelme elkezdeni ansiblezni vagy valami. :)
Azzal pont az ilyen skálázódási szarok favágását tudod megúszni. Bár kicsit több idő lesz megfaragni mondjuk egy rsyslog -> syslog váltást, mint egyszer, cserébe onnan már mindegy, hogy még 5 vagy még 50re kell kimenni neki.
Igen, tudom, már vagy 10 éve rá akarom venni magam az ansible megismerésére. Mondjuk 10 év múlva meg nyugdíj, szóval ha elég ideig rágom a körmöm, akkor nem lesz gondom.
Virtuális gépek, szóval nem egy iszonyat bonyolult dolog klónozni. Aztán persze van, amit két év után vettem észre....
btw, minden syslog config pfej :) Az eredeti is meg a többi is. Max annyit szoktam, hogy pl. smtp szervernél ne nyomja a mail logját a syslogba is meg hasonló apróságok.
Mondjuk így 50+ már nagyrészt mindennel úgy vagyok, hogy minél kevesebbet kelljen módosítani, utálom, mikor upgrade-nél fejreáll.
http://www.micros~1
Rekurzió: lásd rekurzió.
25? éve első dolgom minden Linux/Unix (még annó Solarisban is) telepítésnél/klónban/templateban whatever a random syslog implementációt cserélni syslog-ng-re :).
Ugyanez az exim->postfix-el is :)
Kivéve egy két strict helyen (RHEL) ahol megkövetelik az alaptelepítéssel felmenő syslog-ot.
hát passz, én mindigis postfix-szel találkoztam (jó, életem első linuxa, a Mandrake, az kérdezte, postfix vagy sendmail legyen)
De mindig postfixet pakolnak a disztrók, úgy láttam. Nem mintha olyan iszonyú tapasztalatom lenne, debian/ubuntu meg centos és kész ( és linuxból elég is)
http://www.micros~1
Rekurzió: lásd rekurzió.
Debianon exim a default, nem?
Az.
őőőőő.....nem tudom.
felhúztam vagy 20 éve, aztán azóta csak update.
Utoljára vagy 10 éve raktam fel cégnél, szóval passz.
(Lehet, hogy megkérdi installkor, nem tudom)
http://www.micros~1
Rekurzió: lásd rekurzió.
Off:
RHEL-en kizárólag syslog-ng megy nálunk.
Hát, ha úgy érzed, megélsz majd a nyugdíjból :D
Nem szeretem az ilyen template / cloneozgatás alapú dolgokat, valahogy mindig kupi lesz kicsit.
Még talán a syslog-ng a legnormálisabb, ha egyszer felfogtad, hogy hogy áll össze egy logpath, akkor elég jó, a syntax sem annyira obskurus. Tény, hogy tud owerwhelming lenni elsőre, mert elég sok mindent tud, amire a végeken nem annyira van szükség, de egyébként nagy centralizálós menjen minden egy helyre dolgoknál elég sokat tud segíteni, ha ez van a felhordó hálózaton.
"megélsz majd a nyugdíjból :D"
talán a temetésre fussa (nem az állami nyugdíjra aspirálok)
Nincs az az érzésem, hogy megszámlálhatatlan évtized van előttem (szegény nagybátyám is 65 volt, mikor meghalt - igaz, apám 78.)
http://www.micros~1
Rekurzió: lásd rekurzió.
"Nem szeretem az ilyen template / cloneozgatás alapú dolgokat, valahogy mindig kupi lesz kicsit. "
Nekem bejön. Sokkal egyszerűbb, mint a nulláról telepíteni és gondolkodni, mit szedjek le, mit rakjak fel.
http://www.micros~1
Rekurzió: lásd rekurzió.
Pont az a bajom vele, hogy nem nulláról van, hanem van valahol egy golden image, amit egyszer valaki összerakott, és igazából passzpiros mi van benne, aztán mikor egy év múlva rájövünk, hogy már kurva sokáig tart az apt update, kéne frissebb, akkor jön némi fejvakargatás. Meg a clone után azért még csak telepítek ezt azt, aztán szét van az egséz. Jobb szeretem azt, mikor indulunk mondjuk az isoból, aztán szépen ott a kotta, hogy így lesz ebből egy példány.
"aztán mikor egy év múlva rájövünk, hogy már kurva sokáig tart az apt update" - Ez nem a template-ből klónozás, hanem a frissítés elmaradásának a problémája. A template-et is rendszeresen frissíteni kell...
Egyrészt alapvetően minek, másrészt nem az idő a fő baj, hanem, hogy ez jellemzően kézi munka. Jobb esetben van egy wiki, esetleg vmi kendácsolt script, ami még mindig elég savanyú egy normális automatizált akármihez képest.
Ha van egy "prod" image-ed, ami a prod vm-ekkel egyszerre frissül, meg van egy teszt image-ed, ami a tesztekkel egyszerre frissül, akkor kvázi bármikor tudsz a meglévő VM-ekkel azonos verzión lévő környezetet létrehozni. Tudom, első látásra világbéke és minden elleni bűn az új gépet telepítés után azonnal nem minden részletre kiterjedően frissíteni, de van, ahol az az elvárás, hogy adott "körben" az adott frissítési cikluson belül egységes legyen minden.
Automatizálás... Azt, hogy mondjuk sssd-vel (vagy pbis, vagy más) AD-ből authentikáljon a frissen kialakított vm, azt hogyan automatizálnád le? Hol, és milyen credential-t tárolnál az automatikus domainbe léptetéshez?
Szerintem elbeszélünk egymás mellett, nem arról van szó, hogy frissnek kell lenni, automatizált eljárásokkal nyugodtan meg lehet szabni a környezetet, amit létre szeretnél hozni. Remekül lehet pontosan egységesen tartani mindent. Azért nem szeretem a temlpates mókát, mert a prod image jellemzően valami nagyon nyekergős kézi/félkézi processz mentén keletkezik, azzal szemben, mintha normálisan le volna írva valahova, hogy minek kell benne lenni, és azt a gép produkálná "magától". Nem feltétlen kell ennek így lennie, készülhet az a prod image is "jól", én is csináltam már olyat, de tapasztalataim szerint nem ez a jellemző. Továbbá az egész környezetnek, amit kapsz, jellemzően nem része az ehhez szükséges tooling, ami meg megvan belőle, az általában nem valami jó. Vannak előnyei is a templatesdinek (pl jellemzően gyorsabb vmivel talán), de összességében szerintem nem az igazi.
Tipikusan két lépcsős folyamat szokott ez lenni, az első lépésben előáll egy nagyon alap vm, mondjuk valami cloud-init segítségével a vmware APIn, ebbe belekerül valami, ami az autmatizációhoz kell (mondjuk egy user, meg egy ssh kulcs, vagy valami hazatelefonálós izé, ha mondjuk puppet, de a cloud-initnek pl van beépített ansible izéje, ami ansible-pullol egyet), onnantól pedig már az automata konfigolja a konkrét igényeknek megfelelelően a vmet, és viszi le pl az sssdhez szükséges konfigot. Ha arra igény van, akkor meg tudja itt azt is csinálni, hogy pl a deployhoz beégetett usert beszántja, hogy a jövőben már ő is mondjuk vmi ADn keresztüli hitelesítéssel jöjjön.
" egyszer valaki összerakott"
jaigen, saját gépeket klónozok, amit én installáltam valamikor :)
http://www.micros~1
Rekurzió: lásd rekurzió.
Nyilván. Aztán ha újra kell csinálni, akkor majd lesz benne valami hasonló :)
igen, általában web meg smtp szerverekből csinálok újat, semmi extra.
http://www.micros~1
Rekurzió: lásd rekurzió.
MySQL mégsem annyira egyszerű. Egyrészt csak és kizárólag az error.logot képes - másrészt verzióról verzióra (vagy akár mysql - mariadb) is a config. Valami mariadb, mysql 5.7 meg mysql 8.0 és mindhárom más, csodás. De elégedettek lehetnek vele, párnaponta (ha újraindul a mysql), kerül valami a graylogba
Csak jegyzetként felírtam, hátha valakinek hasznos lesz
MySQL 8.x
mysql, utána:
INSTALL COMPONENT 'file://component_log_sink_syseventlog';
config fileba:
syseventlog.tag = mysql_dev2
syseventlog.facility = local1
syseventlog.include_pid = On
(mariaDB)
/etc/systemd/system/multi-user.target.wants/mariadb.service fileba:
StandardOutput=syslog
StandardError=syslog
SyslogFacility=local1
SyslogLevel=err
SyslogIdentifier=mysql_mon
(mysql 5.7)
log_syslog_tag = mysql_webgalamb
log_syslog_facility = local1
log_syslog_include_pid = On
log_syslog = On
http://www.micros~1
Rekurzió: lásd rekurzió.
Ilyesmit keresel?
https://mariadb.com/kb/en/mariadb-audit-plugin/
zrubi.hu
Oh, igen, köszi. Bár igazán a slow.log izgalmas, de azt meg jelenleg sokkal jobb parancssori eszközzel nézni, mint a graylogban :)
ha az oracle mysql-nek is van ilyen, akkor boldogok lehetnek, akiknek az a vágyuk, hogy a graylogban lássák.
http://www.micros~1
Rekurzió: lásd rekurzió.
ok, mysql esetén csak enterprise verzióban. Hát akkor ez van :)
Ezzel se kell szenvednem.
http://www.micros~1
Rekurzió: lásd rekurzió.