اطلاعیه

بستن
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 در لینوکس




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


    همچنین توصیه میشود مطالعه کنید :

    آموزش نصب و راه اندازی Splunk Log Analyzer روی CentOS 7

    آموزش نصب و راه اندازی syslog server در لینوکس



    مرحله 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 
    مانیتور کردن لاگ های سرور لینوکس




    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 
    مشاهده لاگ های سرور لینوکس






    مرحله 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” 
    لاگ سرور لینوکس




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





    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 به یک سرور ریموت 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 
    آموزش ذخیره log های سرور لینوکس





    8 - دیگر قابلیت های امنیتی مانند credentials login ,HTTPS و یا محدودیت بر اساس ip ها به سرور log.io میتوانند روی سرور وب اعمال شوند. برای این مطلب من تنها به عنوان یک معیار امنیتی فقط credentials login را استفاده خواهم کرد.

    فایل web_server.conf را باز کنید و کل عبارت auth با حذف تمامی اسلاش ها (/) و ستاره ها (*) از حالت کامنت در بیاورید و یوزر و پسورد را جایگزین کنید :
    کد PHP:
    # nano web_server.conf 
    نگهداری لاگ های سرور لینوکس






    مرحله 4 :

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

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




    نکته : کاربران 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 & 
    لاگ سرور





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



    linux log server





    روی اینترفیس وب 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 
    linux log server





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




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


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

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

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

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

ایمیل مدیریت

Habili@linux-zone.org

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