এনজিএনএক্সে স্ল্যাশডট প্রভাব সনাক্ত করা


10

যদি কোনও রেফারারের কাছ থেকে হিটগুলি একটি চৌম্বক ছাড়িয়ে যায় তবে আমি কি এনগিনেক্সকে আমাকে জানাতে পারি?

উদাহরণস্বরূপ, যদি আমার ওয়েবসাইটটি স্ল্যাশডোটে বৈশিষ্ট্যযুক্ত এবং হঠাৎ করে আমার কাছে ২ ঘন্টা হিট আসে একটি ঘন্টা আমি যখন 1K ছাড়িয়ে যায় তখন আমি অবহিত হতে চাই।

এনগিনেক্সে কি এটি করা সম্ভব হবে? সম্ভবত লুয়া ছাড়া? (যেহেতু আমার উত্স লুয়া সংকলন করা হয়নি)


4
"স্ল্যাশডট" কি ??
ew white

আমি এনজিক্সে ডিডোস সনাক্ত করতে এরকম কিছু করেছি। অ্যাক্সেস লগকে পার্স করে আমি এটি অর্জন করেছি। অ্যাক্সেস লগকে পার্স করতে এবং প্রতি ঘন্টা অনন্য আইপি সংযোগ গণনা করতে আমি ক্রোন কাজ করেছি।
হেক্স

8
আপনি বলতে চাইছেন যে আপনি চান যে আপনি ডাইস কিনেছেন কিনা তা সনাক্ত করতে সক্ষম হন?
MDMarra

1
@এইচএক্স এটি (এবং আপনার স্ক্রিপ্ট থেকে কয়েকটি স্নিপেট) এই প্রশ্নের দুর্দান্ত উত্তর দিতে পারে :)
ভোরেটাক 7

3
সম্ভবত আর স্ল্যাশডটেড হওয়ার বিষয়ে চিন্তা করার দরকার নেই। আপনার ওয়েবসভারটি এক ঘন্টা অতিরিক্ত 4 সংযোগ পরিচালনা করতে সক্ষম হওয়া উচিত। পেয়ে চিন্তা করতে চাইতে পারেন Redditted, যদিও ...
HopelessN00b

উত্তর:


3

সবচেয়ে বেশি কার্যকরী সমাধান ডেমন হবে লিখতে হতে পারে , এবং ট্র্যাক রাখতে ক্ষেত্র।tail -faccess.log$http_referer

তবে একটি দ্রুত এবং নোংরা সমাধানটি হ'ল একটি অতিরিক্ত access_logফাইল যুক্ত করা, কেবল $http_refererএকটি কাস্টম দিয়ে ভেরিয়েবলটি log_formatলগ করা এবং প্রতিটি এক্স মিনিটে স্বয়ংক্রিয়ভাবে লগটি ঘোরানো।

  • এই মান logrotate স্ক্রিপ্ট সাহায্যে, যা অর্ডার ফাইল পুনরায় খোলা আছে মধ্যে nginx এর সুতনু পুনরায় আরম্ভ করতে হবে পারে সহযোগে এটি করা যাবে (যেমন, প্রমিত পদ্ধতি, কটাক্ষপাত করা / A / 15183322 তাই একটি সহজ time- জন্য ভিত্তিক স্ক্রিপ্ট)…

  • অথবা, মধ্যে ভেরিয়েবল ব্যবহার করে access_log, সম্ভবত বাইরে মিনিট স্পেসিফিকেশন বুঝিয়ে $time_iso8601সাহায্যে mapঅথবা একটি ifনির্দেশ (আপনার রাখতে চান সেটি যেখানে উপর নির্ভর করে access_log)।

সুতরাং, উপরের সাহায্যে, আপনার কাছে 6 টি লগ ফাইল থাকতে পারে, যার প্রতিটি 10 ​​মিনিটের সময়কালে আবরণ করে http_referer.Txx{0,1,2,3,4,5}x.log, যেমন, প্রতিটি ফাইলের পার্থক্য করার জন্য মিনিটের প্রথম অঙ্ক পেয়ে getting

