GNU/Linux >> Belajar Linux >  >> Rocky Linux

Cara Menginstal GoAccess Web Log Analyzer di Rocky Linux 8

GoAccess adalah penganalisis log ringan sumber terbuka yang dapat membaca dan menganalisis file log dari berbagai format, termasuk Apache, Nginx, Amazon S3, Elastic Load Balancing, CloudFront, Caddy, dll. Ini ditulis dalam bahasa C dan menggunakan pustaka ncurses untuk antarmuka dasbornya, yang dapat diakses dari baris perintah.

Itu dapat menghasilkan laporan dalam format HTML, JSON, dan CSV, yang dapat dibagikan dengan orang lain. Anda bahkan dapat membuat laporan HTML waktu nyata yang dapat ditampilkan melalui tautan publik.

Dalam tutorial ini, Anda akan belajar menginstal GoAccess Analyzer di server berbasis Rocky Linux dan mengonfigurasinya untuk membaca log Nginx dan menyajikan laporan waktu nyata.

Prasyarat

  1. Server yang menjalankan Rocky Linux 8.

  2. Pengguna non-root yang memiliki hak istimewa sudo.

  3. Nginx berjalan di server untuk mengakses log.

  4. Pastikan semuanya diperbarui.

    $ sudo dnf update

Langkah 1 - Instal Dependensi untuk GoAccess

Versi terbaru GoAccess v1.5.2 tidak tersedia di repositori default. Untuk menginstal versi terbaru GoAccess, kami akan membangunnya dari sumbernya. Langkah pertama adalah mengunduh dependensi yang diperlukan untuk membangun paket GoAccess.

$ sudo dnf install ncurses-devel libmaxminddb-devel openssl-devel $ sudo dnf groupinstall 'Alat Pengembangan'

Langkah 2 - Unduh dan Instal GoAccess

Unduh versi terbaru arsip GoAccess. Anda dapat menemukan versi terbaru GoAccess dari halaman unduhan resmi.

$ wget https://tar.goaccess.io/goaccess-1.5.2.tar.gz

Ekstrak file dari arsip.

$ tar -xzvf goaccess-1.5.2.tar.gz

Konfigurasi dan Instal paket.

$ cd goaccess-1.5.2$ autoreconf -fi$ sudo ./configure --enable-utf8 --enable-geoip=mmdb --with-openssl$ sudo make$ sudo make install

Verifikasi bahwa GoAccess sedang berjalan.

$ goaccess --versionGoAccess - 1.5.2.Untuk lebih jelasnya kunjungi:https://goaccess.io/Copyright (C) 2009-2020 oleh Gerardo OrellanaBuild konfigurasi argumen:--enable-utf8 --enable-geoip=mmdb --with-openssl

Langkah 3 - Unduh Basis Data GeoIP

Anda dapat mengunduh Database GeoIP baik dari DB-IP atau Maxmind. Jika Anda akan mengunduh dari Maxmind, Anda harus membuat akun dan membuat kunci lisensi gratis. Download dari DB-IP dapat dilakukan secara langsung.

Unduh file zip negara dari salah satu sumber di atas. Setelah diunduh, ekstrak dan unggah .mmdb file di server ke folder khusus seperti /home/<user>/geoip .

Langkah 4 - Konfigurasi GoAccess

GoAccess menyimpan file konfigurasinya di /usr/local/etc/goaccess/goaccess.conf . Anda dapat memeriksa lokasi file di sistem Anda menggunakan perintah berikut.

$ goaccess --dcf/usr/local/etc/goaccess/goaccess.conf

Buka file untuk diedit.

$ sudo nano /usr/local/etc/goaccess/goaccess.conf

Sebagian besar opsi dikomentari. Anda dapat menggunakan opsi ini melalui baris perintah atau mengaturnya dalam file di sini. Untuk mengaktifkan opsi, hapus # karakter di depannya.

Pertama, mari kita aktifkan time-format pilihan. Kami akan mengurai file Nginx dalam tutorial kami, jadi aktifkan opsi yang dimaksudkan untuk log Apache/Nginx.

