Wyszukiwanie w witrynie

Monitoruj logowanie serwera w czasie rzeczywistym za pomocą narzędzia „Log.io” w RHEL/CentOS 7/6


Log.io to mała, prosta, ale skuteczna aplikacja zbudowana na bazie Node.js i Socket.io, która pozwala monitorować logi serwerów Linux plików w czasie rzeczywistym za pośrednictwem widżetów ekranowych interfejsu internetowego.

W tym samouczku dowiesz się, jak zainstalować i monitorować dowolne lokalne pliki dziennika w czasie rzeczywistym za pomocą Log.io zainstalowanego na RHEL/CentOS 7/6.x poprzez konfigurację Log.io b> plik Harvester do monitorowania wszelkich lokalnych zmian w plikach dziennika.

Krok 1: Dodaj repozytoria Epel

1. Repozytoria CentOS Epel udostępniają pakiety binarne dla Node.js i NPMModuły spakowane w Node . Zainstaluj repozytoria Epel, wydając następujące polecenie.

W RHEL/CentOS 7
yum install http://fedora.mirrors.telekom.ro/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
Na RHEL/CentOS 6
--------------------- 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. Po dodaniu Epel Repos do swojego systemu wykonaj aktualizację systemu, uruchamiając następujące polecenie.

yum update

Krok 2: Zainstaluj pakiety Node.js i NPM

3. Node.js to platforma programistyczna JavaScript po stronie serwera, która umożliwia tworzenie aplikacji sieciowych z funkcjonalnością backendu. NPM (Menedżer pakietów Node) to praktycznie menedżer pakietów dla Node.js. Zatem w następnym kroku zainstaluj pliki binarne Node.js i NMP w swoim systemie za pomocą menedżera pakietów YUM, wydając następujące polecenia.


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

Krok 3: Zainstaluj i skonfiguruj aplikację Log.io

4. Aplikacja Log.io musi zostać zainstalowana w Twoim systemie poprzez NPM poprzez podanie prawidłowego lokalnego użytkownika systemu, poprzez który musi nastąpić instalacja. Chociaż do zainstalowania Log.io możesz użyć dowolnego prawidłowego użytkownika systemu, osobiście polecam instalację aplikacji za pośrednictwem użytkownika root lub innego użytkownika systemu z uprawnieniami roota.

Powodem stosowania tego podejścia jest to, że Log.io musi mieć dostęp do lokalnego odczytu plików dziennika, a użytkownik bez uprawnień roota zwykle nie może uzyskać dostępu do niektórych ważnych plików dziennika ani ich odczytać.

Zatem zaloguj się na konto root i zainstaluj aplikację Log.io poprzez konto root, wydając następujące polecenie (jeśli używasz innego użytkownika, zamień konto root na użytkownika systemowego).

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

5. Po zainstalowaniu aplikacji zmień katalog roboczy na folder Log.io, który jest ukryty, i wykonaj listę katalogów, aby zwizualizować zawartość folderu w celu skonfigurowania zastosowanie dalej.

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

6. Teraz czas skonfigurować Log.io do monitorowania lokalnych plików dziennika w czasie rzeczywistym. Przyjrzyjmy się, jak działa Log.io.

  1. Plik harvester obserwuje zmiany w określonych lokalnych plikach dziennika zadeklarowanych w swojej konfiguracji i wysyła swoje dane wyjściowe za pośrednictwem protokołu Socket.io TCP
    protokół, który dalej wysyła wiadomości do lokalnego serwera Log.io lub dowolnego innego zdalnego serwera zadeklarowanego za pomocą adresu IP (adres 0.0.0.0 podany w rozgłoszeniach harwesterów do wszystkich serwerów nasłuchujących log.io) – plik harvester.conf
  2. Serwer Log.io łączy się ze wszystkimi interfejsami sieciowymi (jeśli nie określono inaczej w pliku log_server.conf) i czeka na wiadomości z lokalnych lub zdalnych węzłów Harvesterów i wysyła ich dane wyjściowe do serwera WWW log.io (0.0.0.0 oznacza, że czeka na wiadomości z dowolnych lokalnych lub zdalnych zbieraczy) plik log_server.conf
  3. Serwer sieciowy Log.io łączy się ze wszystkimi interfejsami sieciowymi, nasłuchuje połączeń klientów sieciowych na porcie 28778 oraz przetwarza i wysyła wiadomości, które otrzymuje wewnętrznie z serwera log.io – plik web_server.conf