এখন আপনাকে যা করতে হবে তা হ'ল একটি সহজ শেল স্ক্রিপ্ট যা প্রতি 10 মিনিটের মধ্যে চলতে পারে, catউপরের সমস্ত ফাইল একসাথে, এটিতে পাইপ করা sort, এটিতে পাইপ করা uniq -c, করতে sort -rn, করতে head -16এবং আপনার কাছে 16 টি প্রচলিত Refererপ্রকরণের তালিকা রয়েছে - সংখ্যা এবং ক্ষেত্রের কোনও সংমিশ্রণ আপনার মানদণ্ডকে অতিক্রম করে কিনা তা নির্ধারণ করতে এবং একটি বিজ্ঞপ্তি নির্দ্বিধায় মুক্ত।

পরবর্তীকালে, একটি একক সফল বিজ্ঞপ্তির পরে, আপনি এই 6 টি ফাইল মুছে ফেলতে পারবেন এবং পরবর্তী রানগুলিতে, কোনও ছয়টি ফাইলই উপস্থিত নেই (এবং / অথবা আপনি উপযুক্ত হিসাবে দেখবেন এমন কোনও নির্দিষ্ট নম্বর) অবধি কোনও বিজ্ঞপ্তি জারি করবেন না।


এটি দুর্দান্ত উপকারী বলে মনে হচ্ছে। আমি খুব বেশি চাইছি তবে আগের উত্তরটির মতো, আপনি কি কোনও স্ক্রিপ্টের সাহায্যে সহায়তা করবেন?
কুইন্টিন পার

@ কুইন্টিনপার অতিরিক্ত পাঠ্যক্রম শোনায়! ;-) যদি আপনি চান, আমি ভাড়া এবং পরামর্শের জন্য উপলব্ধ; আমার ইমেলটি cnst++@FreeBSD.org, কনস্টানটাইন.এসইউ
তে

পুরোপুরি বুঝতে। এখনও অবধি সমস্ত সহায়তার জন্য অনেক ধন্যবাদ। আশা করি আমি কোনও দিন আপনাকে সামর্থ্য করব :-)
কুইন্টিন পার

1
@ কুইন্টিনপার আপনাকে স্বাগতম! কোনও উদ্বেগ নেই, এটি উপরে বর্ণনার সাথে একটি সাধারণ সরল স্ক্রিপ্ট হওয়া উচিত; মূলত টেস্টিং, কনফিগারেশন এবং প্যাকেজিংয়ের বিষয়। :)
সিএনএসটি

1
আপনি একজন সুপার নায়ক!
কুইন্টিন পার

13

আমি মনে করি লগটেল এবং গ্রেপ দিয়ে এটি আরও ভাল করা হবে। লুয়া ইনলাইন দিয়ে করা সম্ভব হলেও, আপনি প্রতিটি অনুরোধের জন্য সেই ওভারহেডটি চান না এবং আপনি স্ল্যাশডটেড হয়ে গেলে আপনি বিশেষত এটি চান না।

এখানে একটি 5-সেকেন্ডের সংস্করণ। এটিকে কোনও স্ক্রিপ্টে আটকে দিন এবং এর চারপাশে আরও কিছু পাঠযোগ্য পাঠ্য রাখুন এবং আপনি সোনার।

5 * * * * logtail -f /var/log/nginx/access_log -o /tmp/nginx-logtail.offset | grep -c "http://[^ ]slashdot.org"

অবশ্যই, এটি reddit.com এবং ফেসবুক.কম এবং সমস্ত মিলিয়ন অন্যান্য সাইটগুলির পুরোপুরি উপেক্ষা করে যা আপনাকে প্রচুর ট্র্যাফিক পাঠাতে পারে। আপনাকে প্রতিটি 20 জন প্রেরণকারী 100 টি আলাদা সাইট উল্লেখ না করা। আপনার সম্ভবত সম্ভবত একটি সরল পুরাতন ট্র্যাফিক প্রান্তিক হওয়া উচিত যা রেফারার নির্বিশেষে আপনাকে একটি ইমেল প্রেরণের কারণ করে।


1
সমস্যাটি হচ্ছে প্র্যাকটিভ হওয়া। আমার যে কোনও সাইট থেকে জানতে হবে। আর একটি প্রশ্ন আমি থ্রেশোল্ড কোথায় রাখি? আপনি কিছু অতিরিক্ত লগ পার্সিং মানে? এছাড়াও আমি 4milab.ch/webtools/logtail
কুইন্টিন পার

