LNAV - Tonton dan analisis log Apache dari terminal Linux

LNAV - Tonton dan analisis log Apache dari terminal Linux

Kurang dari dua minggu yang lalu, serangan ransomware WannaCry mengkompromikan ribuan komputer, menyebabkan kerugian yang cukup besar bagi perusahaan besar dan individu yang sama. Itu, bersama dengan kerentanan luas lainnya yang ditemukan dalam beberapa tahun terakhir (seperti bug shellshock), menyoroti pentingnya tetap di atas sistem kritis misi Anda.

Meskipun kerentanan seringkali menargetkan satu sistem operasi atau komponen perangkat lunak tertentu, memeriksa lalu lintas yang masuk dan keluar dari jaringan Anda dapat menjadi bantuan yang signifikan untuk melindungi aset yang menjadi tanggung jawab Anda.

Disarankan Baca: 4 Pemantauan Log Sumber Terbuka yang Baik dan Alat Manajemen untuk Linux

Seperti yang saya yakin sudah Anda ketahui, log sistem adalah tempat pertama di mana kita harus mencari informasi ini. Untuk membuat tugas ini lebih mudah, dalam artikel ini kami akan menjelaskan cara menginstal dan menggunakan lnav, penampil file log canggih. Dengan LNAV, Anda akan dapat menonton beberapa jenis log secara bersamaan, menavigasi file menggunakan hotkeys, dan menghasilkan histogram akses dan kesalahan yang dirangkum. Jadi teruslah membaca!

Menginstal dan meluncurkan LNAV di Linux

Untuk memasang lnav, Gunakan sistem manajemen paket distribusi Anda.

# aptitude instal lnav [debian dan turunan] # yum instal epel-rilis lnav [centos 7 dan serupa] 

Setelah instalasi selesai, luncurkan lnav diikuti oleh jalur absolut ke direktori di mana log yang akan diperiksa berada. Karena ini biasanya /var/log, Mari lakukan:

# lnav/var/log/httpd 

Untuk memeriksa log server web Apache di a Centos 7:

Pantau log Apache di Centos 7

Mari kita periksa secara singkat output yang ditunjukkan pada gambar sebelumnya:

  • Sudut kanan atas menunjukkan file yang sedang diperiksa (access_log-20170519 Dan Access_log). Saat Anda menggulir ke bawah atau ke atas, Anda akan mencatat bahwa nama file dapat berubah saat Anda pergi dari satu ke yang lain.
  • 40x http tanggapan (misalnya, Tidak ditemukan atau Terlarang) ditampilkan dalam huruf tebal, sedangkan 20x Respons ditampilkan dalam teks biasa.
  • Alamat IP muncul di Green tebal.

Itu pasti terlihat bagus, bukan? Tapi mari kita gali sedikit lebih dalam sekarang, dan kita akan melihat bahwa LNAV memberikan lebih dari sekadar output berwarna.

Jika Anda penasaran mengapa log kesalahan tidak ditampilkan, Anda akan menemukan jawabannya nanti di artikel ini. Jadi teruslah membaca!

Memodifikasi output dengan opsi dan hotkeys

Sebelum kita melanjutkan lebih jauh, mari kita daftarkan beberapa hotkey yang akan memungkinkan kita untuk bergerak melalui output LNAV dan tampilan yang tersedia dengan lebih mudah:

  • e atau E untuk melompat ke pesan kesalahan berikutnya / sebelumnya.
  • w atau W untuk melompat ke pesan peringatan berikutnya / sebelumnya.
  • B atau Menghapus untuk pindah ke halaman sebelumnya.
  • Ruang untuk pindah ke halaman berikutnya.
  • G atau G untuk pindah ke bagian atas / bawah tampilan saat ini.

Saat log diputar, file lama dapat dikompresi (atau tidak) tergantung pada pengaturan yang ditentukan dalam file konfigurasi Logrotate. Untuk memasukkan file terkompresi dalam output, luncurkan LNAV sebagai berikut:

# lnav -r/var/log/httpd 

Jika Anda ingin melihat lebih dekat cara LNAV beroperasi, Anda dapat meluncurkan program dengan -D Opsi diikuti dengan nama file di mana informasi debug akan ditulis, seperti itu:

# lnav/var/log/httpd -d lnav.txt 

