LNAV - menonton dan menganalisis log Apache dari terminal Linux

LNAV - menonton dan menganalisis log Apache dari terminal Linux

Kurang dari dua minggu yang lalu, serangan Ransomware WannaCry berkompromi beribu -ribu komputer, menyebabkan kerugian besar kepada syarikat besar dan individu. Itu, bersama-sama dengan kelemahan lain yang meluas yang terdapat pada tahun-tahun kebelakangan ini (seperti Shellshock Bug), menyerlahkan kepentingan tinggal di atas sistem misi-kritikal anda.

Walaupun kelemahan sering mensasarkan satu sistem operasi atau komponen perisian tertentu, memeriksa lalu lintas yang masuk dan keluar dari rangkaian anda boleh menjadi bantuan penting untuk melindungi aset yang anda bertanggungjawab.

Cadangan Baca: 4 Pemantauan Log Sumber Terbuka dan Alat Pengurusan untuk Linux

Seperti yang saya pasti anda sudah tahu, log sistem adalah tempat pertama di mana kita harus mencari maklumat ini. Untuk menjadikan tugas ini lebih mudah, dalam artikel ini kita akan menerangkan cara memasang dan menggunakan lnav, Pemapar fail log lanjutan. Dengan LNAV, anda akan dapat menonton beberapa jenis log secara serentak, menavigasi fail menggunakan hotkeys, dan menghasilkan histogram yang diringkaskan akses dan kesilapan. Jadi terus membaca!

Memasang dan melancarkan LNAV di Linux

Untuk memasang lnav, Gunakan sistem pengurusan pakej pengedaran anda.

# Aptitude Pasang LNAV [Debian dan Derivatif] # YUM Pasang EPEL-RELEASE LNAV [CentOS 7 dan SIMILE] 

Setelah pemasangan selesai, dilancarkan lnav diikuti oleh jalan mutlak ke direktori di mana log yang akan diperiksa terletak. Oleh kerana ini biasanya /var/log, Mari buat:

# lnav/var/log/httpd 

Untuk memeriksa balak pelayan web Apache di a Centos 7:

Pantau Log Apache di CentOS 7

Mari kita periksa secara ringkas output yang ditunjukkan dalam imej sebelumnya:

  • Sudut kanan atas menunjukkan fail yang sedang diperiksa (Access_LOG-20170519 dan Access_log). Semasa anda menatal ke bawah atau ke atas, anda akan perhatikan bahawa nama fail mungkin berubah semasa anda pergi dari satu ke yang lain.
  • 40x http Respons (contohnya, Tidak ditemui atau Dilarang) dipaparkan dengan berani, sedangkan 20x Tanggapan ditunjukkan dalam teks biasa.
  • Alamat IP muncul dalam hijau berani.

Yang pasti kelihatan bagus, bukan? Tetapi mari kita menggali sedikit lebih mendalam sekarang, dan kita akan melihat bahawa LNAV memberikan lebih banyak daripada output yang cukup berwarna.

Sekiranya anda ingin tahu mengapa log ralat tidak ditunjukkan, anda akan mendapat jawapan kemudian dalam artikel ini. Jadi terus membaca!

Mengubah output dengan pilihan dan hotkeys

Sebelum kita meneruskan lagi, mari kita senaraikan beberapa hotkeys yang akan membolehkan kita bergerak melalui output LNAV dan pandangan yang tersedia dengan lebih mudah:

  • e atau E untuk melompat ke mesej ralat seterusnya / sebelumnya.
  • w atau W untuk melompat ke mesej amaran seterusnya / sebelumnya.
  • b atau Backspace untuk berpindah ke halaman sebelumnya.
  • Ruang untuk bergerak ke halaman seterusnya.
  • g atau G untuk bergerak ke bahagian atas / bawah pandangan semasa.

Apabila balak diputar, fail lama boleh dimampatkan (atau tidak) bergantung pada tetapan yang dinyatakan dalam fail konfigurasi logrotat. Untuk memasukkan fail termampat dalam output, lancarkan LNAV seperti berikut:

# lnav -r/var/log/httpd 

Sekiranya anda ingin melihat dengan lebih dekat dengan cara LNAV beroperasi, anda boleh melancarkan program dengan -d pilihan diikuti dengan nama fail di mana maklumat debug akan ditulis, seperti itu:

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

Dalam contoh ini, maklumat debug yang dihasilkan apabila LNAV bermula akan ditulis ke fail yang dinamakan lnav.txt Di dalam direktori kerja semasa.