# Format waktu berikut berfungsi dengan salah satu# format log Apache/NGINX di bawah ini.#format waktu %H:%M:%S

Selanjutnya, aktifkan Nginx date-format pilihan.

# Format tanggal berikut berfungsi dengan salah satu# format log Apache/NGINX di bawah ini.#format-tanggal %d/%b/%Y

Selanjutnya, aktifkan log-format pilihan. Dalam tutorial kami, kami akan menggunakan combined format log, yang biasa digunakan Nginx.

format log DIGABUNGKAN

Jika file log Anda berisi bidang Host Virtual, aktifkan opsi berikut sebagai gantinya.

format log VCOMBINED

Misalkan Anda ingin lebih mengontrol format log. Dalam hal ini, Anda dapat mengaktifkan baris berikut sebagai gantinya (bergantung pada log yang Anda akses) dan menambah atau menghapus parameter sesuai kebutuhan Anda.

format log %v:%^ %h %^[%d:%t %^] "%r" %s %b "%R" "%u"

Untuk mengaktifkan modul GeoIP, aktifkan opsi berikut dengan memasukkan jalur ke database GeoIP.

# Untuk database GeoIP2 Country:# Download GeoLite2-Country.mmdb.gz# gunzip GeoLite2-Country.mmdb.gz#geoip-database /home/geoip/dbip-country-lite-2021-10.mmdb 

Simpan file dengan menekan Ctrl + X dan memasukkan Y ketika diminta setelah selesai.

Langkah 5 - Jalankan GoAccess

Biasanya, jika Anda ingin menjalankan GoAccess, Anda harus menggunakan perintah berikut.

$ sudo /usr/local/bin/goaccess /var/log/nginx/access.log

Kita perlu menggunakan sudo karena pengguna biasa tidak dapat membuka file log. Juga, Anda harus menggunakan path lengkap untuk eksekusi dengan perintah sudo karena perintah sudo tidak mengenali aplikasi di /usr/local/bin direktori. Namun, Anda dapat mengatasi batasan tersebut dengan membuat symlink.

Untuk melakukannya, jalankan perintah berikut.

$ sudo ln -s /usr/local/bin/goaccess /usr/bin/goaccess

Sekarang, Anda dapat menjalankan GoAccess secara langsung.

$ sudo goaccess /var/log/nginx/access.log

File log Nginx menyimpan catatan semua lalu lintas HTTP yang masuk. Jika server Anda telah berjalan untuk waktu yang lama, Anda akan melihat beberapa log akses dengan log lama di .gz terkompresi format. File log yang lebih lama dihasilkan sebagai hasil dari rotasi log.

Setelah Anda menjalankan perintah, Anda akan disambut dengan dasbor berikut.

GoAccess memberi Anda beberapa pintasan keyboard untuk menavigasi dasbor.

  • TAB untuk bergerak maju melalui modul yang tersedia dan SHIFT+TAB untuk mundur.
  • F5 untuk menyegarkan dasbor.
  • g untuk pindah ke bagian atas layar dasbor dan G untuk pindah ke bawah.
  • o atau ENTER untuk memperluas modul yang dipilih.
  • j dan k untuk menggulir ke bawah dan ke atas dalam modul aktif.
  • s untuk menampilkan opsi pengurutan untuk modul aktif.
  • / untuk menelusuri semua modul dan n untuk pindah ke pertandingan berikutnya.
  • 0-9 dan SHIFT+0 untuk mengaktifkan modul bernomor masing-masing dengan cepat.
  • ? untuk melihat dialog bantuan cepat.
  • q untuk keluar dari program.

