Saya telah mengatur Apache untuk melayani beberapa Host Virtual, dan saya ingin melihat berapa banyak bandwidth yang digunakan setiap situs. Saya dapat melihat seberapa banyak seluruh server menggunakan, tetapi saya ingin laporan yang lebih rinci.
Sebagian besar hal yang saya temukan ada untuk membatasi bandwidth ke host virtual, tetapi saya tidak ingin melakukannya; Saya hanya ingin melihat situs mana yang menggunakan berapa banyak bandwidth.
Ini bukan untuk tujuan penagihan, hanya untuk informasi.
Apakah ada modul apache yang harus saya gunakan? Atau adakah cara lain untuk melakukan ini?
sumber
Awstats adalah salah satu cara untuk melakukan ini tetapi mungkin bukan yang terbaik
sumber
Saya sarankan Anda menggunakan mekanisme logging apache yang luar biasa dan flag % I dan % O yang kurang dikenal :
Tentukan format:
Gunakan di httpd.conf utama Anda :
Nilai-nilai ini mungkin tidak memperhitungkan semua informasi header, tetapi cukup akurat untuk memiliki gagasan yang tepat tentang lalu lintas VirtualHost.
Pindai log dengan skrip perl untuk mengagregasi per host virtual setiap n menit (misalnya 5) dan mengirimkannya ke cacti.
Bendera ini disediakan oleh mod_logio yang mungkin dibuat di Apache Anda (seperti untuk Apache Debian saya).
sumber
Jika Anda memutuskan untuk menggunakan awstats dengan Apache, di luar kotak itu akan menunjukkan kepada Anda bandwidth teragregasi untuk seluruh server Anda.
Untuk melihat bandwidth per host virtual, saya sarankan menginstal vlogger .
Vlogger sebenarnya akan mengumpulkan informasi log akses Apache untuk setiap host virtual yang Anda atur untuk melakukannya di direktori / file terpisah.
Sebagai contoh jika file log Apache Anda ada di / var / log / apache2, instalasi vlogger yang khas akan membuat sesuatu seperti ini untuk host virtual Anda (mis. Vhost1.com vhost2.com):
Vlogger memberi Anda opsi untuk memutar log-log ini untuk Anda, memberikan cara untuk mengubah templat penamaan file log akses (misalnya menambahkan tanggal), dan mengklaim itu menangani sejumlah besar file log lebih baik daripada Apache.
Satu sisi dari hal ini adalah bahwa Anda tidak akan memiliki tampilan server teragregasi lagi (Anda harus menggabungkan log secara terpisah atau mungkin menggunakan pengaturan apache tambahan atau mungkin metode lain?).
Saya akan berhati-hati agar tidak menggunakan google analytics (atau pelacakan berbasis javascript) untuk pemantauan bandwidth server karena Anda mengandalkan klien untuk melaporkan melalui javascript. GA tidak melaporkan kepada Anda orang-orang yang javascriptnya dinonaktifkan serta perayap / spider / bot apa pun.
sumber
Berikut adalah beberapa regex untuk mem-parsing format log yang diusulkan oleh Xerxes.
\ [([0-9] +) / (\ w +) / ([0-9] {4}) [^ \]] + \] \ s (\ d {1,3}. \ D {1, 3}. \ D {1,3}. \ D {1,3}) \ s ([^ /] +) [^ \ s] + \ s (\ d +) \ s (\ d +)
Contoh log:
[12 / Jan / 2011: 14: 25: 04 +0000] file 157.157.12.206.hjaltijakobsson.com / 581 669 [12 / Jan / 2011: 14: 25: 04 +0000] 157.157.12.206 file.hjaltijakobsson.com / 624 747 [12 / Jan / 2011: 14: 25: 04 +0000] 157.157.12.206 files.hjaltijakobsson.com /icons/blank.gif 687 186 [12 / Jan / 2011: 14: 25: 04 +0000] 157.157. 12.206 files.hjaltijakobsson.com /icons/compressed.gif 693 188 [12 / Jan / 2011: 14: 25: 04 +0000] 157.157.12.206 file.hjaltijakobsson.com /favicon.ico 592 512
Cocok:
Subpattern 1 (hari bulan): 12
Subpattern 2 (bulan abbr.): Jan
Subpattern 3 (tahun): 2011
Subpattern 4 (host pengunjung): 157.157.12.206
Subpattern 5 (host virtual): files.hjaltijakobsson.com
Subpattern 6 ( byte masuk): 581
Subpattern 7 (byte keluar): 669
Tepuk tangan.
sumber
Tweak sedikit pada jawaban yang diterima dengan asumsi sebenarnya ada beberapa vhost di server (dan karena itu beberapa site.com.access_log 's). Ini akan mengurutkan dan mendaftar setiap vhost
dan untuk direktori log gzip
sumber
Hmm, Anda bisa mendapatkan kejahatan dengan IPTable dan pencocokan string untuk mencatat paket untuk pelaporan nanti. Hanya akan berfungsi untuk koneksi non SSL.
Atau sesuatu yang diketahui protokol dan sesi seperti Snort dapat digunakan untuk ...
sumber
Benar. Memfilter log adalah ide yang bagus. Saya juga ingin mendapatkan bandwidth server Apache saya ketika mengunduh file.
Menghitung
%b
dan%d
output, yang akan memberi Anda bandwidth saat ini.sumber