اطلاعیه

بستن
No announcement yet.

مانیتور log های سرور به صورت Real-Time با استفاده از ابزار Log.io در RHEL/CentOS 7/6

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    مانیتور log های سرور به صورت Real-Time با استفاده از ابزار Log.io در RHEL/CentOS 7/6

    log.io نرم افزاری کوچک ساده اما موثر میباشد که روی Node.js و Socket.io ایجاد شده است که به شما اجازه میدهد تا فایل های لاگ سرورهای لینوکسی را به صورت real time و از طریق interface وب آن مانیتور کنید.
    برای بزرگتر شدن عکس روی آن کلیک کنید

نام:	Log.io-Real-Time-Log-Monitoring-620x372.jpg
نمایش ها:	1
اندازه:	53.4 KB
شناسه:	19211

    این مطلب به شما کمک میکند تا این ابزار را نصب کنید و همچنین هر گونه لاگ فایل local را به صورت real-time مانیتور کنید.


    مرحله 1 :
    اضافه کردن Epel Repositories :

    1 - ریپازیتوری ها Epel سنت اوس پکیج های باینری برای Node.js و NPM - Node Packaged Modules را فراهم می آورد. نصب ریپازیتوری epel از طریق اجرای کامند زیر صورت میگیرد.

    RHEL/CentOS 7 :
    کد PHP:
    # yum install http://fedora.mirrors.telekom.ro/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm 
    RHEL/CentOS 6 :
    کد PHP:
    --------------------- On RHEL/CentOS 6.x 32 Bit ---------------------
    # yum install http://fedora.mirrors.telekom.ro/pub/epel/6/i386/epel-release-6-8.noarch.rpm

    --------------------- On RHEL/CentOS 6.x 64 Bit ---------------------
    # yum install http://fedora.mirrors.telekom.ro/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 
    برای بزرگتر شدن عکس روی آن کلیک کنید

نام:	Install-Epel-Repository-in-CentOS-620x298.jpg
نمایش ها:	1
اندازه:	41.7 KB
شناسه:	19212

    2 - بعد از افزودن ریپازیتوری epel به سیستم تان دستور زیر را اجرا کنید تا سیستم تان upgrade شود :
    کد PHP:
    # yum update 

    مرحله 2 :
    نصب پکیج های Node.js و NPM :

    3 - node.js یک پلتفرم برنامه نویسی جاوا اسکریپت میباشد که به شما اجازه میدهد تا application های شبکه ای با کاربردهای زیاد بسازید. NPM یا Node Package Manager در حقیقت یک package manager عملی برای node.js میباشد. بنابراین در مرحله بعد node.js و npm را از طریق دستور yum و با اجرای دستور زیر روی سیستم تان نصب کنید :
    کد PHP:
    # yum install npm nodejs 
    برای بزرگتر شدن عکس روی آن کلیک کنید

نام:	Install-Node-js-in-CentOS-620x327.jpg
نمایش ها:	1
اندازه:	71.1 KB
شناسه:	19224

    مرحله 3 :
    نصب و کانفیگ برنامه Log.io :

    4 - برنامه log.io باید از طریق npm و به واسطه مشخص کردن یک local valid user که از طریق آن نصب صورت پذیرد روی سیستم تان نصب شود. من به شخصه پیشنهاد میکنم که این برنامه را از طریق یوزر root و یا دیگر یوزرهای سیستم تان که دسترسی root داشته باشند نصب کنید البته این در حالیست که شما میتوانید با استفاده از هر یوزر ولید روی سیستم تان آن را نصب کنید.
    دلیل استفاده از این دستآورد این است کهlog.io باید برای خواندن log file ها به صورت local دسترسی داشته باشد و یک یوزر بدون دسترسی root معمولا قادر به دسترسی و خواندن لاگ فایل های مهم نیست.
    بنابراین با استفاده از اکانت root لاگین کرده و با اجرای دستور زیر شروع به نصب برنامه log.io میکنیم. (اگر به جای root از اکانت دیگری برای نصب استفاده میکنید دقت کنید که در دستور زیر به جای root یوزر مورد نظرتان را قرار دهید) :
    کد PHP:
    # npm install -g log.io --user “root” 
    برای بزرگتر شدن عکس روی آن کلیک کنید

نام:	Install-Log-io-in-CentOS-620x354.jpg
نمایش ها:	1
اندازه:	51.1 KB
شناسه:	19213

    5 - بعد از نصب کامل نرم افزار دایرکتوری خود را به پوشه log.io تغییر دهید که البته این پوشه مخفی میباشد و بعد از ورود به آن با لیست گرفتن میتوانید محتویات این پوشه را به منظور کانفیگ کردن نرم افزار ببینید :
    کد PHP:
    # pwd          [Make sure you are on the right path]
    # cd .log.io/
    # ls 
    برای بزرگتر شدن عکس روی آن کلیک کنید