Mari kita bahas semua panel secara singkat.

  1. Pengunjung unik per hari - Panel ini cukup jelas. Ini mencantumkan pengunjung unik, hit, dan bandwidth kumulatif untuk setiap tanggal. Ini juga termasuk perayap web dan laba-laba secara default.

  2. File yang Diminta (URL) - Panel ini memberikan statistik mengenai file non-statis yang paling banyak diminta di server Anda.

  3. Permintaan Statis - Ini mirip dengan panel di atas kecuali menangani file statis seperti gambar, CSS, JavaScript, dll.

  4. URL Tidak Ditemukan (404) - Panel ini mencatat semua permintaan ke file dan jalur yang tidak ditemukan di server Anda.

  5. Nama Inang dan IP Pengunjung - Panel ini memberikan lebih banyak info tentang pengunjung situs Anda. Anda dapat menekan o untuk memperluas panel guna mendapatkan informasi mendetail seperti negara asal, kota, dan DNS balik.

  6. Sistem Operasi - Panel ini menampilkan sistem Operasi yang berbeda yang digunakan oleh pengunjung.

  7. Browser - Panel ini menampilkan berbagai browser yang digunakan oleh pengunjung.

  8. Distribusi Waktu - Panel ini akan memberikan laporan per jam untuk jumlah klik, pengunjung unik, dan bandwidth yang digunakan.

  9. Host Virtual - Panel ini menampilkan host virtual yang diurai dari file log. Itu hanya akan muncul jika Anda menggunakan VCOMBINED format log dalam file konfigurasi di atas atau jika %v adalah bagian dari konfigurasi format log.

  10. URL Perujuk - Ini mencantumkan URL yang merujuk pengunjung ke server Anda. Panel ini dinonaktifkan secara default. Untuk mengaktifkannya, beri komentar pada baris berikut di file konfigurasi dengan menambahkan # di depannya.

    #ignore-panel REFERRERS
  11. Situs Perujuk - Panel ini menampilkan alamat IP dari host yang merujuk.

  12. Frasa Kunci - Panel ini menampilkan kata kunci yang digunakan di Google Penelusuran, cache Google, atau Google Terjemahan yang mengarah ke situs Anda. Panel ini juga dinonaktifkan secara default. Aktifkan dengan mengomentari baris berikut di file konfigurasi.

    #ignore-panel KEYPHRASES
  13. Kode Status HTTP - Panel ini menunjukkan statistik untuk kode status HTTP yang dikembalikan oleh server Anda saat server menanggapi permintaan.

  14. Pengguna Jarak Jauh (Otentikasi HTTP) - Panel ini menunjukkan ID pengguna dari orang yang mengakses dokumen di server Anda, dilindungi oleh otentikasi HTTP. Panel ini hanya berfungsi jika %e adalah bagian dari konfigurasi format log.

  15. Status tembolok - Panel ini menentukan apakah permintaan sedang di-cache dan dilayani darinya. Panel ini hanya berfungsi jika %c adalah bagian dari konfigurasi format log.

  16. Lokasi Geografis - Panel ini menyediakan daftar lokasi geografis pengunjung yang mengakses situs Anda. Ini akan muncul hanya jika Anda telah mengunduh dan menambahkan lokasinya di file konfigurasi.

Langkah 6 - Jalankan GoAccess sebagai unprivileged

Sebagai praktik keamanan yang baik, semakin sedikit kode yang berfungsi sebagai root, semakin baik. Untuk menjalankan GoAccess tanpa root, diperlukan izin untuk membaca file log.

File log server biasanya merupakan bagian dari adm kelompok. Anda dapat memverifikasinya menggunakan perintah berikut.

$ ls -l /var/log/nginxtotal 68-rw-r----- 1 nginx adm 30547 10 Okt 12:47 access.log-rw-r----- 1 nginx adm 35063 10 Okt 12:47 error.log

Seperti yang Anda lihat, Anda tidak perlu menjadi pengguna root untuk membuka file log. Setiap pengguna yang tergabung dalam adm grup dapat membuka file.

Cara termudah untuk menjalankan GoAccess tanpa root adalah dengan menambahkan pengguna yang sedang login ke adm kelompok. Dengan begitu, Anda dapat menjalankan GoAccess di bawah pengguna tersebut tanpa sudo.

Jalankan perintah berikut untuk menambahkan pengguna saat ini ke adm grup.

