منبع اصلی نوشتار زیر در این لینک قرار دارد

Log.io

خیلی وقتها هست که لازمه یک سری فایل Log رو زیر نظر بگیریم. مثلا فایلهای log آپاچی، فایلهای log برای mysql و … در این موارد، من ترجیح میدم ابزاری داشته باشم که بتونم همه اینها رو به صورت همزمان ببینم و نه به کمک ابزارهایی مثل tail که خوب، ممکنه با اون یه چیزهایی رو از دست بدم.
چیزی که ازش استفاده کردم و گذشته از یک سری مشکلات، تقریبا ازش راضیم Log.io بوده که با Node.js کار میکنه . متاسفانه نصبش دردسر زیاد داره، و حتی در یک جاهایی خود اسکریپت نصب مشکلاتی داره. طوری که برای نصبش (بعد از مدتها توقف پروژه و معطلی برای ارایه نسخه جدید) مجبور شدم کلی وقت بگذارم و در نهایت هم برای آرچ یک پکیج AUR بسازم.
در حال حاضر اگر از آرچ استفاده میکنید این پکیج AUR میتونه کمکتون کنه ، اگر نه، بهتره مستندات خود Log.io رو مطالعه کنید و کمی تلاش حتما کارتون رو راه میندازه. مطالعه این پکیج AUR هم بد نیست.
– در حال حاضر، باید پکیج Node.js در آرچ downgrade بشه به ۶.۱۱ چون فعلا Log.io با این نسخه کار میکنه. علاوه بر اون، فقط نسخه git پکیج در AUR که من ساختمش درست کار میکنه اون یکی پکیج سالم نیست و کار نمیکنه. هر چی هم با نویسندش سعی کردم تماس بگیرم جواب نداد.
اما طرز کار.
بعد از نصب فایل /etc/log.io/harvester.conf رو ویرایش کنید :

/* Log.io log harvester configuration */

exports.config = {

  // Log server host & port
  server: {
    host: '127.0.0.1',
    port: 8998,
  },

  // Watch the following log files, defined by label:path mappings
  log_file_paths: {
    slowsql : '/tmp/slowquery.log',
    mysql : '/tmp/logsql.log',
    pacman : '/var/lg/pacman.log',
    apacheaccess : '/var/log/httpd/access_log',
    apacheerrors : '/var/log/httpd/error_log',
    logio_harvester: '/var/log/log.io/harvester.log'
  },

  // Define name of current machine.
  // Alternatively, you can set this name in /etc/profile:
  // export LOGIO_HARVESTER_INSTANCE_NAME='my_log_machine'
  // If so, comment out the line below
  instance_name : 'my_laptop'

}

خیلی سخت نیست. فایلهایی که لازمه تو لیست باشن رو اضافه کنید. فقط دقت کنید که دسترسی به این فایلها باید برای کاربر logio باز باشه. همین طور بد نیست که تنظیمات server که در این فایل /etc/log.io/server.conf هست رو هم مرور کنید که با نیازهاتون کاملا هماهنگ باشه :

/* Log.io log server configuration */

exports.config = {

  // Log server port
  port: 8998,

  // Uncomment to enable basic HTTP authentication
  /*
  basic_auth: {
    username: "foo",
    password: "bar"
  }
  */
}

خوب تقریبا همه چی تمومه. کافیه که هم سرور و هم harvester اجرا بشن .

sudo log.io server start
sudo log.io harvester start

البته ممکنه که سرور یه سیستم دیگه باشه و harvester روی یک سیستم دیگه. به عبارتی Log.io میتونه به شما کمک کنه که اطلاعات رو حتی از روی شبکه و ماشینهای دیگه خودتون جمع آوری کنید.
بعد از اینکار، فقط کافیه که مرورگر مورد علاقتون رو باز کنید و آدرس رو باز کنید :


http://localhost:8998/

– حواستون به تنظیمات سرور و پورتی که اونجا هست باشه.
نتیجه میشه این :


– شاید براتون جالب باشه که چطور میشه کوئری های انجام شده در mysql رو هم اینجا دید. فایل تنظیمات mysql رو باز کنید (فایل my.cnf معمولا و بسته به دیستروی شما جاش متغیره خودتون پیداش کنید ) قسمت mysqld رو پیدا کنید و اینها رو بهش اضافه کنید

# The MySQL server
[mysqld]
# Set All query Log
log=/tmp/logsql.log
# Set Slow Query Log
long_query_time = 1
slow_query_log = 1
slow_query_log_file = /tmp/slowquery.log 

البته اون [mysqld] خودش هست و شما نباید اون رو اضافه کنید. قبل از اجرای log.io دسترسی این دو فایل رو تغییر بدید طوری که logio هم بتونه اونها رو بخونه.



برچسب ها : , , , , ,