ایزابل (Issabel)

نصب و پیکربندی سیستم High Availability برای Issabel5 و Asterisk بر روی لینوکس Rocky 8

۱. مقدمه: ضرورت در دسترس‌پذیری بالا (High Availability)

در سیستم‌های تلفنی مانند ایزابل (Issabel) و آستریسک (Asterisk)، در دسترس بودن پیوسته و بدون وقفه بسیار مهم است. در دسترس‌پذیری بالا (High Availability یا به اختصار HA) تضمین می‌کند که اگر یک سرور دچار مشکل شد، سرور دیگر بدون ایجاد وقفه وارد عمل شده و ارتباطات کاربران را حفظ کند. این مکانیزم برای سازمان‌ها و کسب‌وکارهایی که نیاز به پایداری در ارتباطات دارند حیاتی است.
می توان مبحث HA را بر روی پلت فرم های ماشین مجازی انجام داد اما راه اندازی HA بر روری دو سرور لینوکسی بخصوص سیستم های تلفنی Real Time همچون استریسک یا ایزابل خیلی حیاتی و ضروری است.

۲. هدف مقاله

در این مقاله، قصد داریم با استفاده از نرم‌افزار Keepalived، یک سیستم HA برای Issabel5 بر روی Asterisk 18 در لینوکس Rocky 8 پیاده‌سازی کنیم. مراحل نصب و پیکربندی Keepalived، و تنظیمات مربوط به VRRP (Virtual Router Redundancy Protocol) برای تخصیص یک آدرس آی‌پی مجازی (Virtual IP) بین دو سرور ارائه خواهد شد.

۳. برنامه‌ها و مکانیزم‌ها

برای دستیابی به HA، از Keepalived و پروتکل VRRP استفاده می‌کنیم. Keepalived یک ابزار لینوکسی است که به کمک VRRP امکان ایجاد یک آدرس آی‌پی مجازی و انتقال خودکار ترافیک به سرورهای دیگر در صورت بروز خرابی را فراهم می‌کند.

۴. مراحل نصب و پیکربندی

مرحله اول: نصب ابزارها

برای شروع، باید ابزارهای مورد نیاز را نصب کنیم:

yum install gcc kernel-headers kernel-devel
yum install keepalived
  • gcc، kernel-headers و kernel-devel برای ساخت ماژول‌های هسته و اجرای Keepalived مورد نیاز هستند.
  • keepalived برای مدیریت HA نصب می‌شود.

مرحله دوم: پیکربندی Keepalived

بعد از نصب Keepalived، باید فایل پیکربندی /etc/keepalived/keepalived.conf را برای هر سرور ویرایش کنیم.

پیکربندی برای سرور اول (Server1):

فایل پیکربندی به شکل زیر ویرایش می‌شود:

! Configuration File for keepalived

global_defs {
notification_email {
sysadmin@mydomain.com
support@mydomain.com
}
notification_email_from lb1@mydomain.com
smtp_server localhost
smtp_connect_timeout 30
}

vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
۱۹۲.۱۶۸.۴.۲۹
}
}

 

 

توضیحات:
  • global_defs: این بخش برای تنظیمات ایمیل هشدار در هنگام تغییرات HA است. ایمیل‌ها به sysadmin@mydomain.com و support@mydomain.com ارسال می‌شوند و از lb1@mydomain.com به عنوان فرستنده استفاده می‌شود.
  • vrrp_instance: تنظیمات VRRP برای نمونه VI_1 است.
    • state: وضعیت این سرور در حالت MASTER است.
    • interface: اینترفیسی که Keepalived بر روی آن اجرا می‌شود، در اینجا eth0.
    • virtual_router_id: یک شناسه یکتا برای VRRP. باید برای هر نمونه منحصربه‌فرد باشد.
    • priority: مقدار ۱۰۱ برای اولویت بالاتر این سرور تعیین شده است.
    • virtual_ipaddress: آدرس آی‌پی مجازی که در حالت فعال بودن HA به این سرور اختصاص می‌یابد.

پیکربندی برای سرور دوم (Server2):

در سرور دوم، فایل پیکربندی مشابه سرور اول است، اما به‌جای MASTER، حالت BACKUP تنظیم می‌شود و مقدار اولویت به ۱۰۰ کاهش می‌یابد:

 

! Configuration File for keepalived

global_defs {
notification_email {
sysadmin@mydomain.com
support@mydomain.com
}
notification_email_from lb1@mydomain.com
smtp_server localhost
smtp_connect_timeout 30
}

vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
۱۹۲.۱۶۸.۴.۲۹
}
}

 

 

مرحله سوم: شروع Keepalived و تنظیمات راه‌اندازی خودکار

برای شروع Keepalived و اطمینان از اجرای خودکار آن در زمان بوت، از دستورات زیر استفاده کنید:

 

service keepalived start
chkconfig keepalived on

 

توصیه‌ها و تنظیمات اضافه

