Spremljajte dnevnike strežnika v realnem času z orodjem "Log.io" na RHEL/CentOS 7/6


Log.io je majhna preprosta, a učinkovita aplikacija, zgrajena nad Node.js in Socket.io , ki omogoča spremljanje dnevnika strežnikov Linux datoteke v realnem času prek gradnikov zaslona spletnega vmesnika.

Ta vadnica vas bo vodila o tem, kako lahko v realnem času namestite in spremljate vse lokalne dnevniške datoteke z Log.io , nameščenim na RHEL/CentOS 7/6.x, tako da konfigurirate Log.io datoteka harvester za spremljanje lokalnih sprememb dnevnika.

Korak 1: Dodajte repozitorije Epel

1. Skladišča CentOS Epel ponujajo binarne pakete za Node.js in NPM - Node Packaged Modules . Namestite repozitorije Epel tako, da izdate naslednji ukaz.

# yum install http://fedora.mirrors.telekom.ro/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
--------------------- On RHEL/CentOS 6.x - 32 Bit ---------------------
# yum install http://fedora.mirrors.telekom.ro/pub/epel/6/i386/epel-release-6-8.noarch.rpm

--------------------- On RHEL/CentOS 6.x - 64 Bit ---------------------
# yum install http://fedora.mirrors.telekom.ro/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

2. Ko ste v sistem dodali Epel Repos , nadgradite sistem tako, da zaženete naslednji ukaz.

# yum update

2. korak: Namestite pakete Node.js in NPM

3. Node.js je programska platforma za programiranje na strani strežnika Javascript, ki vam omogoča ustvarjanje omrežnih aplikacij z zaledno funkcionalnostjo. NPM (Upravitelj paketov vozlišč) je praktično upravitelj paketov za Node.js. V naslednjem koraku nadaljujte in namestite binarne datoteke Node.js in NMP v sistem prek upravitelja paketov YUM z izdajo naslednjih ukazov.

# curl --silent --location https://rpm.nodesource.com/setup_5.x | bash - 
# yum install -y nodejs

3. korak: Namestite in konfigurirajte aplikacijo Log.io

4. Aplikacijo Log.io morate namestiti v sistem prek NPM, tako da navedete veljavnega uporabnika lokalnega sistema, prek katerega mora potekati namestitev. Čeprav lahko za namestitev Log.io uporabite katerega koli veljavnega uporabnika sistema, osebno priporočam namestitev aplikacije prek root uporabnika ali drugega uporabnika sistema s korenskimi pravicami.

Razlog za uporabo tega pristopa je, da mora imeti Log.io dostop za branje datotek lokalnega dnevnika, uporabnik s korenskimi privilegiji brez privilegijev pa običajno ne more dostopati do nekaterih pomembnih dnevniških datotek in jih brati.

Torej, prijavite se s skrbniškim računom in namestite aplikacijo Log.io prek skrbniškega računa, tako da izdate naslednji ukaz (če uporabljate drugega uporabnika, ustrezno zamenjajte skrbniški račun s sistemskim uporabnikom).

# npm install -g log.io --user “root”

5. Ko je aplikacija nameščena, spremenite svoj delovni imenik v mapo Log.io , ki je skrita, in naredite seznam imenikov za vizualizacijo vsebine map, da boste aplikacijo še naprej konfigurirali.

# pwd  		[Make sure you are on the right path]
# cd .log.io/
# ls

6. Zdaj je čas, da konfigurirate Log.io za sprotno spremljanje lokalnih dnevniških datotek. Poglejmo podrobnosti o tem, kako Log.io deluje.

  1. Datoteka harvester spremlja spremembe v določenih lokalnih datotekah dnevnika, prijavljene v njegovi konfiguraciji, in pošlje svoj izhod prek socket.io TCP
    protokol, ki nadalje pošilja sporočila lokalnemu strežniku Log.io ali kateremu koli drugemu oddaljenemu strežniku, prijavljenem s svojim naslovom IP (0.0.0.0 naslov, naveden na kombajni, oddaja vsem strežnikom poslušanja log.io) - datoteka harvester.conf
  2. Strežnik Log.io se veže na vse omrežne vmesnike (če v datoteki log_server.conf ni določeno drugače) in čaka na sporočila od lokalno ali oddaljenih vozlišč za spravilo in pošlje njihov izhod spletnemu strežniku log.io (0.0.0.0 pomeni, da čaka na sporočila katere koli lokalne ali oddaljene kombajne) datoteke log_server.conf
  3. Spletni strežnik Log.io se veže na vse omrežne vmesnike, posluša povezave spletnih odjemalcev na vratih 28778 ter obdeluje in oddaja sporočila, ki jih interno prejme od strežnika log.io - datoteka web_server.conf

Najprej odprite datoteko harvester.conf za urejanje, ki privzeto nadzira samo dnevniške datoteke Apache in zamenja izraz nodeName , da se ujema z imenom gostitelja in definira logStreams izjave s tem, katere notranje dnevniške datoteke želite spremljati (v tem primeru spremljam več dnevniških datotek, kot so revizija, sporočila in varni dnevniki). Kot vodilo uporabite spodnji odlomek datoteke.