نام:	Log-io-Files-620x226.jpg
نمایش ها:	1
اندازه:	20.0 KB
شناسه:	19214


    6 - اکنون زمان کانفیگ کردن نرم افزار برای مانیتور فایل های لاگ local به صورت real-time میباشد. ابتدا ببینیم که log.io چگونه کار میکند.

    فایل harvester تغییرات در فایل های log مخصوص را مشاهده میکند که در تنظیماتش گفته شده و خروجی آن را از طریق پروتکل socket.io tcp ارسال میکند که بعد از ان پیام ها به سرور local در log.io یا هر سرور ریموت دیگری که با ipaddress ان تعریف شده ارسال مکیند. (آدرس 0.0.0.0 روی harvesters broadcasts به تمام سرورهای در حال listen نرم افزار log.io مشخص میشود). فایل مورد نظر harvester.conf میباشد.

    سرور log.io روی تمام اینترفیس های شبکه متصل شده است.* (اگر مشخص نشده باشد در غیر اینصورت در فایل log_server.conf تعریف شده) و منتظر برای messages از node های harvester به صورت remot یا local می ماند و خروجی آنها را به سرور وب log.io ارسال میکند. (0.0.0.0 یعنی اینکه سرور برای دریافت message ها از هر harvester ریموت یا لوکالی منتظر می ماند) فایل مورد نظر log_server.conf میباشد.

    سرور وب log.io روی تمامی اینترفیس های شبکه موجود میباشد و به ارتباطات client وب روی پورت 28778 و process ها گوش میکند و message هایی که به صورت internal از سرور log.io دریافت میکنند را خروجی میدهد. فایل مورد نظر web_server.conf میباشد.

    ابتدا فایل harvester.conf را برای ویرایش باز کنید این فایل به صورت پیش فرض تنها log file های apache را مانیتور میکند و عبارت nodeName را برای match شدن hostname شما جایگزین میکند و عبارات logStreams را با آن لاگ فایل هایی که شما میخواهید مانیتور کنید مشخص میکند. (در اینجا من چندین log file مانند audit , messages و secure logs را مانیتور میکنم)
    فایل زیر را به عنوان راهنما برایتان انتخاب میکنم :
    کد PHP:
    # nano harvester.conf 
    Harvester file :
    کد PHP:
    exports.config = {
      
    nodeName"pxe-server",
      
    logStreams: {

    audit: [
          
    "/var/log/audit/audit.log"
        
    ],

    messages: [
          
    "/var/log/messages"
        
    ],

    secure: [
          
    "/var/log/secure"
        
    ]

    },
      
    server: {
        
    host'0.0.0.0',
        
    port28777
      
    }

    برای بزرگتر شدن عکس روی آن کلیک کنید

نام:	harvester-Configuration-574x450.jpg
نمایش ها:	1
اندازه:	29.2 KB
شناسه:	19215


    همچنین اگر شما نیاز ندارید که خروجی harvester به یک سرور ریموت log.io ارسال شود خط host on server را تغییر دهید به طوری که تنها خروجی اش را به صورت local و با تغییر آدرس 0.0.0.0 با آدرس lopback ارسال کند. (127.0.0.1)

    7 - به دلایل امنیتی اگر شما انتظار ندارید که harvester های ریموت به سرور local.io شما خروجی دهند فایل log_server.conf را باز کنید و آدرس 0.0.0.0 را با آدرس loopback 127.0.0.1 عوض کنید :
    کد PHP:
    # nano log_server.conf 
    برای بزرگتر شدن عکس روی آن کلیک کنید

نام:	Configure-Logs.jpg
نمایش ها:	1
اندازه:	14.4 KB
شناسه:	19216


    8 - دیگر قابلیت های امنیتی مانند credentials login , HTTPS و یا محدودیت بر اساس ip ها به سرور log.io میتوانند روی سرور وب اعمال شوند. برای این مطلب من تنها به عنوان یک معیار امنیتی فقط credentials login را استفاده خواهم کرد.
    فایل web_server.conf را باز کنید و کل عبارت auth با حذف تمامی اسلاش ها (/) و ستاره ها (*) از حالت کامنت در بیاورید و یوزر و پسورد را جایگزین کنید :
    کد PHP:
    # nano web_server.conf 
    برای بزرگتر شدن عکس روی آن کلیک کنید

نام:	Configure-Log-io-620x447.jpg
نمایش ها:	1
اندازه:	41.2 KB
شناسه:	19217


    مرحله 4 :
    اضافه کردن firewall rule و شروع نرم افزار log.io :

    9 - به منظور به دست اوردن دسترسی وب به سرور log.io رول زیر را در فایروال centos اضافه کنید تا پورت 28778 TCP باز شود :
    کد PHP:
    # firewall-cmd --add-port=28778/tcp --permanent
    # firewall-cmd --reload 
    برای بزرگتر شدن عکس روی آن کلیک کنید

نام:	Open-Log-io-Port.jpg
نمایش ها:	1
اندازه:	18.0 KB
شناسه:	19218

    نکته : کاربران RHEL/CentOS 6.x میتوانند پورت 28778 روی iptables firewal باز کنند.


    مرحله 5 :
    start نرم افزار log.io و ورود به اینترفیس وب :

    10 - برای شروع کردن نرم افزار مانیتورینگ log.io مطمین شوید که دایرکتوری جاری شما پوشه log.io کاربر root باشد و برای شروع کردن نرم افزار دستور زیر را وارد کنید :
    کد PHP:
    ------------ First start serverput it in background and press Enter key ------------
    # log.io-server & 

    ------------ Start log harvester in background ------------
    # log.io-harvester & 
    برای بزرگتر شدن عکس روی آن کلیک کنید

نام:	Start-Log-io.jpg
نمایش ها:	1
اندازه:	20.3 KB
شناسه:	19219


    11 - بعد از اینکه سرور start شد یک مرورگر باز کنید و ip سرور و به همراه آن شماره پورت 28778 را با استفاده از پروتکل http وارد کنید. بعد از ان یوزر و پسورد خود را که در مرحله 8 کانفیگ کردید وارد کنید و سپس نرم افزار log.io روی مرورگر شما نمایان میشود که به صورت real-time لاگ فایل ها را مانیتور میکند :
    کد PHP:
    http://192.168.1.20:28778 
    برای بزرگتر شدن عکس روی آن کلیک کنید

نام:	Access-Log-io-620x350.jpg
نمایش ها:	1
اندازه:	31.1 KB
شناسه:	19220

    برای بزرگتر شدن عکس روی آن کلیک کنید

نام:	Real-Time-Log-Monitoring-620x392.jpg
نمایش ها:	1
اندازه:	66.9 KB
شناسه:	19221


    روی اینترفیس وب screen های جدید اضافه کنید و stream ها یا متعاقبا node های خودتان را سازماندهی کنید.



    12 - برای متوقف کردن نرم افزار log.io دستور زیر را اجرا کنید :
    کد PHP:
    # pkill node 

    مرحله 6 :
    ایجاد اسکریپت مدیریتی log.io :

    13 - به منظور استفاده از یک کامند برای مدیریت نرم افزار log.io با سه سوییچ start , stop و status اسکریپت زیر را با نام log.io در پوشه اجرایی /user/local/ bin ایجاد کنید و پرمیژن های اجرایی را به این اسکریپت اضافه کنید :
    کد PHP:
    # nano /usr/local/bin/log.io
    # chmod +x /usr/local/bin/log.io 
    محتوای زیر را به فایل اسکریپت اضافه کنید :
    کد PHP:
    #!/bin/bash

                    
    start() {
                    echo 
    "Starting log.io process..."
                    
    /usr/bin/log.io-server &
                    /
    usr/bin/log.io-harvester &
                                             }

                    
    stop() {
                    echo 
    "Stopping io-log process..."
                    
    pkill node
                                             
    }                             

                    
    status() {
                    echo 
    "Status io-log process..."
                    
    netstat -tlp grep node
                                             
    }

    case 
    "$1" in
                    start
    )
    start
            
    ;;
                    
    stop)
    stop
            
    ;;
                    
    status)
    status
                    
    ;;
                    *)
    echo 
    "Usage: start|stop|status"
            
    ;;
    Esac 

    برای بزرگتر شدن عکس روی آن کلیک کنید

