আমার কাছে এমন একগুচ্ছ অ্যাপাচি লগ ফাইল রয়েছে যা আমি বিশ্লেষণ করতে চাই। আমি এমন একটি সরঞ্জাম খুঁজছি যাটির জন্য খুব বেশি সেটআপ প্রয়োজন হয় না; আমাদের লাইভ ওয়েব সার্ভারগুলিতে গোলমাল না করেই আমি কমান্ড লাইনের মাধ্যমে কোনও লগ চালাতে পারি।
কোন সুপারিশ?
আমার কাছে এমন একগুচ্ছ অ্যাপাচি লগ ফাইল রয়েছে যা আমি বিশ্লেষণ করতে চাই। আমি এমন একটি সরঞ্জাম খুঁজছি যাটির জন্য খুব বেশি সেটআপ প্রয়োজন হয় না; আমাদের লাইভ ওয়েব সার্ভারগুলিতে গোলমাল না করেই আমি কমান্ড লাইনের মাধ্যমে কোনও লগ চালাতে পারি।
কোন সুপারিশ?
উত্তর:
উপরের সরঞ্জামগুলি দুর্দান্ত থাকলেও আমি মনে করি আমি জানি প্রশ্নকারী কী জিজ্ঞাসা করছে। এটি প্রায়শই আমাকে ব্যথা করে যে আমি অন্যান্য ফাইলগুলির সাথে যেভাবে পারি তার কোনও তথ্য অ্যাক্সেস-লগ থেকে বের করতে পারি না।
এটি বোবা অ্যাক্সেস লগ ফর্ম্যাটটির কারণে:
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"
তারা কেন [] তারিখের জন্য এবং "" অন্যান্য জিনিসের জন্য ব্যবহার করেছিল? তারা কি ভেবেছিল আমরা 4 তারিখের মাঠে ছিল জানি না? এটি অবিশ্বাস্যরূপে হতাশাব্যঞ্জক।
এই মুহুর্তে সেরা সরঞ্জাম গোক:
gawk 'BEGIN { FPAT="([^ ]+)|(\"[^\"]+\")|(\\[[^\\]]+\\])" } { print $5 }'
উপরের তথ্য উপর আপনি দিতে হবে:
"GET /manual/elisp/index.html HTTP/1.1"
অন্য কথায়, এফপিএটি আপনাকে অ্যাপাচি-লগের ক্ষেত্রগুলি এমনভাবে টেনে আনার ক্ষমতা দেয় যাতে তারা কেবল স্থান পৃথকীকরণের পরিবর্তে প্রকৃত ক্ষেত্র। আমি সবসময় এটিই চাই। আমি তখন পাইপলাইন দিয়ে আরও কিছু বিশ্লেষণ করতে পারি।
এফএসপিএটি তৈরির কাজটি এখানে সংজ্ঞায়িত করা হয়েছে: http://www.gnu.org/software/gawk/manual/html_node/Splitting- বাই-কনটেন্ট.ইচটিএমএল
অতএব আপনি গ্যাঙ্ক তৈরি করতে একটি উপনাম সেট আপ করতে পারেন যা অ্যাপাচি লগগুলি পার্স করতে পারে:
alias apacheawk="gawk -vFPAT='([^ ]+)|(\"[^\"]+\")|(\\\\[[^\\\\]]+\\\\])' "
apacheawk '$6 ~ /200/ { print $5 } | sort | uniq
এটা আমার জন্য তৈরি:
"GET / HTTP/1.1"
"GET /manual/elisp/index.html HTTP/1.1"
"GET /manual/elisp/Index.html HTTP/1.1"
"GET /scripts/app.js HTTP/1.1"
"GET /style.css HTTP/1.1"
এবং অবশ্যই অন্য যে কোনও কিছু এখন সম্ভব।
উপভোগ করুন!
awk '($9 == 200) {print $6,$7,$8}'আপনার উদাহরণ হিসাবে একই জিনিস প্রদর্শন করতে। সেখানে এফপিএটি ব্যবহার করার দরকার নেই (যদিও এই পদ্ধতিটি অন্যান্য ক্ষেত্রে কার্যকর হতে পারে)
ওয়াটপ ঠাণ্ডা এছাড়াও অন্যান্য ইউটিলিটি আছে। প্রায়শই, আমি ব্যাশ, সেড এবং অ্যাজক ব্যবহার করে লগগুলি পার্স করব।
অ্যাপাচেটপ বেশ দুর্দান্ত; এটি সরাসরি পরিসংখ্যান মুদ্রণ করে। আপনি এটি দিয়ে চালান
apachetop -f /var/log/apache2/www.mysite.com.access.log
এটি ডেবিয়ান / উবুন্টুতে ইনস্টল করতে:
apt-get install apachetop
বা উত্স থেকে: https://github.com/JeremyJones/Apachetop
আপনি কি ধরণের আউটপুট চান?
আপনি যদি কেবল জিনিস গণনা করতে দেখেন তবে কিছু লগইন করুন logfile.txt | ডাব্লুসি-এল দুর্দান্ত কাজ করে। আপনি যদি খুব গ্রাফ চান ... এত কিছু না।
কমান্ড লাইন সরঞ্জামটি ব্যবহার না করে আমি অ্যাপাচি লগ ভিউয়ারটি চেষ্টা করার চেষ্টা করব। এটি একটি নিখরচায় সরঞ্জাম যা অ্যাপাচি লগ ফাইলটি নিরীক্ষণ ও বিশ্লেষণ করতে পারে। এটি ফ্লাইতে বেশ কয়েকটি দুর্দান্ত গ্রাফ এবং প্রতিবেদন তৈরি করতে পারে।
Http://www.apacheviewer.com থেকে আরও তথ্য