# nano harvester.conf

Izvleček datoteke harvester.

exports.config = {
  nodeName: "pxe-server",
  logStreams: {

audit: [
      "/var/log/audit/audit.log"
    ],

messages: [
      "/var/log/messages"
    ],

secure: [
      "/var/log/secure"
    ]

},
  server: {
    host: '0.0.0.0',
    port: 28777
  }
}

Tudi če ne potrebujete izhoda kombajna za pošiljanje na oddaljeni strežnik Log.io , spremenite vrstico gostitelj na strežniku , da pošlje njegov izhod lokalno s spreminjanjem naslova 0.0.0.0 z naslovom povratne zanke ( 127.0.0.1) .

7. Če iz varnostnih razlogov ne pričakujete izpisa oddaljenih kombajnov na lokalni strežnik Log.io , odprite datoteko log_server.conf in zamenjajte 0.0.0.0 naslov z naslovom povratne zanke ( 127.0.0.1 ).

# nano log_server.conf

8. Na strani spletnega strežnika lahko uporabite druge varnostne funkcije, kot so prijava poverilnic, HTTPS ali omejitev na podlagi IP-jev za spletni strežnik Log.io. V tej vadnici bom kot varnostni ukrep uporabil samo prijavo poverilnic.

Torej, odprite datoteko web_server.conf , razkomentirajte celoten stavek auth tako, da izbrišete vse poševnice in zvezdice ter zamenjate uporabnika in prenese direktive, kot je predlagano na spodnjem posnetku zaslona.

# nano web_server.conf

4. korak: dodajte pravilo požarnega zidu in zaženite aplikacijo Log.io

9. Če želite pridobiti spletni dostop do strežnika Log.io , dodajte pravilo na požarni zid RHEL / CentOS 7 , da odprete TCP 28778 vrata, tako da izdate naslednji ukaz.

# firewall-cmd --add-port=28778/tcp --permanent
# firewall-cmd --reload

Opomba: Uporabniki RHEL/CentOS 6.x lahko na iptable požarnem zidu odprejo vrata 28778 .

5. korak: Zaženite aplikacijo Log.io in vnesite spletni vmesnik

10. Če želite zagnati aplikacijo za nadzor dnevnika Log.io , zagotovite, da je vaš trenutni delovni imenik korenski dom .log.io in za zagon uporabite naslednje ukaze v naslednjem vrstnem redu aplikacijo.

------------ First start server, put it in background and press Enter key ------------
# log.io-server & 

------------ Start log harvester in background ------------
# log.io-harvester & 

11. Po zagonu strežnika odprite brskalnik, vnesite IP strežnika, ki mu sledi številka vrat 28778 , s protokolom HTTP na naslovu URL in pojavil se bo poziv, ki zahteva vaše prijavne poverilnice.

Vnesite uporabnika in geslo, konfigurirano v koraku 8 , da nadaljujete, aplikacija Log.io pa mora biti zdaj vidna v vašem brskalniku in v realnem času prikazuje nadzorovane dnevniške datoteke.

http://192.168.1.20:28778

V spletnem vmesniku dodajte nove zaslone in ustrezno organizirajte svoje tokove ali vozlišča.

12. Če želite ustaviti aplikacijo Log.io , zaženite naslednji ukaz.

# pkill node

6. korak: Ustvarite Log.io Manage Script

13. Za uporabo ukaza, ki upravlja aplikacijo Log.io s tremi stikali ( start , stop in status ) ustvarite naslednji skript z imenom log.io v izvršljivem imeniku /usr/local/bin in dodajte skriptu dovoljenja za izvajanje.

# nano /usr/local/bin/log.io
# chmod +x /usr/local/bin/log.io

V to skriptno datoteko dodajte naslednji odlomek.

#!/bin/bash

                start() {
                echo "Starting log.io process..."
                /usr/bin/log.io-server &
                /usr/bin/log.io-harvester &
                                         }

                stop() {
                echo "Stopping io-log process..."
                pkill node
                                         }                             

                status() {
                echo "Status io-log process..."
                netstat -tlp | grep node
                                         }

case "$1" in
                start)
start
        ;;
                stop)
stop
        ;;
                status)
status
                ;;
                *)
echo "Usage: start|stop|status"
        ;;
Esac

14. Če želite zagnati, ustaviti ali si ogledati prijavo stanja Log.io s korenskim računom (ali uporabnikom, v katerem je nameščena aplikacija Log.io), in preprosto zaženite naslednje ukaze za enostavno upravljanje aplikacije.

# log.io start
# log.io status
# log.io stop

To je vse! Po mojem mnenju Log.io je odlična in učinkovita spletna aplikacija za spremljanje dnevnih datotek lokalnih ali oddaljenih strežnikov v realnem času in vpogled v to, kaj se dogaja v sistemih, zlasti za odpravljanje težav s strežnikom, ko sistemi ponavadi postanejo neodzivni ali se zrušijo, ne da bi morali uporabljati konzolo.