தொகுதி பாடங்கள் (2/4)
அப்பாச்சி பதிவு பாகுபடுத்தி
அப்பாச்சி பதிவுகள் (ஒருங்கிணைந்த வடிவம்) துல்லியமான கட்டமைப்பைக் கொண்டுள்ளன:
127.0.0.1 - - [10/Oct/2024:13:55:36 +0000] "GET /index.html HTTP/1.1" 200 1234பெயரிடப்பட்ட குழுக்களுடன் ஒவ்வொரு புலத்தையும் ஒரே ஷாட்டில் பிரித்தெடுக்கிறது:
^(?<ip>\d+\.\d+\.\d+\.\d+)\s+\S+\s+\S+\s+\[[^\]]+\]\s+"(?<metodo>\w+)\s+(?<path>\S+)\s+\S+"\s+(?<status>\d+)\s+(?<size>\d+)இது பயங்கரமாகத் தெரிகிறது, ஆனால் இது எளிய வடிவங்களின் இணைப்பு:
(?<ip>\d+\.\d+\.\d+\.\d+)-- ஆதாரம் IPv4.\s+\S+\s+\S+-- பயனர் ஐடிகள் (பொதுவாக-).\[[^\]]+\]-- சதுர அடைப்புக்குறிக்குள் தேதி."(?<metodo>\w+)\s+(?<path>\S+)\s+\S+"-- மேற்கோள்களில் கோரிக்கை, HTTP முறை, பாதை மற்றும் பதிப்பு.(?<status>\d+)\s+(?<size>\d+)-- நிலைக் குறியீடு மற்றும் பைட்டுகள் அனுப்பப்பட்டன.
பொது மூலோபாயம்
- உண்மையான வரியிலிருந்து தொடங்கவும் மற்றும் டிலிமிட்டர்களை பின் செய்யவும்: இடைவெளிகள், மேற்கோள்கள், அடைப்புக்குறிகள்.
- டிலிமிட்டர்களுக்கு இடையே, வகை டோக்கனை (ஐபி, சொல், எண்) அடையாளம் காணவும்.
- பெயரிடப்பட்ட குழுக்களில் மடிக்க நீங்கள் பிரித்தெடுக்க வேண்டியதை மட்டும்.
சிக்கலான பதிவுகளை பாகுபடுத்துதல்
பதிவு பாகுபடுத்தலில், மேற்கோள் காட்டப்பட்ட சரங்கள் அல்லது அடைப்புக்குறிகள் (எ.கா. பயனர்-ஏஜெண்ட்) கொண்டிருக்கும் போது தவிர, புலங்கள் பொதுவாக இடத்தால் பிரிக்கப்பட்டிருக்கும். வைல்டு கார்டு புள்ளிக்குப் பதிலாக எழுத்து வகுப்புகளைத் தவிர்த்துப் பயன்படுத்துவது பல நெடுவரிசைகளை தவறாக இணைப்பதைத் தடுக்கிறது.
முயற்சி செய்து பாருங்கள்
ஒவ்வொரு பதிவு வரியின் தொடக்கத்திலும் IPv4 ஐ 'ip' என்ற பெயரிடப்பட்ட குழுவாக பிரித்தெடுக்கவும்.
குறிப்பைக் காட்டு
^ மற்றும் m கொடியுடன் வரியின் தொடக்கத்தில் நங்கூரமிட்டு, ஐபியை (?<ip>...) மடிக்கவும்.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்
மதிப்பாய்வு பயிற்சி
மேற்கோள்களுக்கு இடையே உள்ள கோரிக்கையின் HTTP முறை மற்றும் பாதையை பிரித்தெடுக்கவும், குழுக்களாக `metodo` மற்றும் `path`.
குறிப்பைக் காட்டு
" உடன் திறக்கவும், பின்னர் (?<metodo>\\w+)\\s+(?<path>\\S+).
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்
கூடுதல் சவால்
Extract only the date and time part enclosed in brackets in logs, e.g. `10/Oct/2024:13:55:36 +0000`, as a named group `timestamp`.
குறிப்பைக் காட்டு
Use \[(?<timestamp>[^\]]+)\] to prevent the engine from matching past the closing bracket.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்