نام:	Log-io-Startup-File-512x450.jpg
نمایش ها:	1
اندازه:	28.6 KB
شناسه:	19222


    14 - برای start , stop یا نمایش وضعیت log.io ابتدا با اکانت root (یا کاربری که نرم افزار log.io تحت آن نصب شده) لاگین کنید و تنها دستورات زیر را برای مدیریت آسان نرم افزار اجرا کنید :
    کد PHP:
    # log.io start
    # log.io status
    # log.io stop 
    برای بزرگتر شدن عکس روی آن کلیک کنید

نام:	Manage-Log-io-620x242.jpg
نمایش ها:	1
اندازه:	27.1 KB
شناسه:	19223

    تمام شد! به نظر من log.io یک اپلیکیشن وب موثر و بی نظیر برای مانیتور log فایل های سرورهای remote یا local میباشد که real-time بوده و نمایش میدهد که به صورت internal چه اتفاقاتی در سیستم روی میدهد و به خصوص برای دیباگ مشکلات سرور در زمان بروز crache و یا .... بدون نیاز به استفاده از یک کنسول مفید و موثر خواهد بود.


    موفق باشید
    محمد هابیلی
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 05-21-2015, 09:09 PM.

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی

ایمیل مدیریت

Habili@linux-zone.org

در حال انجام ...
X