Giunsa Pagdumala ang Mga Log sa Sistema (Pag-configure, Pag-rotate ug Pag-import sa Database) sa RHEL 7 - Bahin 5


Aron mapadayon nga luwas ang imong mga sistema sa RHEL 7, kinahanglan nimo mahibal-an kung giunsa ang pag-monitor sa tanan nga mga kalihokan nga nahitabo sa ingon nga mga sistema pinaagi sa pagsusi sa mga file sa log. Sa ingon, mahimo nimong makit-an ang bisan unsang dili kasagaran o mahimo’g makadaot nga kalihokan ug himuon ang pag-troubleshoot sa sistema o paghimo og lain nga angay nga aksyon.

Sa RHEL 7, ang rsyslogd daemon ang responsable sa pag-log sa sistema ug gibasa ang pag-configure niini gikan sa /etc/rsyslog.conf (kini nga file nagtino sa default nga lokasyon alang sa tanan nga mga log sa sistema) ug gikan sa mga file sa sulod /etc/rsyslog.d, kung naa.

Rsyslogd Configuration

Ang dali nga pagsusi sa rsyslog.conf makatabang sa pagsugod. Kini nga payl gibahin sa 3 ka nag-unang mga seksyon: Modules (tungod kay ang rsyslog nagsunod sa usa ka modular nga disenyo), Global nga mga direktiba (gigamit sa pagtakda sa global nga mga kabtangan sa rsyslogd daemon), ug Rules. Sama sa imong mahunahunaan, kini nga katapusan nga seksyon nagpaila kung unsa ang na-log o gipakita (nailhan usab nga tigpili) ug kung diin, ug ang among pokus sa tibuuk nga artikulo.

Ang kasagarang linya sa rsyslog.conf mao ang mosunod:

Sa hulagway sa ibabaw, atong makita nga ang usa ka tigpili naglangkob sa usa o daghan pa nga mga pares Pasilidad:Priyoridad nga gibulag sa mga semicolon, diin ang Pasilidad naghulagway sa matang sa mensahe (tan-awa ang seksyon 4.1.1 sa RFC 3164 aron makita ang kompletong listahan sa mga pasilidad nga anaa alang sa rsyslog) ug ang Priority nagpakita sa kagrabe niini, nga mahimong usa sa mosunod nga mga pulong nga nagpatin-aw sa kaugalingon:

  1. pag-debug
  2. kahibalo
  3. pahibalo
  4. pasidaan
  5. sayup
  6. crit
  7. alerto
  8. tumaw

Bisan kung dili usa ka prayoridad mismo, ang keyword wala nagpasabut nga wala’y prayoridad sa tanan nga gihatag nga pasilidad.

Pahinumdom: Nga ang gihatag nga prayoridad nagpakita nga ang tanan nga mga mensahe sa ingon nga prayoridad ug labaw pa kinahanglan nga ma-log. Busa, ang linya sa panig-ingnan sa ibabaw nagtudlo sa rsyslogd daemon sa pag-log sa tanan nga mga mensahe sa prayoridad nga impormasyon o mas taas (bisan unsa pa ang pasilidad) gawas niadtong iya sa mail, authpriv, ug cron nga mga serbisyo (walay mga mensahe nga gikan niini nga mga pasilidad ang pagaisipon. ) ngadto sa /var/log/messages.

Mahimo usab nimo nga grupo ang daghang mga pasilidad gamit ang colon sign aron magamit ang parehas nga prayoridad sa tanan niini. Busa, ang linya:

*.info;mail.none;authpriv.none;cron.none                /var/log/messages

Mahimong isulat pag-usab ingon

*.info;mail,authpriv,cron.none                /var/log/messages

Sa laing pagkasulti, ang mga pasilidad nga mail, authpriv, ug cron gi-grupo ug ang keyword nga wala magamit sa tulo niini.

Aron ma-log ang tanang mensahe sa daemon sa /var/log/tecmint.log, kinahanglan natong idugang ang mosunod nga linya sa rsyslog.conf o sa usa ka bulag nga file (mas sayon nga pagdumala) sulod sa /etc/rsyslog.d:

daemon.*    /var/log/tecmint.log

Atong i-restart ang daemon (timan-i nga ang ngalan sa serbisyo dili matapos sa usa ka d):

# systemctl restart rsyslog

Ug susiha ang sulod sa among custom nga log sa wala pa ug human sa pagsugod pag-usab sa duha ka random nga mga daemon:

Isip usa ka pag-ehersisyo sa kaugalingon nga pagtuon, irekomendar nako nga magdula ka sa mga pasilidad ug mga prayoridad ug mag log dugang nga mga mensahe sa naa na nga mga file sa log o maghimo mga bag-o sama sa miaging pananglitan.

Pag-rotate sa mga Log gamit ang Logrotate

Aron mapugngan ang mga log file nga motubo nga walay katapusan, ang logrotate utility gigamit sa pag-rotate, pag-compress, pagtangtang, ug alternatibo nga mail logs, sa ingon nagpagaan sa pagdumala sa mga sistema nga makamugna og daghang mga log files.

