مستند API سرویس ارسال لاگ (CDN Log Forwarder)
پیش نیاز: اتصال به api server سی دی ان ستون (راهنمای اتصال)
با استفاده از Resource زیر میتوانید تنظیمات مورد نظر خود را برای سرویس ارسال لاگ ستون اعمال کنید:
توضیحات هریک از پارامترهای بالا در جدول زیر آورده شدهاند:
metadata.name
باید یک نام دلخواه اما یکتا برای لاگفرواردر خود انتخاب کنید.
metadata.namespace
نام Namespaceی که CDN در آن ساخته شده است را در این قسمت قرار دهید.
spec.selector.name
در این قسمت باید نام CDNی که میخواهید لاگفرواردر برای آن فعال شود را قرار دهید. هر CDN میتواند چند لاگفرواردر داشته باشد.
spec.sink.kind
نوع پروتکل Message Queue انتخابی خود را در این قسمت تعیین کنید. این فیلد میتواند Amqp یا Kafka یا Websocket یا Elastic باشد.
نکته در مورد سینک های Amqp: در حال حاضر امکان انتخاب vhost در کانفیگ وجود ندارد و مسج ها به اکسچنجی که در vhost دیفالت وجود دارند ارسال می شود.
headerFilter
headerFilter.request: در این فیلد می توانید لیستی از نام هدر هایی که کلاینت ارسال می کند را مشخص کنید که در لاگ و در فیلد request_headers با انکودینگ json دریافت کنید.
headerFilter.response: در این فیلد می توانید لیستی از نام هدر هایی که آپستریم به cdn ارسال می کند را مشخص کنید که در لاگ و در فیلد response_headers با انکودینگ json دریافت کنید.
ratelimit
با استفاده از این امکان میتوانید میزان ارسال لاگ به سرور دریافت کننده خود را محدود کنید. واحدهای مورد قبول در فیلد period موارد زیر است:
- ثانیه: s
- دقیقه: m
- ساعت: h
encryption
با استفاده از این امکان میتوانید برای امنیت بیشتر، لاگهای ارسالی را رمزگذاری کنید. در حال حاضر از پروتکل های رمزنگاری متقارن AES-128-CFB|AES-128-OFB|AES-128-CTR-LE پشتیبانی میشود. در فیلد key هم باید کلید ۱۶ بایتی خود را قرار دهید. این کلید را به صورت امن نگهداری کنید.
مثال: زبان Go
برای مثال در زبان Go به کمک کد زیر میتوانید پیام رمزنگاری شده را باز کنید:
برای مثال در زبان Go به کمک کد زیر میتوانید پیام رمزنگاری شده را باز کنید:
توضیح | مثال از مقدار | نام |
---|---|---|
asn | 197207 | asn |
ارائه دهنده اینترنت | Mobile Communication Company of Iran PLC | aso |
تعداد بایت های ارسالی | 410 | bytes_sent |
وضعیت کش | HIT|MISS|BYPASS | cache_status |
connection | 148111278 | connection |
connection_requests | 5 | connection_requests |
continent | AS | continent |
country | IR | country |
ریکوئست توسط فایروال بلاک یا پاس شده | PASSED|BLOCKED | fw_blocked |
اکشن فایروال مچ شده با ریکوئست | Rule action | fw_rule_action |
نام فایروال مچ شده با ریکوئست | Rule name | fw_rule_name |
مقدار host ست شده در کانفیگ CDN | sotoon.ir | host |
ایجنت درخواست کننده | okhttp/4.11.0 | http_user_agent |
نام CDN | sotoon-ir | name |
نیم اسپیس CDN | sotoon | namespace |
prepare_time | 0.134 | prepare_time |
remote_addr | 204.18.45.7 | remote_addr |
remote_port | 58430 | remote_port |
request_host | ocean.sotoon.ir | request_host |
request_id | 99270af816085c17077be8f7ae4a107a | request_id |
request_length | 141 | request_length |
request_method | POST | request_method |
request_uri | /cdn/test-cdn/upstreams | request_uri |
response_code | 200 | response_code |
response_time | 0.134 | response_time |
scheme | https | scheme |
نام سرور CDN که به درخواست پاسخ داده | asiatech3|irancell4|mci2 | server |
آی پی سرور CDN | 185.166.104.3 | server_addr |
پورت سرور CDN | 443 | server_port |
time_local | 10/Jan/2024:14:32:54 +0330 | time_local |
upstream origin host:port | 86.104.33.81:443 | upstream_address |
upstream_connect_time | 1 | upstream_connect_time |
۱: اگر آپستریم به صورت صریح کد رنج ۵۰۰ به نود CDN ارسال کند۰: آپستریم به صورت صریح کد رنج ۵۰۰ به نود CDN ارسال نکرده | 0|1 | upstream_error_by_upstream |
upstream_header_time | 1 | upstream_header_time |
نام آپستریم مچ شده با ریکوئست | backend | upstream_name |
upstream_response_length | 114 | upstream_response_length |
upstream_response_time | 0.134 | upstream_response_time |
upstream_status | 200 | upstream_status |
آی دی ورک اسپیس ستون | bea4bbf7-247d-5757-b6aa-f0bee528c48k | wsid |
مقادیر هدرهای ریکوئست مشخص شده در کانفیگ لاگ فوروارد. این فیلد به صورت دیفالت مقداری ندارد. | { “user-agent”: “Mozilla”, “accept-encoding”: “gzip”} | request_headers |
مقادیر هدرهای ریسپانس آپستریم مشخص شده در کانفیگ لاگ فوروارد. این فیلد به صورت دیفالت مقداری ندارد. | { “vary”: “accept-encoding”, “content-encoding”: “br”} | response_headers |