Memahami log akses Apache

134

Apa arti masing-masing hal di baris ini dari log akses saya?

127.0.0.1 - - [05 / Feb / 2012: 17: 11: 55 +0000] "GET / HTTP / 1.1" 200140 "-" "Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 535.19 (KHTML, seperti Gecko) Chrome / 18.0.1025.5 Safari / 535.19 "

Boardy
sumber

Jawaban:

237

Anda tampaknya menggunakan format log gabungan .

LogFormat "% h% l% u% t \"% r \ "%> s% b \"% {Referer} i \ "\"% {User-agent} i \ "" digabungkan

  • % h adalah host jarak jauh (yaitu IP klien)
  • % l adalah identitas pengguna yang ditentukan oleh identd (biasanya tidak digunakan karena tidak dapat diandalkan)
  • % u adalah nama pengguna yang ditentukan oleh otentikasi HTTP
  • % t adalah waktu permintaan diterima.
  • % r adalah baris permintaan dari klien. ("GET / HTTP / 1.0")
  • %> s adalah kode status yang dikirim dari server ke klien (200, 404 dll.)
  • % b adalah ukuran respon ke klien (dalam byte)
  • Referer adalah header Referer dari permintaan HTTP (berisi URL halaman tempat permintaan ini dimulai) jika ada, dan "-"sebaliknya.
  • Agen-pengguna adalah string identifikasi browser.

Daftar lengkap (?) Pemformat dapat ditemukan di sini . Bagian yang sama dari dokumentasi juga mencantumkan format log umum lainnya; pembaca yang lognya tidak terlihat seperti ini mungkin menemukan pola yang digunakan konfigurasi Apache mereka tercantum di sana.

Joachim Isaksson
sumber
Saya bertanya-tanya apa yang bisa menjadi angka angka (19) di terakhir, setelah agen pengguna.
ivanceras
2
@ivanceras 535.19adalah versi webkit yang digunakan, jadi ini adalah bagian dari string agen pengguna (dan juga ditempatkan di dalam tanda kutip yang berisi agen pengguna)
Joachim Isaksson
4
Saya memiliki 4 bidang tambahan setelah agen pengguna, seperti ini: ... "Mozilla / 5.0 (Windows NT 5.1; rv: 16.0) Gecko / 20100101 Firefox / 16.0" 369 74500 - 567 apa yang mereka tunjukkan?
account_ram saya
9

Saya juga tidak mengerti apa arti "-" setelah bagian 200.140 di log

Nilai tersebut sesuai dengan pengarah seperti yang dijelaskan oleh Joachim. Jika Anda melihat tanda hubung, itu berarti tidak ada nilai perujuk untuk memulai (mis. Pengguna langsung menuju ke tujuan tertentu, seperti jika dia mengetik URL di browser mereka)

georaldc
sumber
7

Dan apa artinya " Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 535.19 (KHTML, like Gecko) Chrome / 18.0.1025.5 Safari / 535.19 "?

Ini adalah nilai User-Agent, string identifikasi browser.

Untuk alasan ini, sebagian besar browser Web menggunakan nilai string Agen-Pengguna sebagai berikut:

Mozilla / [versi] ([sistem dan informasi browser]) [platform] ([detail platform]) [ekstensi]. Misalnya, Safari di iPad telah menggunakan yang berikut ini:

Mozilla / 5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) AppleWebKit / 531.21.10 (KHTML, like Gecko) Mobile / 7B405 Komponen string ini adalah sebagai berikut:

Mozilla / 5.0: Sebelumnya digunakan untuk menunjukkan kompatibilitas dengan mesin rendering Mozilla. (iPad; U; CPU OS 3_2_1 seperti Mac OS X; en-us): Detail sistem tempat browser berjalan. AppleWebKit / 531.21.10: Platform yang digunakan browser. (KHTML, seperti Gecko): Detail platform browser. Seluler / 7B405: Ini digunakan oleh browser untuk menunjukkan peningkatan khusus yang tersedia langsung di browser atau melalui pihak ketiga. Contohnya adalah Microsoft Live Meeting yang mendaftarkan ekstensi sehingga layanan Live Meeting mengetahui apakah perangkat lunak telah diinstal, yang berarti dapat memberikan pengalaman yang efisien untuk bergabung dalam rapat.

Nilai ini akan digunakan untuk mengidentifikasi browser apa yang digunakan oleh pengguna akhir.

Lihat

vsingh
sumber
Di lingkungan seimbang beban saya, yang memiliki 4 node penayangan yang tersembunyi di balik server penyeimbang beban apache. Akhir-akhir ini saya mengalami masalah tidak tersedianya. Saat debugging, saya menemukan Access log di load balancer saya dengan status 504. yang terlihat seperti ini. {Alamat Ip} - - [tanggal] "POST url http / 1.1" 504 247 "-" "-" Sekarang saya menduga bahwa salah satu dari 4 node server aplikasi saya memberikan waktu tunggu lebih sering daripada yang lain. Namun log ini tidak memberikan petunjuk ke server mana permintaan diteruskan dan mengakibatkan waktu tunggu. Bagaimana saya bisa log ip dari node ke mana permintaan sedang diteruskan.
PROFESSOR
Saya akan menyarankan opsi berikut a) Mengaktifkan dan melihat log penyeimbang beban b) memeriksa pemanfaatan memori, CPU, IO untuk setiap vm Anda dan melihat apakah semuanya sama. c) Hitung jumlah permintaan untuk setiap vm pada hari tertentu. Mereka harus berada di sekitar yang sama. Jika tidak, Load Balancer mungkin menemukan bahwa server tidak merespons ping dan itulah mengapa tidak mengirim permintaan.
vsingh