Pantau Log Server Secara Real-Time dengan Alat "Log.io" di RHEL/CentOS 7/6


Log.io adalah aplikasi kecil yang sederhana namun efektif yang dibangun di atas Node.js dan Socket.io, yang memungkinkan untuk memantau log server Linux file secara real time melalui widget layar antarmuka web.

Tutorial ini akan memandu Anda tentang cara menginstal dan memantau file log lokal apa pun secara real-time dengan Log.io terinstal di RHEL/CentOS 7/6.x dengan mengonfigurasi Log.io file pemanen untuk memantau perubahan lokal apa pun pada file log.

Langkah 1: Tambahkan Repositori Epel

1. Repositori Epel CentOS menyediakan paket biner untuk Node.js dan NPMNode Packaged Modules . Instal repositori Epel dengan mengeluarkan perintah berikut.

Di RHEL/CentOS 7
yum install http://fedora.mirrors.telekom.ro/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
Di 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. Setelah Anda menambahkan Epel Repos di sistem Anda, lakukan peningkatan sistem dengan menjalankan perintah berikut.

yum update

Langkah 2: Instal Paket Node.js dan NPM

3. Node.js adalah platform pemrograman sisi server Javascript yang memungkinkan Anda membuat aplikasi jaringan dengan fungsionalitas backend. NPM (Node Package Manager) secara praktis adalah manajer paket untuk Node.js. Jadi, pada langkah selanjutnya, lanjutkan dan instal biner Node.js dan NMP di sistem Anda melalui manajer paket YUM dengan mengeluarkan perintah berikut.


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

Langkah 3: Instal dan Konfigurasikan Aplikasi Log.io

4. Aplikasi Log.io harus diinstal pada sistem Anda melalui NPM dengan menentukan pengguna sistem lokal yang valid, yang melaluinya instalasi harus dilakukan. Meskipun Anda dapat menggunakan pengguna sistem mana pun yang valid untuk menginstal Log.io, saya pribadi menyarankan untuk menginstal aplikasi melalui pengguna root atau pengguna sistem lain dengan hak akses root.

Alasan penggunaan pendekatan ini adalah Log.io harus memiliki akses untuk membaca file log lokal dan pengguna dengan hak akses root non-hak istimewa biasanya tidak dapat mengakses dan membaca beberapa file log penting.

Jadi, login dengan akun root dan instal aplikasi Log.io melalui akun root dengan mengeluarkan perintah berikut (jika Anda menggunakan pengguna lain, ganti akun root dengan pengguna sistem Anda).

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

5. Setelah aplikasi diinstal, ubah direktori kerja Anda ke folder Log.io, yang tersembunyi, dan lakukan daftar direktori untuk memvisualisasikan konten folder untuk mengonfigurasi aplikasi lebih lanjut.

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

6. Sekarang saatnya mengonfigurasi Log.io untuk memantau file log lokal secara real-time. Mari kita mendalami cara kerja Log.io.

  1. File harvester mengamati perubahan pada file log lokal tertentu yang dinyatakan dalam konfigurasinya dan mengirimkan outputnya melalui socket.io TCP
    protokol yang selanjutnya mengirim pesan ke server lokal Log.io atau server jarak jauh lainnya yang dinyatakan dengan Alamat IP-nya (alamat 0.0.0.0 ditentukan pada siaran pemanen ke semua server mendengarkan log.io) – file harvester.conf
  2. Server Log.io mengikat semua antarmuka jaringan (jika tidak ditentukan sebaliknya dalam file log_server.conf) dan menunggu pesan dari node pemanen lokal atau jarak jauh dan mengirimkan outputnya ke server Web log.io (0.0.0.0 berarti menunggu pesan dari file pemanen lokal atau jarak jauh) log_server.conf
  3. Server Web Log.io mengikat semua antarmuka jaringan, mendengarkan koneksi klien web pada port 28778 dan memproses serta mengeluarkan pesan yang diterimanya secara internal dari server log.io – file web_server.conf