$ sudo usermod -aG adm $USER 

Sekarang, keluar dan masuk kembali untuk menerapkan perubahan. Atau Anda dapat menjalankan perintah berikut tanpa perlu keluar untuk menerapkan perubahan.

$ su $USER

Anda seharusnya dapat menjalankan GoAccess secara langsung tanpa perlu sudo.

$ goaccess /var/log/nginx/access.log

Langkah 7 - Buat Laporan HTML

GoAccess dapat digunakan untuk menghasilkan laporan HTML yang dapat Anda sajikan secara online. Gunakan perintah berikut untuk membuat laporan HTML.

$ goaccess /var/log/nginx/access.log -o stats.html

Anda dapat mengunduh file di PC lokal untuk Anda sendiri atau folder situs web Anda untuk ditayangkan secara publik.

Anda bahkan dapat membuat laporan HTML waktu nyata menggunakan GoAccess. Tetapi pertama-tama, Anda perlu membuka port 7890 agar GoAccess Websocket dapat berjalan. Buka port menggunakan perintah berikut.

$ sudo firewall-cmd --permanent --add-port=7890/tcp

Muat ulang firewall untuk menerapkan perubahan.

$ sudo firewall-cmd --reload

Sekarang, jalankan perintah berikut untuk menghasilkan laporan HTML waktu nyata.

$ goaccess /var/log/nginx/access.log -o /usr/share/nginx/html/livereport.html --real-time-html

Ini akan menghasilkan laporan waktu nyata di lokasi yang ditentukan. Perintah di atas akan membuat GoAccess tetap berjalan di latar depan sebagai WebSocket yang mendengarkan koneksi.

Ada peringatan kecil dengan menjalankan perintah di atas. Perintah di atas akan bekerja ketika GoAccess memiliki izin pengguna pada /usr/share/nginx/html direktori. Karena kami menjalankan GoAccess di bawah pengguna yang saat ini masuk, Anda harus memberikan izin kepada pengguna tersebut di /usr/share/html direktori. Jika Anda tidak bisa menunggu karena suatu alasan, Anda harus menjalankan GoAccess menggunakan sudo.

$ sudo goaccess /var/log/nginx/access.log -o /usr/share/nginx/html/livereport.html --real-time-html

Jika Anda ingin menjalankan GoAccess di latar belakang, Anda dapat menjalankannya sebagai daemon dengan menggunakan perintah berikut.

$ goaccess /var/log/nginx/access.log -o /usr/share/nginx/html/livereport.html --real-time-html --daemonizeDaemonized GoAccess:78315

Untuk menghentikan GoAccess Daemon, matikan proses dengan perintah berikut.

$ sudo kill -9 78315

Di sini, kami menggunakan ID proses yang kami dapatkan di perintah kami sebelumnya. Jika Anda tidak ingat ID proses, Anda juga dapat menggunakan perintah berikut untuk menghentikan proses.

$ sudo kill -9 `pidof goaccess`

Perhatikan bahwa kita menggunakan backquote (`) dalam perintah kita. Menggunakan tanda kutip biasa akan menggagalkan perintah.

Kesimpulan

Ini menyimpulkan tutorial kami tentang menginstal dan menjalankan GoAccess Log Analyzer di server Rocky Linux 8. Jika Anda memiliki pertanyaan, kirimkan di komentar di bawah.


Rocky Linux
  1. Cara Menginstal GoAccess Web Log Analyzer di Ubuntu 20.04

  2. Cara Menginstal Python 3.9 di Rocky Linux 8

  3. Cara Menginstal Redis di Rocky Linux 8

  1. Cara Instal Rocky Linux 8.4

  2. Cara Menginstal GoAccess Web Log Analyzer di Ubuntu 20.04

  3. Cara menginstal Docker CE di Rocky Linux 8

  1. Cara menginstal Snap di Rocky Linux 8

  2. Cara menginstal server web Lighttpd di Rocky Linux 8

  3. Cara menginstal Docker CE di Rocky Linux 8