Rsyslog

From ICO wiki
Jump to navigationJump to search

Autor

Robert Pärn, A21

Sissejuhatus

Rsyslog võimaldab süsteemi logimist sarnaselt Linuxi/Unixi utiliidile syslog, kuid lisab palju rohkem funktsionaalsust. Mõningad olulised lisafunktsioonid, mida rsyslog pakub on näiteks täpsete kriteeriumite põhjal filtreerimine, sh. ka sisupõhine filtreerimine. Samuti on võimalik rsyslogiga võimalik logifaile vastavalt soovile IP võrgus liigutada. Tänu rsyslog'i võimekusele ja kasutusmugavusele on ta muudetud enamikes Linuxi distrotes standardiks.

Eeldused

Uusim rsyslog versioon on 6.3.8. See juhend eeldab, et ka teil on uusim versioon. Versioonid 0-4 on tänaseks vananenud, kuid on kasutus on suuresti sarnane uutematega. Nagu mainitud on uutemates Linuxites kohe rsyslog installitud ning on võimalik installida vanematele, millel see ei tule Operatsioonisüsteemiga kaasa. Suure tõenäosusega ei ole teil selle rakenduse kasutamiseks vaja mitte midagi juurde installida, kui kasutate uuemat Linuxit.

Basic kasutamise õpetus

Et rsyslog oleks täielikult mõistetav, demonstreerin tema põhilisi omadusi. Lühidalt öeldes on sellega võimalik kõike logida. Selleks, et logida erinevaid asju on rsyslogil propertyd. Propertyd "püüavad" süsteemi sõnumeid kinni stringidena ning neid on hiljem võimalik oma tahtmise järgi manipuleerida. Kõikvõimalikud propertyd on nähtavad siin: http://www.rsyslog.com/doc/property_replacer.html.

Teeme demo'ks ühe lihtsa logi, vaatame, mis süsteemi sõnumid liiguvad, kui teeme restardi teenusele rsyslog. Kõigepealt veendume, et oleme root kasutajaõigustes:

sudo -i

Järgmiseks veendume meil on rsyslog installitud.

apt-get update
apt-get install rsyslog

Avame rsyslog konfifaili.

nano /etc/rsyslog.conf

Edasi defineerime uue templiidi faili lõppu. Templiidi alustel põhineb terve rsyslogi töö. Siin saab kasutatada erinevaid propertyd ja stringi manipulatsioone ning defineerida kuhu faili logi kirjutatakse.

$template testikas, "Silt: '%syslogtag%', systeemis6num: '%msg%'\n"
*.* /var/log/testing123.log;testikas

Mida see kõik tähendab? $template defineerib templiidi, selle järgi saab rsyslog aru, et seal on eraldi reeglitel põhinev logimine ning oskab seda rakendada. Mina defineerisin enda templiidinimeks "testikas". Pärast koma järgneb see mida väljastatakse. Nagu näha siis on seal "Silt: " ning sellele järgneb property "%syslogtag%" jne. Lõpus on "\n", mis peaks olema tuttav neile, kes skriptimise või programmeerimisega tegelevad, antud märk vahetab rida (muidu kirjutataks kogu tekst üksteise otsa).

Salvesta fail ning testi seda mingi käsuga. Mina tegin rsyslogile restardi, aga nüüdsest püüab see logi kinni paljud süsteemi käsud.

service rsyslog restart
less /var/log/testing123.log

Minu väljastus:

Silt: 'kernel:', systeemis6num: 'imklog 5.8.1, log source = /proc/kmsg started.'
Silt: 'rsyslogd:', systeemis6num: ' [origin software="rsyslogd" swVersion="5.8.1" x-pid="1372" x-info="http://www.rsyslog.com"] start'
Silt: 'rsyslogd:', systeemis6num: 'rsyslogd's groupid changed to 103'
Silt: 'rsyslogd:', systeemis6num: 'rsyslogd's userid changed to 101'

Kui teil on tõsine soov hakata rsyslogi kasutama, siis soovitan tungivalt katsetada igasuguste erinevate propertytega ning regexiga (JAH ka seda on võimalik kasutada logifailide koostamisel). Võimalusi mida antud rakendus pakub on väga palju ning ilmselt aitaks lahendada ka paljude süsteemiadminnide muresid katkiste teenustega ja muuga.

Mõned rsyslog kasutuse näited

Kuna rsyslog on väga paindlik ja võimalik kasutada koos paljude programmide ja teenustega, siis olen toonud mõne näite teenustega, mida kasutatakse tihti.

Apache2

Apache2 teeb juba vaikeseades logisid ja see on piisav paljudel juhtudel, kuid kui tegu on suurema veebihostiga võib vaja minna rohkem logimise viise. Näiteks soovite saata ErrorLogisid üldse kuskile teise masinasse või filtreerida logisid sissetulevate IP'de järgi.


Viited

http://www.rsyslog.com/article354/

http://wiki.rsyslog.com/index.php/Working_Apache_and_Rsyslog_configuration

http://www.kiwisyslog.com/help/syslog/index.html?protocol_facilities.htm