Pertama buka file harvester.conf untuk diedit, yang secara default hanya memonitor file log Apache, dan ganti pernyataan nodeName agar sesuai dengan nama host Anda dan tentukan logStreams pernyataan dengan file log internal apa yang ingin Anda pantau (dalam hal ini saya memantau beberapa file log seperti audit, pesan, dan log aman). Gunakan kutipan file di bawah ini sebagai panduan.

nano harvester.conf

Kutipan file pemanen.

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

Juga jika Anda tidak memerlukan keluaran pemanen untuk dikirim ke server Log.io jarak jauh, ubah baris pernyataan host di server menjadi hanya mengirim keluarannya secara lokal dengan memodifikasi alamat 0.0.0.0 dengan alamat loopback (127.0.0.1).

7. Untuk alasan keamanan, jika Anda tidak mengharapkan output pemanen jarak jauh ke server Log.io lokal Anda, buka file log_server.conf dan ganti < b>0.0.0.0 alamat dengan alamat loopback (127.0.0.1).

nano log_server.conf

8. Fitur keamanan lainnya seperti login kredensial, HTTPS, atau pembatasan berdasarkan IP ke server web Log.io dapat diterapkan di sisi server web. Untuk tutorial ini saya hanya akan menggunakan login kredensial saja sebagai tindakan pengamanan.

Jadi, buka file web_server.conf, batalkan komentar pada seluruh pernyataan auth dengan menghapus semua garis miring dan tanda bintang dan ganti user dan pass arahan sesuai seperti yang disarankan pada tangkapan layar bawah.

nano web_server.conf

Langkah 4: Tambahkan Aturan Firewall dan Mulai Aplikasi Log.io

9. Untuk mendapatkan akses web ke server Log.io tambahkan aturan pada RHEL/CentOS 7 Firewall untuk membuka port TCP 28778 dengan mengeluarkan perintah berikut.

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

Catatan: Pengguna RHEL/CentOS 6.x dapat membuka port 28778 di firewall iptable.

Langkah 5: Mulai Aplikasi Log.io dan masuk ke Antarmuka Web

10. Untuk memulai aplikasi pemantauan log Log.io pastikan bahwa direktori kerja Anda saat ini adalah rumah root .log.io dan gunakan yang berikut ini perintah dalam urutan berikut untuk memulai aplikasi.

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

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

11. Setelah server dimulai, buka browser, masukkan IP server Anda diikuti dengan nomor port 28778 menggunakan protokol HTTP pada alamat URL dan prompt yang meminta kredensial login Anda akan muncul .

Masukkan pengguna dan kata sandi Anda yang dikonfigurasi pada langkah 8 untuk melangkah lebih jauh dan aplikasi Log.io sekarang akan terlihat di browser Anda dan menampilkan file log yang dipantau secara real-time.

http://192.168.1.20:28778

Pada antarmuka Web, tambahkan layar baru dan atur aliran atau node Anda sesuai kebutuhan.

12. Untuk menghentikan aplikasi Log.io, jalankan perintah berikut.

pkill node

Langkah 6: Buat Skrip Kelola Log.io

13. Untuk menggunakan perintah yang mengelola aplikasi Log.io dengan tiga sakelar ( start, stop dan status) buat skrip berikut dengan nama log.io di direktori executable /usr/local/bin dan tambahkan izin eksekusi ke skrip ini.

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

Tambahkan kutipan berikut ke file skrip ini.

#!/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. Untuk memulai, hentikan atau lihat status login Log.io dengan akun root (atau pengguna yang telah menginstal aplikasi Log.io) dan jalankan perintah berikut untuk mengelola aplikasi dengan mudah.

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

Itu saja! Menurut pendapat saya Log.io adalah aplikasi web yang sangat baik dan efektif untuk memantau file log server lokal atau jarak jauh secara real-time dan mendapatkan pandangan tentang apa yang terjadi secara internal dalam sistem dan terutama untuk men-debug masalah server ketika sistem cenderung menjadi tidak responsif atau crash, tanpa perlu menggunakan konsol.