Saya hosting cukup banyak host virtual menggunakan Apache dalam LAMP dasar yang diatur dengan bantuan Webmin / Virtualmin. Saya mencari alat seperti teratas di mana saya dapat memonitor koneksi saat ini. Bagian hosting virtual tampaknya memberi saya masalah di sini. Inilah yang saya coba:
netstat
- Saya dapat melihat koneksi, tetapi mereka menunjukkan kepada saya seolah-olah mereka semua menggunakan domain utama saya, misalnyamydomain.com:www
.iftop
- Saya sangat menyukainya, tetapi kelemahannya sama sepertinetstat
: tidak menunjukkan host virtual.apachetop
- tampaknya tidak menampilkan informasi untuk semua host virtual saya. Saya masuk untuk memisahkan file log khusus, yang saya curigai adalah alasan mengapa itu tidak berfungsi.ntop
,darkstat
,MRTG
,bwm-ng
,IPTraf
- tidak bekerja baik.
Jadi, pada dasarnya, saya sedang mencari sesuatu yang mirip dengan arus keluaran netstat
, tetapi untuk menyertakan virtual host permintaan tersebut untuk, misalnya: avirtualsite.com:www
.
apache2
websites
virtualhost
webmin
Piotr Kula
sumber
sumber
apachetop
- tetapi itu hanya memonitor file yang saya berikan .. sial- tidak semua server ...Jawaban:
Jawaban Andrea Corbellini menjelaskan kepada Anda mengapa itu tidak bekerja dengan alat yang Anda gunakan dan bagaimana Virtual Hosting bekerja. Inilah cara paling sederhana yang dapat saya pikirkan untuk menyelesaikannya di Apache ...
mod_status
akan membantumu.Penafian: Saya tidak tahu bagaimana hal ini dilakukan di Webmin - Saya menggunakan file konfigurasi kosong untuk mengatur server. Berikut ini adalah ikhtisar dasar langkah-langkahnya.
Ini
top
alat yang mirip, tetapi direpresentasikan sebagai halaman web. Itu daftar keadaan saat ini langsung ditanya dari Apache, jadi itu tidak tergantung pada parsing file log sepertiapachetop
halnya.Aktifkan
mod_status
:Berikan diri Anda akses.
/etc/apache2/mods-enabled/status.conf
dan edit:ExtendedStatus
keOn
(opsional, tetapi lebih keren dan sedikit lebih lambat)Di dalam
<Location /server-status>
, tambahkan alamat IP Anda ke baris denganAllow
arahan. Contoh:Mulai ulang Apache:
Nikmati alat di browser Anda, misalnya:
http://1.2.3.4/server-status
Ini akan terlihat seperti contoh screenshot ini .
Terus menekan F5untuk mendapatkan pembaruan. Atau dapatkan plugin peramban yang luar biasa dan tontonlah itu diperbarui!
Webmin
tambahan oleh OP untuk pengunjung masa depan
Di Webmin, langkah-langkah dasar tentang modul Status dapat ditemukan di sini:
sumber
Semua alat yang Anda coba tidak akan pernah memberi Anda jawaban yang benar. Alasannya adalah bahwa informasi yang Anda minta hilang ketika koneksi dibuat.
Mari kita gunakan sebuah contoh: misalkan server web Anda memiliki satu alamat IP ( 1.2.3.4 ) dan dua nama host ( a.mydomain.com dan b.mydomain.com ) yang menyelesaikan ke alamat IP itu.
Apa yang terjadi ketika Anda menggunakan browser web favorit saat mengunjungi a.mydomain.com ?
Jadi
netstat
& hanya tahu bahwa ada koneksi masuk yang dibuat ke 1.2.3.4 . Alasan mengapa Anda melihat nama host alih-alih alamat IP adalah bahwa alamat IP memiliki catatan rDNS, jadinetstat
lebih suka menunjukkannya daripada IP, karena lebih bagus. Cobanetstat -n
(atau hapus catatan rDNS) dan Anda akan melihat alamat IP.Tapi bukan itu saja: ketika saya mengatakan bahwa informasi tentang nama host yang digunakan untuk membuat koneksi terputus, saya tidak sepenuhnya benar. Dari sudut pandang tumpukan TCP / IP, kalimat itu benar. Tetapi jika kita melihat hal-hal dari sudut pandang protokol HTTP, semuanya berbeda. Di setiap permintaan HTTP ada
Host:
header yang berisi nama host yang digunakan oleh browser untuk membuat permintaan.Jadi, singkatnya, Anda harus melihat file log server web Anda. Server web adalah layanan yang menangani permintaan HTTP dan karenanya satu-satunya layanan yang tahu tentang nama host "asli".
sumber
Cara lain adalah mengetik
di terminal Anda
sumber
access.log
tidak mengandung semua permintaan. Sebagai gantinya, saya melihat/usr/local/apache/domlogs/
untuk melihat permintaan oleh virtualhost (terbagi antara SSL, non-SSL, dan bahkan FTP). Path mungkin berbeda di Ubuntu cPanel./var/log/httpd/access_log
Anda dapat memeriksa semua ips yang terhubung pada port 80 dengan bash ini
Catatan: jika Anda ingin melihat port lain, ubah 80
KELUARAN:
sumber
Anda dapat memeriksanya dengan:
sumber
Jika Anda ingin pid, pengguna dan perintah:
sumber
Anda juga dapat menggunakan GoAccess secara interaktif untuk melihat pengunjung Anda saat ini. Ini mem-parsing log akses Apache Anda untuk tujuan ini dan menunjukkan banyak statistik tentang situs Anda.
sumber