Najpierw otwórz plik harvester.conf do edycji, który domyślnie monitoruje tylko pliki dziennika Apache, i zamień instrukcję nodeName tak, aby pasowała do nazwy hosta i zdefiniuj logStreams instrukcje określające, jakie wewnętrzne pliki dziennika chcesz monitorować (w tym przypadku monitoruję wiele plików dziennika, takich jak audyt, komunikaty i bezpieczne dzienniki). Skorzystaj z poniższego fragmentu pliku jako przewodnika.

nano harvester.conf

Fragment pliku 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
  }
}

Również jeśli nie potrzebujesz wysyłania danych wyjściowych harwestera do zdalnego serwera Log.io, zmień wiersz Host na instrukcji server, aby tylko wysyłał wyprowadza lokalnie, modyfikując adres 0.0.0.0 za pomocą adresu pętli zwrotnej (127.0.0.1).

7. Ze względów bezpieczeństwa, jeśli nie spodziewasz się, że zdalne zbieracze będą wysyłać dane wyjściowe na lokalny serwer Log.io, otwórz plik log_server.conf i zamień < b>0.0.0.0 adres z adresem sprzężenia zwrotnego (127.0.0.1).

nano log_server.conf

8. Inne funkcje bezpieczeństwa, takie jak logowanie poświadczeń, HTTPS lub ograniczenia oparte na adresach IP do serwera internetowego Log.io, można zastosować po stronie serwera internetowego. W tym samouczku użyję tylko jako środka bezpieczeństwa logowania poświadczeniowego.

Zatem otwórz plik web_server.conf, odkomentuj całą instrukcję auth, usuwając wszystkie ukośniki i gwiazdki oraz zamień user i pass b> wytyczne zgodnie z sugestią na dolnym zrzucie ekranu.

nano web_server.conf

Krok 4: Dodaj regułę zapory sieciowej i uruchom aplikację Log.io

9. Aby uzyskać dostęp sieciowy do serwera Log.io dodaj regułę na zaporze RHEL/CentOS 7 aby otworzyć port TCP 28778, wydając następujące polecenie.

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

Uwaga: użytkownicy RHEL/CentOS 6.x mogą otworzyć port 28778 na zaporze iptable.

Krok 5: Uruchom aplikację Log.io i wejdź do interfejsu internetowego

10. Aby uruchomić aplikację do monitorowania logów Log.io, upewnij się, że bieżącym katalogiem roboczym jest dom roota .log.io i użyj następujących poleceń polecenia w następującej kolejności, aby uruchomić aplikację.

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

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

11. Po uruchomieniu serwera otwórz przeglądarkę, wprowadź adres IP swojego serwera, a następnie numer portu 28778 przy użyciu protokołu HTTP w adresie URL i powinien pojawić się monit z prośbą o podanie danych logowania .

Wprowadź swojego użytkownika i hasło skonfigurowane w kroku 8, aby przejść dalej, a aplikacja Log.io powinna być teraz widoczna w Twojej przeglądarce, prezentując monitorowane pliki dziennika w czasie rzeczywistym.

http://192.168.1.20:28778

W interfejsie internetowym dodawaj nowe ekrany i odpowiednio organizuj swoje strumienie lub węzły.

12. Aby zatrzymać aplikację Log.io, uruchom następujące polecenie.

pkill node

Krok 6: Utwórz skrypt zarządzania Log.io

13. Aby skorzystać z polecenia zarządzającego aplikacją Log.io za pomocą trzech przełączników ( start, stop i status) utwórz następujący skrypt o nazwie log.io w katalogu wykonywalnym /usr/local/bin i dodaj uprawnienia wykonywania do tego skryptu.

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

Dodaj następujący fragment do tego pliku skryptu.

#!/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. Aby uruchomić, zatrzymać lub wyświetlić status logowania Log.io przy użyciu konta root (lub użytkownika, na którym zainstalowano aplikację Log.io) i po prostu uruchom następujące polecenia, aby łatwo zarządzać aplikacją.

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

To wszystko! Moim zdaniem Log.io to doskonała i skuteczna aplikacja internetowa do monitorowania plików dziennika serwerów lokalnych lub zdalnych w czasie rzeczywistym i uzyskiwania wglądu w to, co dzieje się wewnętrznie w systemach, a zwłaszcza do debugowania problemów z serwerem, gdy systemy zwykle przestają odpowiadać lub ulegają awariom bez konieczności korzystania z konsoli.