قابلیت فیلتر لاگهای دریافتی
در صورت نیاز به دریافت یکسری لاگ مشخص، می بایست از خصوصیت constraints استفاده کنید. این خصوصیت به شکل یک لیست تو در تو تعبیه شده است؛ به طوری که عناصر لیست بیرونی باهم OR شده و عناصر لیست داخلی به شکل AND با هم ترکیب خواهند شد. در ادامه یک مثال را بررسی می کنیم که صرفا لاگ درخواستهایی که با متد GET بودهاند و در نهایت HIT شدهاند یا با متد GET بودهاند و خطای 504 در پاسخ به کلاینت تحویل داده شده است را دریافت خواهیم کرد:
در زیر، توصیف فیلدها و ویژگیهای قابل استفاده در فیلترها آورده شده است:
فیلد | نوع داده | توضیحات |
---|---|---|
method | String | متد HTTP درخواست (مثل: GET، POST، PUT، DELETE) |
status | String | وضعیت پاسخ (مثل: HIT، 504) |
expected | Array | مقادیر مورد انتظار برای فیلتر (مثل: "GET" یا "HIT") |
operator | String | عملگری که باید روی فیلد اعمال شود (مثل: equals، lesser، greater) |
type | String | نوع فیلد که فیلتر بر اساس آن اعمال میشود (مثل: method، status) |
هر کدام از سطوح این لیست تو در تو حداکثر تا 10 عنصر میتواند داشته باشد و در حال حاضر مشخصات زیر قابلیت اعمال فیلتر را خواهند داشت.
فیلد | نوع داده | توضیحات |
---|---|---|
args | String | آرگومانهای درخواست |
asn | Integer | شماره ASN (Autonomous System Number) |
cookie | String | کوکیهای ارسالشده در درخواست |
country | String | کشور درخواستدهنده |
header | String | هدرهای درخواست |
host | String | نام هاست درخواست |
http_version | String | نسخه پروتکل HTTP |
ip | String | آدرس IP درخواستدهنده |
known_bots | Boolean | مشخص کننده اینکه درخواست توسط یک ربات شناختهشده ایجاد شده است |
method | String | متد HTTP درخواست |
path | String | مسیر درخواست |
port | Integer | پورت درخواست |
tls | Boolean | آیا درخواست از طریق پروتکل TLS ارسال شده است؟ |
uri | String | URI درخواست |
status | String | وضعیت پاسخ |
upstream_status | String | وضعیت از سرورهای upstream |
cache_status | String | وضعیت کش (مثل: HIT، MISS) |
user_agent | String | رشته user-agent درخواست |
upstream_address | String | آدرس سرور upstream |
همچنین باتوجه به نوع داده هر کدام از موارد بالا، امکان استفاده از عملگرهای زیر را خواهید داشت:
عملگر | توضیحات |
---|---|
equals | مقایسه برابری (مساوی) |
lesser | مقایسه کمتر از |
greater | مقایسه بیشتر از |
starts_with | بررسی شروع با مقدار مشخص |
ends_with | بررسی پایان با مقدار مشخص |
contains | بررسی شامل بودن مقدار مشخص |
ip_matches | بررسی تطابق آدرس IP |
matches | تطابق عمومی برای دادهها |
نکته: با اضافه شدن قابلیت فیلتر به مکانیزم LogForwarder، شما صرفا هزینه لاگهایی را که با فیلتر اعمال شده تطابق دارند را پرداخت خواهید کرد و این موضوع در مکانیزم Billing در نظر گرفته شده است.