Saya memiliki banyak file log Apache yang ingin saya analisis. Saya mencari alat yang tidak memerlukan banyak pengaturan; sesuatu yang bisa saya jalankan log melalui baris perintah, tanpa main-main di server web langsung kami.
Ada rekomendasi?
apache-2.2
log-files
analytics
mmattax
sumber
sumber
Jawaban:
Sementara alat-alat di atas semuanya keren, saya rasa saya tahu apa yang ditanyakan oleh si penanya. Seringkali menyakitkan saya bahwa saya tidak dapat menarik informasi dari akses-log dengan cara yang saya bisa dengan file lain.
Itu karena format log akses yang bodoh:
127.0.0.1 - - [16/Aug/2014:20:47:29 +0100] "GET /manual/elisp/index.html HTTP/1.1" 200 37230 "http://testlocalhost/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0"
Mengapa mereka menggunakan [] untuk tanggal dan "" untuk hal lain? apakah mereka pikir kita tidak akan tahu kencan di bidang 4? Ini sangat membuat frustrasi.
Alat terbaik saat ini untuk ini adalah gawk:
gawk 'BEGIN { FPAT="([^ ]+)|(\"[^\"]+\")|(\\[[^\\]]+\\])" } { print $5 }'
pada data di atas ini akan memberi Anda:
Dengan kata lain, FPAT memberi Anda kemampuan untuk mengeluarkan bidang-bidang dari apache-log seolah-olah itu adalah bidang aktual, bukan hanya entitas yang dipisahkan ruang. Ini selalu yang saya inginkan. Saya kemudian dapat menguraikannya sedikit lebih dengan pipa.
Membuat pekerjaan FSPAT didefinisikan di sini: http://www.gnu.org/software/gawk/manual/html_node/Splitting-By-Content.html
Karena itu Anda dapat mengatur alias untuk membuat gawk yang dapat mengurai log apache:
alias apacheawk="gawk -vFPAT='([^ ]+)|(\"[^\"]+\")|(\\\\[[^\\\\]]+\\\\])' " apacheawk '$6 ~ /200/ { print $5 } | sort | uniq
membuat ini untukku:
dan tentu saja hampir semua hal lain sekarang mungkin.
Nikmati!
sumber
awk '($9 == 200) {print $6,$7,$8}'
untuk menampilkan hal yang sama seperti pada contoh Anda. Tidak perlu menggunakan FPAT di sana (meskipun metode ini dapat berguna dalam kasus lain)wtop itu keren. Ada utilitas lain juga. Seringkali, saya akan mengurai log menggunakan bash, sed, dan awk.
sumber
apachetop sangat keren; itu mencetak statistik langsung. Anda menjalankannya dengan
Untuk menginstalnya di Debian / Ubuntu:
atau dari sumber: https://github.com/JeremyJones/Apachetop
sumber
Output seperti apa yang Anda inginkan?
Jika Anda hanya ingin menghitung sesuatu, maka ambil sesuatu logfile.txt | wc -l bekerja dengan baik. Jika Anda ingin grafik yang cantik ... jangan terlalu banyak.
sumber
jika Anda memiliki workstation windows yang dapat Anda gunakan maka logparser adalah alat pilihan!
sumber
analog bekerja dengan baik di luar kotak dan tidak memerlukan banyak pengaturan. logwrangler adalah paket yang bekerja dengan analog untuk menghasilkan output yang lebih bagus dan juga membutuhkan sedikit pengaturan.
sumber
Alih-alih menggunakan alat baris perintah saya akan suggeset untuk mencoba Apache Logs Viewer. Ini adalah alat gratis yang dapat memonitor dan menganalisis File Log Apache. Ini dapat menghasilkan beberapa grafik dan laporan yang keren.
Info lebih lanjut dari http://www.apacheviewer.com
sumber