আপনার সার্ভার (গুলি) কতটা ট্র্যাফিক পরিচালনা করতে পারে তার উপর থ্রেশহোল্ড নির্ভর করবে। শুধুমাত্র আপনি সেট করতে পারেন। আপনি যদি দ্রুত বিজ্ঞপ্তি চান তবে এটি প্রতি ঘন্টাের পরিবর্তে প্রতি পাঁচ মিনিটে চালান এবং প্রান্তিকরটি 12 দ্বারা ভাগ করুন The -o বিকল্পটি একটি অফসেট ফাইলের জন্য তাই এটি পরবর্তী সময়ে কোথায় পড়া শুরু করবে তা জানে।
লাড্ডাড্ডা

@ লাড্ডাডাদা, আমি একমত নই যে ওভারহেড যথেষ্ট পরিমাণে হবে, আমার সমাধান দেখুন - সার্ভারসফল্ট / এ / ৮70০৫37//110020 - আমি বিশ্বাস করি যে যদি ওভারহেডটি যথাযথভাবে প্রয়োগ করা হয় তবে বিশেষত, (১) যদি আপনার ব্যাকএন্ড হয় সত্যিই ধীর গতির, তাহলে এই ওভারহেডটি তুচ্ছ হবে, বা (2), যদি আপনার ব্যাকএন্ডটি ইতিমধ্যে বেশ স্নিপযুক্ত এবং / অথবা সঠিকভাবে ক্যাশে থাকে তবে প্রথমে আপনার ট্র্যাফিক হ্যান্ডলিংয়ের ক্ষেত্রে সামান্য সমস্যা হওয়া উচিত এবং কিছুটা অতিরিক্ত বোঝা জিতেছে ' টি একটি ছিদ্র করা। সামগ্রিকভাবে, মনে হচ্ছে এই প্রশ্নের দুটি ব্যবহারের কেস রয়েছে, (1), কেবল অবহিত করা হচ্ছে এবং, (2), স্বয়ংক্রিয়ভাবে স্কেলিং।
সিএনটি

4

Nginx সীমা_আরক_জোন নির্দেশিকা তার অঞ্চলগুলিকে vari http_referrer সহ যে কোনও ভেরিয়েবলের উপর ভিত্তি করে করতে পারে।

