help-header

استفاده از سیستم ارسال لاگ ابر آروان

 

هنگامی که و‌ب‌سایت و یا اپلیکیشن شما از شبکه توزیع محتوا (CDN) و امنیت ابری آروان استفاده می‌کند، ابر آروان میان بازدیدکنندگان‌تان و سرورهای اصلی - که وب‌سرورهای شما در آن‌ها قرار دارند - به‌عنوان واسطه حضور دارد. درخواست‌هایی که بازدیدکننده‌های شما می‌فرستند ابتدا به سرورهای آروان می‌رسند و سپس در صورت نیاز به سمت سرورهای اصلی شما ارسال می‌شوند.

CDN-logging.jpg

درخواست‌های بازدیدکنندگان شامل اطلاعات ارزشمندی هستند که برخی‌شان را به‌صورت تجمیع‌شده در پنل کاربری ابر آروان می‌توانید ببینید. اما این درخواست‌ها اطلاعات با ارزش دیگری نیز دارند که ممکن است برای شما به‌عنوان دارنده‌ی وب‌سایت و یا دامنه مفید باشد:

  • درخواست برای کدام مسیر از وب‌سایت شما ارسال شده است؟
  • درخواست‌دهنده از چه مرورگر و سیستم‌عاملی استفاده می‌کند؟
  • آی‌پی درخواست‌دهنده چیست؟
  • پاسخی که ابر آروان به درخواست مورد نظر داده، چه بوده؟ (HIT-MISS)

و … .

با استفاده از دریافت لحظه‌ای این داده‌ها - که به آن‌ها لاگ (Log) می‌گوییم - می‌توانید تحلیل‌های بی‌شماری روی رفتار بازدیدکننده‌ها و هم‌چنین شناسایی بازدیدکننده‌های با رفتار مخرب، انجام دهید؛ مثل:

  • شناسایی بات‌های مخرب،
  • شناسایی خزنده‌های وب (Crawler) غیرمجاز،
  • تحلیل لحظه‌ای رفتار وب‌سرور،
  • شناسایی لحظه‌ای حملات.

سیستم تجمیع و پردازش لاگ، بخشی حیاتی از CDN ابر آروان است؛ به‌گونه‌ای که قسمت‌های مختلفی از سرویس‌دهی ابر آروان به‌شکل مستقیم به این سرویس زیرساختی وابسته است. کاربران CDN ابر آروان می‌توانند با راه‌اندازی یک لاگ سرور دل‌خواه که امکان دریافت به‌وسیله‌ی SysLog را داشته باشد و انجام تنظیماتی کم در پنل ابر آروان، لاگ‌های درخواست‌های خود را به‌شکل Near Real Time دریافت کنند.