Beberapa baris pertama fail itu ditunjukkan dalam imej berikut:

Maklumat debug Apache

Teks yang diserlahkan menunjukkan bahawa LNAV memuatkan fail format lalai dan, lebih khusus, Access_log Format untuk menghuraikan log akses Apache. Di samping itu, LNAV membolehkan untuk menghuraikan setiap baris output supaya output menjadi lebih mudah untuk memvisualisasikan dan memahami.

Cadangan Baca: GoAccess (Apache dan Nginx) Analyzer Log Web

Untuk menggunakan ciri ini, lancarkan program dan pilih baris yang ingin anda huraikan. Garis yang dipilih selalu berada di bahagian atas tingkap. Kemudian tekan p Dan anda harus melihat hasil berikut:

Maklumat Status Permintaan Apache

Untuk kembali ke mod biasa, tekan p sekali lagi.

Sekarang, jika anda ingin melihat ringkasan log mengikut tarikh dan masa, tekan i. Sebagai contoh, teks yang diserlahkan menunjukkan bahawa pada hari Isnin, 10 April, antara 10 dan 11 malam, terdapat 37 permintaan HTTP dengan 14 yang mengakibatkan kesilapan.

Apache log mengikut hari dan masa

Sebaik sahaja anda mengenal pasti masalah yang berpotensi berdasarkan histogram seperti yang ditunjukkan di atas, anda boleh menekan i untuk keluar dari pandangan untuk menelitinya dengan lebih terperinci menggunakan parser seperti yang dijelaskan sebelumnya. Atau anda juga boleh menggunakan keupayaan SQL terbina dalam dengan menaip titik koma dan menulis pertanyaan standard. Sebagai contoh, lakukan:

;.skema 

Untuk melihat jadual yang ada dalam skema pangkalan data. Setelah mengenal pasti jadual yang betul (Access_log Dalam kes kita), mari tekan q Dan kemudian gunakan pertanyaan berikut untuk mengembalikan semua maklumat yang tersedia mengenai permintaan yang datang dari 195.154.230.31:

; Pilih * dari akses_log di mana c_ip = "195.154.230.31 " 
Maklumat log Apache dalam format jadual

Perhatikan bahawa kita juga boleh menapis hasilnya dengan log_time. Maksudnya, buang sedikit SQL dan langit adalah batas tentang apa yang boleh anda lakukan dengan LNAV.

Format log lalai Apache

Banyak format log dimuat secara lalai dengan lnav dan dengan itu dihuraikan tanpa campur tangan kita. Anda boleh melihat senarai di bahagian Format Log dalam dokumentasi rasmi.

Format lalai ditentukan dalam ~/.LNAV/Format/Default/Default-Format.json.Contoh, dan yang lain dapat ditambah ~/.LNAV/Format menggunakan .json sambungan.

Walau bagaimanapun, mengedit fail ini memerlukan tahap kebiasaan tertentu dengan JSON (JavaScript Object Notation) dan dengan perpustakaan PCRE (Perl yang bersesuaian dengan Perlahan).

Jadi mengapa LNAV tidak memaparkan fail log ralat Apache? Sebabnya ialah log tersebut tidak sepadan dengan mana -mana ungkapan biasa dalam fail format yang sedia ada, dan dengan itu dianggap sebagai fail teks biasa (yang bermaksud fail tanpa format log yang diberikan).

Cadangan Baca: Cara Memantau Load dan Statistik Pelayan Web Apache

Seperti yang dinyatakan sebelum ini, anda boleh membuat format anda sendiri sebaik sahaja anda sekurang -kurangnya agak biasa dengan JSON dan PCRE. Ini boleh menjadi berguna, sebagai contoh, jika anda telah menentukan log Apache tersuai.

Ringkasan

Walaupun kami menggunakan log akses Apache untuk menunjukkan cara menggunakan LNAV, ingatlah bahawa terdapat beberapa jenis kayu lain yang dapat dilihat dan dihuraikan menggunakan alat ini. Jika alat itu tidak mengenali log tertentu, anda boleh membuat format tambahan dan memasangnya berikutan petunjuk yang disediakan di sini.

Adakah anda mempunyai soalan atau komen mengenai artikel ini? Seperti biasa, jangan ragu untuk memberitahu kami menggunakan borang di bawah. Kami berharap untuk mendengar daripada anda!