Dalam contoh ini, informasi debug yang dihasilkan ketika LNAV dimulai akan ditulis ke file bernama lnav.txt Di dalam direktori kerja saat ini.

Beberapa baris pertama dari file itu ditampilkan pada gambar berikut:

Informasi Debug Apache

Teks yang disorot menunjukkan bahwa LNAV memuat file format default dan, lebih khusus lagi, Access_log Format untuk menguraikan log akses apache. Selain itu, LNAV memungkinkan untuk menguraikan setiap baris output sehingga output menjadi lebih mudah untuk divisualisasikan dan dipahami.

Disarankan Baca: GoAccess (analisis log server web apae real-time)

Untuk menggunakan fitur ini, luncurkan program dan pilih baris yang ingin Anda parse. Garis yang dipilih selalu yang ada di bagian atas jendela. Lalu tekan P dan Anda harus melihat hasil berikut:

Informasi Status Permintaan Apache

Untuk kembali ke mode normal, tekan P lagi.

Sekarang, jika Anda ingin melihat ringkasan log berdasarkan tanggal dan waktu, tekan Saya. Misalnya, teks yang disorot menunjukkan bahwa pada hari Senin, 10 April, antara 10 dan 11 malam, ada 37 permintaan HTTP dengan 14 yang mengakibatkan kesalahan.

Apache Log berdasarkan siang dan waktu

Setelah Anda mengidentifikasi masalah potensial berdasarkan histogram seperti yang ditunjukkan di atas, Anda dapat menekan Saya untuk keluar dari pandangan untuk memeriksanya secara lebih rinci menggunakan parser seperti yang dijelaskan sebelumnya. Atau Anda juga dapat menggunakan kemampuan SQL bawaan dengan mengetik titik koma dan menulis kueri standar. Misalnya, lakukan:

;.skema 

Untuk melihat tabel yang tersedia dalam skema database. Setelah mengidentifikasi tabel yang tepat (Access_log Dalam kasus kami), mari kita tekan Q Dan kemudian gunakan kueri berikut untuk mengembalikan semua informasi yang tersedia tentang permintaan yang berasal dari tahun 195.154.230.31:

; Pilih * dari access_log di mana c_ip = "195.154.230.31 " 
Informasi log apache dalam format tabel

Perhatikan bahwa kami juga dapat memfilter hasilnya LOG_TIME. Intinya, melempar SQL kecil dan langit adalah batas tentang apa yang dapat Anda lakukan dengan lnav.

Format log default apache

Banyak format log dimuat secara default lnav dan dengan demikian diuraikan tanpa intervensi kami. Anda dapat melihat daftar di bagian Format Log di dokumentasi resmi.

Format default ditentukan dalam ~/.lnav/format/default/format default.json.Sampel, dan orang lain bisa ditambahkan ~/.lnav/format menggunakan .json perpanjangan.

Namun, mengedit file-file ini memerlukan tingkat keakraban tertentu dengan JSON (notasi objek JavaScript) dan dengan pustaka PCRE (Perl-Compatible Regulars) Pustaka PCRE.

Jadi mengapa LNAV tidak menampilkan file log kesalahan apache? Alasannya adalah bahwa log -log tersebut tidak cocok dengan ekspresi reguler dalam file format yang ada, dan dengan demikian diperlakukan sebagai file teks biasa (yang berarti file tanpa format log yang diberikan).

Disarankan Baca: Cara memantau beban server web apache dan statistik halaman

Seperti yang disebutkan sebelumnya, Anda dapat membuat format sendiri setelah Anda setidaknya agak akrab dengan JSON dan PCRE. Ini bisa berguna, misalnya, jika Anda telah menentukan log apache khusus.

Ringkasan

Meskipun kami menggunakan log akses apache untuk menunjukkan cara menggunakan LNAV, perlu diingat bahwa ada beberapa jenis log lain yang dapat dilihat dan diuraikan menggunakan alat ini. Jika alat tidak mengenali log tertentu, Anda dapat membuat format tambahan dan menginstalnya mengikuti indikasi yang disediakan di sini.

Apakah Anda memiliki pertanyaan atau komentar tentang artikel ini? Seperti biasa, jangan ragu untuk memberi tahu kami menggunakan formulir di bawah ini. Kami menantikan kabar dari Anda!