چند instance از سیستم ارسال لاگ روی سرورهای مختلف می‌توانند لاگ‌ها را به‌شکل توزیع‌شده دریافت کنند. لاگ‌های دریافت‌شده به‌شکل باینری (Cap'n Proto) هستند. برای راحتی بیش‌تر کاربران این لاگ‌ها ابتدا به JSON تبدیل می‌شوند، سپس با پروتکل SysLog به کاربران ارسال می‌شوند. ابر آروان برای ارسال به syslog از استاندارد RFC 3164 استفاده و از پروتکل‌های UDP و TCP، هم‌چنین رمزگذاری TLS پشتیبانی می‌کند.

 

تنظیمات استفاده از سیستم ارسال لاگ ابر آروان

برای راه‌اندازی سیستم ارسال لاگ در پنل کاربری ابر آروان، ابتدا نیاز است تا با ثبت تیکت درخواست فعال‌‌شدن این ویژگی را برای ما ارسال کنید. پس از فعال‌سازی، به پنل کاربری ابر آروان، محصول شبکه‌ی توزیع محتوا (CDN) بروید و پس از انتخاب دامنه، از منوی سمت راست گزینه‌ی ارسال لاگ را انتخاب کنید. در بالای صفحه دکمه فعال‌سازی را روشن کنید.

logForwarding.jpg

 

پس از فعال‌کردن این گزینه، یکی از پروتکل‌های TCP یا UDP را انتخاب کنید. با انتخاب TCP گزینه‌ی «ارتباط امن TLS» برای شما فعال می‌شود که می‌توانید لاگ‌ها را به‌شکل رمزنگاری شده دریافت کنید. در این مرحله برای حفظ امنیت داده‌ها لازم است تا کلید عمومی رمزنگاری خود را آپلود کنید، سپس فایل گواهینامه (.crt) را در کادر مربوطه وارد کنید.

تنها چند لحظه پس از ذخیره‌ی تنظیمات، ارسال لاگ به سرور شما شروع می‌شود. یک نمونه از لاگی که ابر آروان برای شما ارسال می‌کند به‌شکل زیر است:

<40> 2019-10-03T21:00:28Z logserver-1 arvancdn[8]: {
"method":"GET",
"scheme":"https",
"domain":"arvancloud.com",
"uri":"/favicons/fa/android-icon-‌‎192x192.png",
"referer":"",
"ip":"",
"ua":"Mozilla/5.0 (Linux; Android 7.0; SM-J701F Build/NRD90M) ‎AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile ‎Safari/537.36",
"country":"IR",
"asn":44244,
"content_type":"image/png",
"status":200,
"server_port":443,
"bytes_sent":9772,
"bytes_received":6,
"upstream_time":0.06,
"cache":"MISS",
"request_id":"0e34125f60fd6f‎ab90d750c35b9041bc"
}

 

همان‌طور که در لاگ بالا مشخص است، اگر قسمت‌هایی که مربوط به syslog است را کنار بگذاریم بقیه‌ی لاگ از جنس JSON است، بنابراین لاگ به سادگی قابل Parse شدن است.

در لاگ بالا می‌بینیم method درخواست از نوع GET بوده، پروتکل استفاده‌شده https است، دامنه‌ی arvancloud.com مورد هدف درخواست بوده، فایل درخواستی به آدرس و اسم favicons/fa/android-icon-‌‎192x192.png است، درخواست از کشور ایران بوده، نوع محتوای درخواستی عکس با فرمت png است. شما هم‌چنین می‌توانید اطلاعات جزیی‌تری مثل تعداد بایت‌های ارسالی و دریافتی و زمان upstream درخواست را مشاهده کنید.

 

تنظیمات سمت وب‌سرور اصلی

برای این‌که بتوانید به‌شکل داینامیک داده‌های لاگ را روی وب‌سرور خود دریافت، تبدیل و منتقل کنید، می‌توانید از ابزارهایی مثل Logstash و Rsyslog استفاده کنید.

 

نصب Logstash

این ابزار شناخته‌شده‌ترین پلتفرم تحلیل لاگ جهان است. به کمک آن می‌توانید داده‌ها را از منابع مختلفی جمع‌آوری و پردازش کنید. برای شروع لازم است بدانید بسته به سیستم‌عامل شما، روش‌های مختلفی برای نصب Logstash وجود دارد. ما در این مقاله آن را روی اوبونتو نسخه‌ی ۱۶.۰۴ با برنامه‌ی مدیریت بسته‌ی Apt نصب می‌کنیم.

پیش از نصب، مطمین شوید Java نسخه ۸ یا ۱۱ نصب باشد.

برای نصب Java از دستور زیر استفاده کنید:

sudo apt-get update
sudo apt-get install default-jre

 

شما به کلید امضا (signing key) الستیک (Elastic) نیاز دارید تا بسته‌ی دانلودشده تایید شود (اگر از پیش بسته‌هایی از Elastic نصب کرده‌اید از این مرحله رد شوید):

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key
add -

 

اکنون باید مخزن را برای سیستم تعریف کنید:

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo
tee -a /etc/apt/sources.list.d/elastic-7.x.list

 

در این مرحله باید مخزن را به‌روز کنید و Logstash را نصب کنید:

sudo apt-get update
sudo apt-get install logstash

 

پیکربندی Logstash

پیکربندی شما عمومن سه بخش دارد: ورودی‌ها، فیلترها و خروجی‌ها. ساختار پیکربندی Logstash به شکل زیر است:

#/etc/logstash/conf.d/
- apache.conf
- haproxy.conf
- syslog.conf

 

شما می‌توانید فایل پیکربندی مجزایی برای هر یک از بخش‌ها داشته باشید. هر یک از این فایل‌ها شامل ورودی‌ها، فیلترها و خروجی‌های مورد نیاز است:

input {
  tcp {
        port => 5140
        codec => json
  }
}
filter {
   grok {
            match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{GREEDYDATA:Junk}: %{GREEDYDATA:request}"}
        }
   json { source => "request" }
 
}

output {
  stdout { codec => rubydebug }
  elasticsearch {
    hosts => ["localhost:9200"]
    manage_template => false
    index => "logs-%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
  }
}

 

معرفی Rsyslog

ابزاری متن‌باز و چندسکویی است که برای مدیریت پیام‌های Log به کار می‌رود. این ابزار ورودی‌ها را از منابع مختلفی دریافت می‌کند، آن‌ها را تغییر شکل می‌دهد و خروجی‌ها را به مقصدهای مختلفی می‌فرستد. Rsyslog می‌تواند بالای یک میلیون پیام لاگ را در هر ثانیه به مقصدهای محلی (Local) برساند.

رنج آی‌پی سرورهای لاگ آروان

  93.115.150.112/28