http {
    limit_req_zone  $http_referrer  zone=one:10m   rate=1r/s;

    ...

    server {

        ...

        location /search/ {
            limit_req   zone=one  burst=5;
        }

আপনি ওয়েব সার্ভারে প্রয়োজনীয় রাষ্ট্রের পরিমাণ সীমাবদ্ধ করতে কিছু করতে চাইবেন যদিও রেফারার শিরোনামগুলি বেশ দীর্ঘ এবং বৈচিত্রময় হতে পারে এবং আপনি একটি ইনফিন্ট বৈচিত্র দেখতে পারেন। আপনি রেফারার শিরোনামের হ্যাশের উপর ভিত্তি করে সমস্ত অনুরোধগুলির জন্য একটি ভেরিয়েবল সেট করতে nginx split_clients বৈশিষ্ট্যটি ব্যবহার করতে পারেন । নীচের উদাহরণে কেবল 10 টি বুক ব্যবহার করা হয়েছে তবে আপনি 1000 দিয়ে এটি খুব সহজেই করতে পারেন। সুতরাং যদি আপনি স্ল্যাশডটেড হয়ে যান তবে লোকেদের রেফারাররা হ্যাশ হওয়ার সাথে সাথে স্ল্যাশডট ইউআরএল হিসাবে একই বালতিতে ব্লক হয়ে যায়, তবে আপনি স্প্লিট_ক্লিয়েন্টে 1000 বালতি ব্যবহার করে এটি 0.1% দর্শকের মধ্যে সীমাবদ্ধ করতে পারেন।

এটি দেখতে এর মতো কিছু দেখাবে (সম্পূর্ণরূপে অনিদ্রিত, তবে দিকনির্দেশে সঠিক):

http {

split_clients $http_referrer $refhash {
               10%               x01;
               10%               x02;
               10%               x03;
               10%               x04;
               10%               x05;
               10%               x06;
               10%               x07;
               10%               x08;
               10%               x09;
               *                 x10;
               }

limit_req_zone  $refhash  zone=one:10m   rate=1r/s;

...

server {

    ...

    location /search/ {
        limit_req   zone=one  burst=5;
    }

এটি একটি আকর্ষণীয় পদ্ধতির; তবে আমি বিশ্বাস করি যে স্ল্যাশডট প্রভাবটি যখন গ্রহণ করা হয় তখন প্রশ্নটি একটি স্বয়ংক্রিয় সতর্কতা সম্পর্কিত; আপনার সমাধানটি প্রায় 10% ব্যবহারকারীকে এলোমেলোভাবে অবরুদ্ধ করে প্রায় সমাধান করার বিষয়টি মনে হচ্ছে। তদুপরি, আমি বিশ্বাস করি যে আপনার ব্যবহারের যুক্তি split_clientsভুল তথ্যযুক্ত হতে পারে - limit_reqএটি একটি "ফাঁস বালতি" এর উপর ভিত্তি করে, যার অর্থ সামগ্রিক রাজ্য কখনই নির্দিষ্ট জোনের আকারের বেশি হওয়া উচিত নয়।
সিএনএস্ট

2

হ্যাঁ, অবশ্যই এটি এনজিআইএনএক্সে সম্ভব!

আপনি যা করতে পারেন তা হ'ল নিম্নলিখিত ডিএফএ বাস্তবায়ন :

  1. মানগুলিকে স্বাভাবিক করার জন্য $http_refererসম্ভবত কিছু রেজেক্স ব্যবহার করে ভিত্তি করে হার সীমাবদ্ধকরণ কার্যকর করুন map। সীমা অতিক্রম করা হলে, একটি অভ্যন্তরীণ ত্রুটি পৃষ্ঠা উত্থাপিত হয়, যা আপনি কোনও সম্পর্কিত প্রশ্ন অনুসারেerror_page হ্যান্ডলারের মাধ্যমে ধরতে পারবেন , অভ্যন্তরীণ পুনঃনির্দেশ হিসাবে (নতুন ক্লায়েন্টের কাছে দৃশ্যমান নয়) হিসাবে একটি নতুন অভ্যন্তরীণ স্থানে যান।

  2. সীমা ছাড়িয়ে যাওয়ার জন্য উপরের অবস্থানে, আপনি একটি সতর্কতা অনুরোধ সম্পাদন করুন, বহিরাগত যুক্তি বিজ্ঞপ্তিটি সম্পাদন করতে দিন; এই অনুরোধটি পরবর্তী সময়ে ক্যাশে করা হয়েছে, তা নিশ্চিত করে যে আপনি নির্দিষ্ট সময় উইন্ডোতে কেবল 1 টি অনন্য অনুরোধ পাবেন।

  3. পূর্বের অনুরোধের এইচটিটিপি স্থিতি কোডটি ধরুন (a 300 স্ট্যাটাস কোডটি ফিরিয়ে দিয়ে এবং ব্যবহার করে proxy_intercept_errors on, বা বিকল্পভাবে, বিল্ট-ইন-বিল্ট-ডিফল্ট ব্যবহার করুন auth_requestবা add_after_body"ফ্রি" সাব্রাইকেস্ট করতে), এবং আসল অনুরোধটি এমনভাবে সম্পূর্ণ করুন যেন পূর্বের পদক্ষেপ জড়িত ছিল না। নোট করুন যে এটি কাজ করার জন্য আমাদের পুনরাবৃত্ত error_pageহ্যান্ডলিং সক্ষম করতে হবে ।

এখানে আমার পিওসি এবং একটি এমভিপি, https://github.com/cnst/StackOverflow.cnst.nginx.conf/blob/master/sf.432636.detecting-slashdot-effect-in-nginx.conf এও রয়েছে :

limit_req_zone $http_referer zone=slash:10m rate=1r/m;  # XXX: how many req/minute?
server {
    listen 2636;
    location / {
        limit_req zone=slash nodelay;
        #limit_req_status 429;  #nginx 1.3.15
        #error_page 429 = @dot;
        error_page 503 = @dot;
        proxy_pass http://localhost:2635;
        # an outright `return 200` has a higher precedence over the limit
    }
    recursive_error_pages on;
    location @dot {
        proxy_pass http://127.0.0.1:2637/?ref=$http_referer;
        # if you don't have `resolver`, no URI modification is allowed:
        #proxy_pass http://localhost:2637;
        proxy_intercept_errors on;
        error_page 429 = @slash;
    }
    location @slash {
        # XXX: placeholder for your content:
        return 200 "$uri: we're too fast!\n";
    }
}
server {
    listen 2635;
    # XXX: placeholder for your content:
    return 200 "$uri: going steady\n";
}
proxy_cache_path /tmp/nginx/slashdotted inactive=1h
        max_size=64m keys_zone=slashdotted:10m;
server {
    # we need to flip the 200 status into the one >=300, so that
    # we can then catch it through proxy_intercept_errors above
    listen 2637;
    error_page 429 @/.;
    return 429;
    location @/. {
        proxy_cache slashdotted;
        proxy_cache_valid 200 60s;  # XXX: how often to get notifications?
        proxy_pass http://localhost:2638;
    }
}
server {
    # IRL this would be an actual script, or
    # a proxy_pass redirect to an HTTP to SMS or SMTP gateway
    listen 2638;
    return 200 authorities_alerted\n;
}

মনে রাখবেন যে এটি প্রত্যাশার মতো কাজ করে:

% sh -c 'rm /tmp/slashdotted.nginx/*; mkdir /tmp/slashdotted.nginx; nginx -s reload; for i in 1 2 3; do curl -H "Referer: test" localhost:2636; sleep 2; done; tail /var/log/nginx/access.log'
/: going steady
/: we're too fast!
/: we're too fast!

127.0.0.1 - - [26/Aug/2017:02:05:49 +0200] "GET / HTTP/1.1" 200 16 "test" "curl/7.26.0"
127.0.0.1 - - [26/Aug/2017:02:05:49 +0200] "GET / HTTP/1.0" 200 16 "test" "curl/7.26.0"

127.0.0.1 - - [26/Aug/2017:02:05:51 +0200] "GET / HTTP/1.1" 200 19 "test" "curl/7.26.0"
127.0.0.1 - - [26/Aug/2017:02:05:51 +0200] "GET /?ref=test HTTP/1.0" 200 20 "test" "curl/7.26.0"
127.0.0.1 - - [26/Aug/2017:02:05:51 +0200] "GET /?ref=test HTTP/1.0" 429 20 "test" "curl/7.26.0"

127.0.0.1 - - [26/Aug/2017:02:05:53 +0200] "GET / HTTP/1.1" 200 19 "test" "curl/7.26.0"
127.0.0.1 - - [26/Aug/2017:02:05:53 +0200] "GET /?ref=test HTTP/1.0" 429 20 "test" "curl/7.26.0"
%

আপনি দেখতে পাচ্ছেন যে প্রথম অনুরোধের ফলাফলটি একটি সম্মুখ-প্রান্ত এবং একটি ব্যাকএন্ড হিট হিসাবে প্রত্যাশিত হয় (আমাকে সেই জায়গাতে একটি ডামি ব্যাকএন্ড যুক্ত করতে হয়েছিল limit_req, কারণ return 200এটি সীমা ছাড়িয়ে অগ্রাধিকার গ্রহণ করবে, সত্যিকারের ব্যাকএন্ডের প্রয়োজন নেই হ্যান্ডলিং বাকি জন্য)।

দ্বিতীয় অনুরোধ সীমা ছাড়িয়ে গেছে, সুতরাং, আমরা সতর্কতা প্রেরণ করি (পেয়েছি 200), এবং এটি ক্যাশে করে, ফিরে আসছি 429(300 এর নীচে অনুরোধগুলি ধরা যায় না যে উল্লিখিত সীমাবদ্ধতার কারণে এটি প্রয়োজনীয়), যা পরবর্তীকালে সম্মুখ-প্রান্তে ধরা পড়ে , যা এখন যা করতে চাই তা বিনামূল্যে নিখরচায়।

তৃতীয় অনুরোধটি এখনও সীমা অতিক্রম করছে, তবে আমরা ইতিমধ্যে সতর্কতা প্রেরণ করেছি, সুতরাং কোনও নতুন সতর্কতা প্রেরণ করা হবে না।

সম্পন্ন! গিটহাবে এটি কাঁটাচামচ করতে ভুলবেন না!


দুটি হার সীমাবদ্ধ শর্তগুলি কি এক সাথে কাজ করতে পারে? আমি এখনই এটি ব্যবহার করছি: serverfault.com/a/869793/26763
কুইন্টিন পার

@ কুইন্টিনপার :-) আমি মনে করি এটি আপনি কীভাবে ব্যবহার করবেন তার উপর নির্ভর করবে - স্পষ্ট সমস্যাটি হ'ল শর্তটি প্রবর্তনের কোন একক স্থানে পার্থক্য করা; তবে এটি যদি একটি হয় limit_reqএবং অন্যটি একটি হয় limit_connতবে কেবলমাত্র limit_req_status 429উপরেরটি ব্যবহার করুন (খুব নতুন এনজিনেক্স প্রয়োজন), এবং আমার মনে হয় আপনার সোনার হওয়া উচিত; অন্যান্য বিকল্প থাকতে পারে (নিশ্চিতভাবে কাজ করার জন্য একটি এনজিন্স ডাব্লু / কে শৃঙ্খলিত করছে set_real_ip_from, তবে আপনি ঠিক কী করতে চান তার উপর নির্ভর করে আরও দক্ষ পছন্দ থাকতে পারে)।
সিএনএসটি

@ কুইন্টিনপার যদি আমার উত্তর থেকে কিছু হারিয়ে যায় তবে আমাকে জানান। বিটিডাব্লু, নোট করুন যে একবার সীমাটি পৌঁছে গেলে এবং আপনার স্ক্রিপ্টটি কল করা উচিত, যতক্ষণ না এই জাতীয় স্ক্রিপ্টটি এনজিনেক্স দ্বারা যথাযথভাবে ক্যাশে করা হয়, তারপরে আপনার সামগ্রীতে বিলম্ব হতে পারে; উদাহরণস্বরূপ, আপনি স্ক্রিপ্টটি অ্যাসিঙ্ক্রোনিকভাবে এমন কিছু দিয়ে প্রয়োগ করতে চাইতে পারেন golang, বা প্রবাহের সময়সীমা বিকল্পগুলি সন্ধান করতে পারেন ; এছাড়াও, proxy_cache_lock onপাশাপাশি ব্যবহার করতেও চাইবে এবং স্ক্রিপ্টটি ব্যর্থ হলে (যেমন, error_pageপাশাপাশি proxy_intercept_errorsআবার ব্যবহার করা) কী করতে হবে তার জন্য সম্ভবত কিছু ত্রুটি পরিচালনা করতে হবে । আমি বিশ্বাস করি আমার পোকি ভাল শুরু। :)
সিএনটি

এটি চেষ্টা করার জন্য আপনাকে ধন্যবাদ। আমার কাছে এখনও একটি বড় সমস্যা হ'ল আমি ইতিমধ্যে একটি http স্তরে সীমা_আরেক এবং সীমা_কন ব্যবহার করছি এবং এটি আমার কাছে থাকা সমস্ত ওয়েবসাইটের জন্য প্রযোজ্য। আমি এটিকে ওভাররাইড করতে পারি না। সুতরাং এই সমাধানটি অন্য কোনও কিছুর জন্য একটি কার্যকারিতা ব্যবহার করছে। এই সমাধানের অন্য কিছু পদ্ধতির?
কুইন্টিন পার

@ কুইন্টিনপার নেস্টেড এনজিনেক্সের দৃষ্টান্ত সম্পর্কে কী বলা যায়, যেখানে প্রত্যেকে limit_req/ / র একক সেট ব্যবহার করবে limit_conn? উদাহরণস্বরূপ, উপরের কনফিগারটিকে কেবল আপনার বর্তমান ফ্রন্ট-এন্ড সার্ভারের সামনে রেখে দিন। set_real_ip_fromআইপিগুলিকে লাইনের নিচে সঠিকভাবে গণনা করা হয়েছে তা নিশ্চিত করতে আপনি আপস্ট্রিম এনজিনেক্সে ব্যবহার করতে পারেন । অন্যথায়, এটি এখনও মানানসই না হলে, আমার মনে হয় আপনার সঠিক সীমাবদ্ধতাগুলি এবং স্পেসটি আরও স্পষ্টভাবে বলতে হবে - আমরা কোন ট্র্যাফিকের স্তরের কথা বলছি? কতবার স্ট্যাটি চালানোর প্রয়োজন হয় (1 মিনিট / 5 মিনিট / 1 ঘন্টা)? পুরানো logtailসমাধানে কী ভুল ?
সিএনটি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.