Ang Logrotate nagdagan adlaw-adlaw isip usa ka cron job (/etc/cron.daily/logrotate) ug nagbasa sa configuration niini gikan sa /etc/logrotate.conf ug gikan sa mga file nga anaa sa /etc/logrotate.d, kon aduna man.

Sama sa kaso sa rsyslog, bisan kung mahimo nimong ilakip ang mga setting alang sa piho nga mga serbisyo sa panguna nga file, ang paghimo og lahi nga mga file sa pag-configure alang sa matag usa makatabang sa pag-organisar sa imong mga setting nga mas maayo.

Atong tan-awon ang kasagarang logrotate.conf:

Sa panig-ingnan sa ibabaw, ang logrotate mobuhat sa mosunod nga mga aksyon para sa /var/loh/wtmp: pagsulay sa pag-rotate kausa lang sa usa ka bulan, apan kung ang file labing menos 1 MB ang gidak-on, unya paghimo og bag-ong log file nga adunay mga permiso nga gitakda. ngadto sa 0664 ug ang pagpanag-iya gihatag ngadto sa user root ug group utmp. Sunod, tipigi lang ang usa ka naka-archive nga log, ingon nga gitakda sa rotate directive:

Atong tagdon karon ang laing pananglitan nga makita sa /etc/logrotate.d/httpd:

Makabasa ka ug dugang bahin sa mga setting para sa logrotate sa mga man page niini (man logrotate.conf). Ang duha ka mga file gihatag uban niini nga artikulo sa PDF nga format para sa imong kasayon sa pagbasa.

Isip usa ka inhenyero sa sistema, naa ra kanimo ang pagdesisyon kung unsa kadugay ang mga troso itago ug kung unsang pormat, depende kung naa ka/var sa usa ka lahi nga partisyon/lohikal nga gidaghanon. Kung dili, gusto nimo nga ikonsiderar ang pagtangtang sa mga daan nga troso aron makatipig sa espasyo sa pagtipig. Sa laing bahin, mahimong mapugos ka sa pagtipig sa daghang mga troso alang sa umaabot nga pag-audit sa seguridad sumala sa internal nga mga palisiya sa imong kompanya o kliyente.

Siyempre ang pagsusi sa mga troso (bisan sa tabang sa mga himan sama sa grep ug regular nga mga ekspresyon) mahimong usa ka kapoy nga buluhaton. Tungod niana nga hinungdan, gitugotan kami sa rsyslog nga i-export kini sa usa ka database (Gisuportahan sa OTB ang RDBMS naglakip sa MySQL, MariaDB, PostgreSQL, ug Oracle.

Kini nga seksyon sa tutorial nagtuo nga na-install na nimo ang MariaDB server ug kliyente sa parehas nga RHEL 7 nga kahon diin ang mga troso gidumala:

# yum update && yum install mariadb mariadb-server mariadb-client rsyslog-mysql
# systemctl enable mariadb && systemctl start mariadb

Dayon gamita ang mysql_secure_installation utility para itakda ang password para sa root user ug uban pang konsiderasyon sa seguridad:

Mubo nga sulat: Kung dili nimo gusto nga gamiton ang root user sa MariaDB aron isulod ang mga mensahe sa log sa database, mahimo nimong i-configure ang laing user account aron mahimo kini. Ang pagpatin-aw kung giunsa pagbuhat kana wala sa sakup sa kini nga panudlo apan gipatin-aw sa detalye sa base sa kahibalo sa MariaDB. Niini nga tutorial atong gamiton ang root account alang sa kayano.

Sunod, i-download ang createDB.sql script gikan sa GitHub ug i-import kini sa imong database server:

# mysql -u root -p < createDB.sql

Sa katapusan, idugang ang mosunod nga mga linya sa /etc/rsyslog.conf:

$ModLoad ommysql
$ActionOmmysqlServerPort 3306
*.* :ommysql:localhost,Syslog,root,YourPasswordHere

I-restart ang rsyslog ug ang database server:

# systemctl restart rsyslog 
# systemctl restart mariadb

Karon himoa ang pipila ka mga buluhaton nga magbag-o sa mga troso (sama sa paghunong ug pagsugod sa mga serbisyo, pananglitan), dayon pag-log in sa imong DB server ug gamita ang standard nga mga sugo sa SQL aron ipakita ug pangitaon ang mga log:

USE Syslog;
SELECT ReceivedAt, Message FROM SystemEvents;

Summary

Niining artikuloha among gipasabot kon unsaon pag-set up sa system logging, unsaon pag-rotate ang mga log, ug unsaon pag-redirect sa mga mensahe ngadto sa database para sa mas sayon nga pagpangita. Nanghinaut kami nga kini nga mga kahanas makatabang samtang nangandam ka alang sa eksaminasyon sa RHCE ug sa imong adlaw-adlaw nga mga responsibilidad usab.

Sama sa kanunay, ang imong feedback labaw pa sa pag-abiabi. Palihug gamita ang porma sa ubos para maabot mi.