برای اطمینان از عملکرد صحیح HA، باید تنظیمات زیر را در نظر بگیرید:

  • تنظیم MASTER و BACKUP: یک سرور به عنوان MASTER و دیگری BACKUP باید تنظیم شود. در این مثال، Server1 با اولویت ۱۰۱ به عنوان MASTER و Server2 با اولویت ۱۰۰ به عنوان BACKUP تنظیم شده است.
  • اطمینان از صحت اطلاعات ایمیل‌ها: اطمینان حاصل کنید که آدرس‌های ایمیل در بخش notification_email درست و فعال هستند تا پیام‌های هشدار در صورت تغییر وضعیت به‌درستی ارسال شوند.

۵. نحوه تست سیستم HA

برای اطمینان از کارکرد صحیح، می‌توانید با قطع شبکه یا خاموش کردن یکی از سرورها، وضعیت انتقال ترافیک را بررسی کنید. در حالت عادی، سرور دوم (Backup) به‌طور خودکار وظایف سرور اول (Master) را در صورت بروز مشکل به عهده می‌گیرد. بررسی لاگ‌های سیستم در مسیر /var/log/messages نیز کمک می‌کند تا وضعیت جابه‌جایی و عملیات Keepalived را مشاهده کنید.

۶. جمع‌بندی

در این راهنما، با استفاده از Keepalived و تنظیمات VRRP یک سیستم در دسترس‌پذیری بالا برای Issabel5 و Asterisk پیاده‌سازی کردیم. با تنظیم یک آدرس آی‌پی مجازی، قابلیت دسترس‌پذیری این سیستم بهبود یافته و ترافیک به صورت خودکار بین سرورها منتقل می‌شود.

کد کامل پیکربندی

کد برای Server1:

 

! Configuration File for keepalived

global_defs {
notification_email {
sysadmin@mydomain.com
support@mydomain.com
}
notification_email_from lb1@mydomain.com
smtp_server localhost
smtp_connect_timeout 30
}

vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
۱۹۲.۱۶۸.۴.۲۹
}
}

 

 

کد برای Server2:

! Configuration File for keepalived

global_defs {
notification_email {
sysadmin@mydomain.com
support@mydomain.com
}
notification_email_from lb1@mydomain.com
smtp_server localhost
smtp_connect_timeout 30
}

vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
۱۹۲.۱۶۸.۴.۲۹
}
}

امیدوارم این راهنما به شما کمک کند تا یک سیستم HA قوی برای Issabel و Asterisk پیاده‌سازی کنید.
ویپ ایران | VOIPIRAN بزرگترین مرجع ویپ VOIP و سیستم های تلفنی و ارتباطی فارسی زبان.

حامد کوه فلاح

متخصص، برنامه نویس و مدرس Asterisk و راهکارهای نوین ارتباطی آشنایی و کار با استریسک و راهکار های مشابه از سال 1382، پایه گذاری VOIPIRAN ارائه راهکار های کدباز VOIP همچون VAAK و VOIZ و CONNEXO همکار برنامه نویسی و آموزش با پروژه های Elastix و Issabel با بیش از 3000 دانشجو از سال 1387

View Comments

    • با سلام و احترام، مقاله بالا در خصوص راه اندازی HA است و طبعتا فایل ها هم باید یکسان سازی شود که می توانید از DRBD یا rsync استفاده کنید.
      توصیه استفاده از DRBD است که مقالات زیادی هم روی اینترنت است، به زودی هم یک مقاله در خصوص سینک کردن اطلاعات قرار خواهیم داد.
      با DRBD هم می توان فایل های اساسی Databse رو منتقل کرد.

Recent Posts

حذف فایل‌های ضبط مکالمات قدیمی برای مدیریت فضای هارد دیسک در سیستم‌های تلفنی ایزابل (Issabel) و فری پی بی اکس (FreePBX)

در سیستم‌های تلفنی تحت ویپ مانند ایزابل (Issabel)، الستیکس (Elastix) و فری پی بی اکس…

1 روز ago

۱۰ محصول برتر Open Source SaaS برای متخصصین VoIP و IT: انتخابی هوشمندانه برای کسب‌وکارها

Open Source Software نقش مهمی در توسعه نرم‌افزارهای SaaS (نرم‌افزار به عنوان سرویس) داشته است.…

1 روز ago

SaaS چیست؟ بررسی جامع، مزایا

SaaS چیست؟ بررسی جامع نرم‌افزار به‌عنوان سرویس و مزایای آن در دنیای فناوری اطلاعات، مدل‌های…

6 روز ago

Softswitch چیست؟ ستون اصلی شبکه‌های VoIP و نحوه طبقه‌بندی آن‌ها

در دنیای ارتباطات راه دور و شبکه‌های VoIP، اصطلاح Softswitch یکی از مفاهیم کلیدی است. Softswitch یک سیستم نرم‌افزاری…

1 هفته ago

مدیریت Asterisk از طریق کنسول مثل یک حرفه ای: ابزارها و نکات

Asterisk به‌عنوان یکی از محبوب‌ترین پلتفرم‌های تلفن تحت شبکه (VoIP)، ابزارهای قدرتمند و متنوعی را…

2 هفته ago

آشنایی با مفاهیم FXS و FXO در سیستم‌های VoIP

در سیستم‌های تلفنی سنتی و مدرن، مفاهیمی مانند FXS و FXO نقشی کلیدی در ارتباطات آنالوگ و دیجیتال ایفا…

2 هفته ago