Linuxissa lokitiedostot ovat tiedostoja, jotka sisältävät viestit järjestelmän toiminnoista, joita järjestelmänvalvojat käyttävät tunnistaakseen mahdolliset ongelmat koneissa. Lokit auttavat järjestelmänvalvojia visualisoimaan järjestelmässä tapahtuneet tapahtumat ajanjaksojen aikana. Yleensä kaikki lokitiedostot säilytetään / Var / log hakemisto Linuxissa. Tässä paikassa on useita erilaisia lokitiedostoja eri viestien tallentamiseen, kuten lokitiedosto järjestelmän tapahtumien tallentamiseen, lokitiedosto turvallisuuteen liittyviin viesteihin, muihin lokitiedostoihin, käyttäjille tai cron-töille tarkoitettuihin lokitiedostoihin. Lokitiedostojen pääasiallinen tarkoitus on selvittää järjestelmäongelmia. Useimmat lokitiedostot Linuxissa ovat rsyslogd-palvelun hallinnassa. Linux-jakaumien uudemmissa julkaisuissa lokitiedostoja ohjaa ja hallinnoi myös journald-järjestelmäpalvelua, joka on osa systemd-alustusohjelmaa. Lehden päivämäärän tallennetut lokit kirjoitetaan binäärimuodossa, ja ne ovat pääasiassa haihtuvia, tallennetaan RAM: iin ja rengaspuskuriin / run / log / journal /. Lehtipalvelu voidaan kuitenkin myös konfiguroida tallentamaan Syslog-viestejä pysyvästi.
Linuxissa rsyslog-palvelin voidaan konfiguroida ylläpitämään keskitettyä lokinhallintapalvelinta asiakaspalvelimallimuodossa ja lähettämään lokiviestejä verkon välityksellä TCP- tai UDP-siirtoprotokollien kautta tai vastaanottamaan lokeja verkkolaitteista, palvelimista, reitittimistä, kytkimistä tai muut järjestelmät tai sulautetut laitteet, jotka tuottavat lokit.
Rsyslog-daemonia voidaan asettaa suorittamaan asiakkaana ja palvelimena samanaikaisesti. Määritetty palvelemaan palvelimena, Rsyslog kuuntelee oletusportilla 514 TCP ja UDP ja alkaa kerätä lokiviestejä, jotka lähetetään verkon kautta etäjärjestelmillä. Asiakkaana Rsyslog lähettää verkon sisäiset lokiviestit etäiselle Ryslog-palvelimelle saman TCP- tai UDP-portin kautta.
Rsyslog suodattaa syslog-viestit valittujen ominaisuuksien ja toimintojen mukaan. Rsyslog-suodattimet ovat seuraavat:
- Facility tai Priority filers
- Ominaispohjaiset suodattimet
- Ilmaisupohjaiset suodattimet
- laitos suodatinta edustaa Linux-sisäinen osajärjestelmä, joka tuottaa lokit. Ne luokitellaan seuraavasti:
- auth / authPriv = autentikointiprosessien tuottamat viestit
- cron= cron-tehtäviin liittyvät lokit
- demoni = järjestelmän palveluihin liittyviä viestejä
- ydin = Linux-ytimen viestit
- posti = postin palvelinviestit
- syslog = syslogille tai muille demoille (DHCP-palvelin lähettää lokit täällä)
- lpr = tulostimet tai tulostuspalvelinviestit
- paikallinen0 - paikallinen7 = henkilökohtaiset viestit järjestelmänvalvojan hallinnassa
- etusijalle tai vakavuudelle tasot määritetään avainsanalle ja numeroon, kuten alla on kuvattu.
- Emerging = Hätätilanteessa - 0
- hälytys = Hälytykset - 1
- erehtyä = Virheet - 3
- varoittaa = Varoitukset - 4
- ilmoitus = Ilmoitus - 5
- tiedot = Tiedotus - 6
- korjata virheet jstk = Debugging - 7 korkein taso
Käytettävissä on myös joitain erityisiä Rsyslog-avainsanoja, kuten tähti (*) -merkki määritellä kaikki
tilat tai prioriteetit, ei mitään avainsana, jossa ei määritetä prioriteetteja, tasa-arvoinen merkki (=), joka valitsee vain kyseisen prioriteetin ja huutomerkin (!), joka kieltää prioriteetin.
Syslogin toimintaosaa edustaa määränpää lausuma. Log-viestin kohde voi olla tiedostossa tallennettu tiedosto, tiedosto tiedostossa / var / log / system path, toinen paikallisprosessi syöttää nimetty putki tai FIFO. Lokiviestit voidaan ohjata myös käyttäjille, jotka hävitetään mustaan reikään (/ dev / null) tai lähetetään stdoutiin tai etäpalvelinpalvelimeen TCP / UDP-protokollan kautta. Lokiviestit voidaan myös tallentaa tietokantaan, kuten MySQL tai PostgreSQL.
Määritä Rsyslog palvelimena
Rsyslog-demoni asennetaan automaattisesti useimpiin Linux-jakeluihin. Jos Rsyslogia ei kuitenkaan ole asennettu järjestelmään, voit antaa jonkin alla olevista komennoista palvelun asentamiseksi> tarvitset pääkäyttöoikeudet komentojen suorittamiseen.
Debian-pohjaisissa drossa:
sudo apt-get asenna rsyslog
RHEL-pohjaisissa drossa, kuten CentOS:
sudo yum asenna rsyslog
Varmistaaksesi, onko Rsyslog daemon käynnistetty järjestelmässä, suorita alla olevat komennot jakeluversion mukaan.
Uudemmissa Linux-jakeluissa systemd:
systemctl-tila rsyslog.service
Vanhemmissa Linux-versioissa init:
palvelu rsyslog tilassa
/etc/init.d/rsyslog status
Rsyslog daemon käynnistämiseksi antaa seuraavan komennon.
Vanhemmissa Linux-versioissa init:
palvelu rsyslog käynnisty
/etc/init.d/rsyslog käynnisty
Uusimmissa Linux-doksissa:
systemctl aloittaa rsyslog.service
Jos haluat määrittää rsyslog-ohjelman suoritettavaksi palvelintilassa, muokkaa pääkonfigurointitiedostoa /etc/rsyslog.conf. Tässä tiedostossa tehdään seuraavat muutokset alla olevan näytteen mukaisesti.
sudo vi /etc/rsyslog.conf
Etsi ja poista komentosta poistamalla hashtag (#) seuraavat rivit, jotta UDP-lokiviestin vastaanotto voidaan sallia 514-portilla. Oletusarvoisesti UDP-portti käyttää syslog lähettää ja vastaanottaa viestejä.
$ ModLoad imudp $ UDPServerRun 514
Koska UDP-protokolla ei ole luotettava tiedonsiirtoon verkossa, voit määrittää Rsyslog-ohjelman, joka lähettää lokiviestit etäpalvelimelle TCP-protokollan kautta. Ota TCP-vastaanottoprotokolla käyttöön avaamalla /etc/rsyslog.conf tiedosto ja kommentoimatta seuraavia viivoja alla esitetyllä tavalla. Tämä mahdollistaa sen, että rsyslog-daemon sitoo ja kuuntelee portin 514 TCP-liitäntää.
$ ModLoad imtcp $ InputTCPServerRun 514
Molemmat protokollat voidaan ottaa käyttöön rsyslogissa samanaikaisesti.
Jos haluat määrittää, mitkä lähettäjät sallivat rsyslog-démonin käytön, lisää seuraava rivi käytössä olevien protokollarivien jälkeen:
$ AllowedSender TCP, 127.0.0.1, 10.110.50.0 / 24, *. Verkkotunnus.com
Sinun on myös luotava uusi malli, jonka jäsennetään rsyslog daemon ennen saapuvien lokien vastaanottamista. Mallin tulisi ohjata paikallista Rsyslog-palvelinta, johon tallennetaan saapuvat lokiviestit. Määritä malli heti $ AllowedSender linjaa, kuten alla olevassa näytteessä esitetään.
$ template Tulevat lokit "/ var / log /% HOSTNAME% /% PROGRAMNAME% .log" *. * ? Saapuvat lokit & ~
Jotta kirjaa vain kernin luomasta viestistä, käytä alla olevaa syntaksia.
kern. *? Tulevat lokit
Vastaanotetut lokit jäsennetään edellä esitetyllä mallilla ja ne tallennetaan paikalliseen tiedostojärjestelmään / var / log / -hakemistossa tiedostoissa, jotka on nimetty asiakkaan isäntänimen asiakaspalvelusta, joka on tuottanut viestejä: % HOSTNAME% ja % Ohjelman_nimi% muuttujia.
Alla & ~ uudelleenohjaussääntö määrittää Rsyslog-demoon tallentamaan saapuvat lokiviestit vain yllä kuvattuihin muuttujien nimeämiin tiedostoihin. Muuten vastaanotetut lokit käsitellään edelleen ja tallennetaan myös paikallisten lokien, kuten / var / log / syslog-tiedoston sisältöön.
Jos haluat lisätä säännön hylkäämään kaikki siihen liittyvät lokiviestit sähköpostiviestiin, voit käyttää seuraavaa lausetta.
mail. * ~
Muita muuttujia, joita voidaan käyttää tiedostonimien tuottamiseen:% syslogseverity%,% syslogfacility%,% timegenerated%,% HOSTNAME%,% syslogtag%,% msg%,% FROMHOST-IP%,% PRI%,% MSGID% % APP-NAME%,% TIMESTAMP%,% $ vuosi%,% $ kuukausi%,% $ day%
Alkaen Rsyslog-version 7 avulla voidaan käyttää uutta konfigurointimuotoa mallin ilmoittamiseksi Rsyslog-palvelimelle.
7-mallinäytteen malli voi näyttää alla olevilta riviltä.
malli (nimi = "MyTemplate" type = "merkkijono" merkkijono = "/ var / loki /% FROMHOST-IP% /% PROGRAMNAME ::: secpath-korvata% .log")
Toinen tila, jolla voit kirjoittaa yllä olevan mallin, voi myös olla seuraavanlainen:
malli (nimi = "MyTemplate" type = "list") {vakio (arvo = "/ var / log /") ominaisuus (nimi = "fromhost-ip") vakio (arvo = "/") ominaisuus (nimi = "ohjelman nimi "SecurePath =" korvata ") vakio (arvo =". Loki ")}
Jotta voidaan tehdä muutoksia rsyslog-määritystiedostoon, sinun on käynnistettävä daemon uudelleen lataamaan uusi kokoonpano.
sudo service rsyslog käynnisty
sudo systemctl käynnistä rsyslog uudelleen
Voit tarkistaa, mitä rsyslog-liittimiä kuuntelutilassa avataan Debian Linux -järjestelmässä netstat komento root-oikeuksilla. Anna tuloksia suodattimen avulla, kuten grep.
sudo netstat -tulpn | grep rsyslog
Huomaa, että sinun on myös avattava Rsyslog-portit palomuurilla, jotta tulevat yhteydet voidaan luoda.
RHEL-pohjaisissa tiloissa, joissa Firewalld aktivoituu, annetaan seuraavat komennot:
firewall-cmd --permanent --add-port=514/tcp
firewall-cmd --permanent --add-port=514/tcp
palomuuri-cmd-lataus
Debian-pohjaisissa DOS-levyissä UFW-palomuuri aktivoi alla olevat komennot:
ufw sallia 514 / tcp
ufw sallia 514 / udp
Iptables-palomuurisäännöt:
iptables -A INPUT -p tcp -m tcp -dport 514 -j HYVÄKSY
iptables -A SYÖTTÖ -p udp --portti 514 -j HYVÄKSY
Määritä Rsyslog asiakkaaksi
Jotta rsyslog-daemon voidaan suorittaa asiakastilassa ja lähettää paikalliset lokiviestit etäiseen Rsyslog-palvelimeen, muokkaa /etc/rsyslog.conf tiedosto ja lisää yksi seuraavista riveistä:
*. * @IP_REMOTE_RSYSLOG_SERVER: 514
*. * @FQDN_RSYSLOG_SERVER: 514
Tämä rivi mahdollistaa Rsyslog-palvelun tuottavan kaikki sisäiset lokit etäiselle Rsyslog-palvelimelle UDP-portilla 514.
Jos haluat lähettää lokit TCP-protokollalle, käytä seuraavaa mallia:
*. * @@ IP_reomte_syslog_server: 514
Jos haluat lähettää vain cron-tiedostot, joissa on kaikki prioriteetit rsyslog-palvelimelle, käytä alla olevaa mallia:
cron. * @ IP_reomte_syslog_server: 514
Tapauksissa, joissa Rsyslog-palvelinta ei ole tavoitettavissa verkon välityksellä, liitä alla olevat rivit /etc/rsyslog.conf -tiedostoon asiakkaan puolella, jotta lokit tallennetaan tilapäisesti puskuroituun tiedostoon, kunnes palvelin tulee verkkoon.
$ ActionQueueFileName -jono $ ActionQueueMaxDiskSpace 1g $ ActionQueueSaveOnSutdown on $ ActionQueueType LinkedList $ ActionResumeRetryCount -1
Edellä mainittujen sääntöjen soveltamiseksi Rsyslog-päivämäärä on käynnistettävä uudelleen asiakkaan toimimiseksi.