نصب MQTT broker در لینوکس و پیکربندی اولیه
در این پست یاد میگیریم مراحل نصب MQTT broker چگونه است و پیکربندی اولیه در لینوکس اوبونتو.
سلام .
قبلا یاد گرفتیم MQTT چیست و چه کاربردهایی داره .
اگر بخواید از Mqtt استفاده کنید احتیاج به mqtt بروکر یا همون سرور mqtt داریم .
شما میتونید از سرور های ابری استفاده کنید یا سرور شخصی خودتون رو بسازید . اگر از سرور های ابری استفاده کنید تمامی تنظیمات به صورت ساده تری به شما نمایش داده میشه ولی باید بابتش ماهیانه مبلغی رو پرداخت کنید و اگر سرور شخصی خودتون رو بسازید دست شما برای تنظیمات باز تره ولی احتیاج به پیکربندی بیشتری دارید .
من برای سرور mqtt از mosquitto استفاده کردم و از لینوکس ubuntu server هم به عنوان سیستم عامل استفاده میکنم .
نصب mqtt سرور بر روی لینوکس اوبونتو :
نصب Mqtt broker . روش اول :
در زمان نصب Ubuntu Server در قسمتی که شما امکانات مورد نیاز برای سرور رو انتخاب میکنید فقط گزینه رو انتخاب کنید و گزینه نصب رو بزنید و در زمان نصب سیستم عامل ، mqtt بروکر به صورت خودکار نصب میشه .
نصب Mqtt broker . روش دوم :
شاید شما سیستم عامل رو قبلا نصب کردید و یا از رسپری پای به عنوان سرور mqtt استفاده میکنید پس از این روش استفاده کنید .
وارد خط فرمان لینوکس بشید (از طریق SSH ) و این دستورات رو وارد کنید .
- طبق معمول همیشه اول منابع نرم افزاری سرور خودتون رو به روز کنید که اگر نسخه جدیدی از Mqtt سرور موجود باشه لینوکس شما متوجه بشه .
۱sudo apt-get update - با دستور زیر Mqtt Broker خودتون رو نصب کنید .
۱sudo apt-get install mosquitto
بعد از وارد کردن دستور بالا ، پیام تایید نصب رو به کلید y به معنی yes وارد کنید .
بعد از اتمام مراحل نصب بروکر mqtt روی سیستم نصب شده و قابل استفاده هست . برای اینکه بفهمیم آیا mqtt broker روی سرور ما اجرا شده یا نه از دستور زیر استفاده کنید .
۱ |
sudo pidof mosquitto |
با اجرای دستور بالا اگر بروکر روی سرور در حال اجرا باشه شماره pid های بروکر رو به شما نشون میده .
راه اندازی اولیه سرویس Mqtt :
Mqtt به صورت پیش فرض از پورت ۱۸۸۳:tcp استفاده میکنه .
تنظیمات فایروال لینوکس برای mqtt بروکر :
اگر از فایروال استفاده میکنید این کار رو انجام بدید .
با دستور زیر این کار رو انجام بدید .
۱ |
iptables --append INPUT --protocol tcp --dport ۱۸۳۳ --jump ACCEPT |
با استفاده از دستور بالا ورودی ها به سرور از طریق پورت tcp/1883 رو باز میکنیم .
اگر بعد از انجام مراحل نصب سرویس Mqtt به صورت خودکار اجرا نشد با دستور زیر اول رو به صورت پس زمینه اجرا کنید . در این حالت سرور شما شروع به کار میکنه اما چیزی رو به صورت محسوس نمی بینید .
۱ |
sudo mosquitto -d |
اجرای سرویس Mqtt در زمان اجرای سیستم عامل به صورت خودکار :
برای اجرای Mqtt سرور به صورت خودکار در زمان راه اندازی لینوکس باید اون رو در برنامه های اجرای خودکار اضافه کنید .
دستور زیر رو اجرا کنید تا وارد تنظیمات Cronjob بشید .
۱ |
crontab -e |
بعد از وارد کردن دستور بالا گزینه ۱ رو انتخاب کنید .
در آخر فایل باز شده دستور زیر رو اضافه کنید .
۱ |
@reboot mosquitto -d |
با کلید ترکیبی Ctrl + X فایل باز شده رو ببندید و y رو به نشانه تایید ذخیره وارد کنید .
تنظیمات اولیه Mqtt Broker :
بدون استفاده از این مرحله هم میتونید از سرور خودتون استفاده کنید و هر پیامی که به آدرس IP یا DNS-Name سرور ارسال کنید توسط سرور پذیرفته میشه . ولی توصیه میکنم این مرحله رو انجام بدید .
امن سازی Mqtt broker با رمز عبور :
در حالت عادی سرور Mqtt از نام کاربری و رمز عبور استفاده نمیکنه . برای فعال کردن این قابلیت ۳ مرحله رو باید طی کنید.
ساخت نام کاربری و رمز عبور به صورت رمزنگاری نشده :
با استفاده از ابزار mosquitto_passwd میتونید نام کاربری و رمز عبور بسازید . به مثال زیر دقت کنید .
۱ |
sudo mosquitto_passwd -c /etc/mosquitto/passwd meties |
با دستور بالا برنامه mosquitto_passwd با دسترسی مدیر سیستم اجرا میشه و فایلی در مسیر /etc/mosquitto/passwd میسازه سپس اون رو به نام کاربری meties ارجاع میده .
با اجرای دستور بالا چون دسترسی مدیر رو درخواست کردید ابتدا رمز لینوکس رو از شما میپرسه و سپس با نمایش عبارت : Password از شما رمز عبوری رو برای نام کاربری که در انتهای دستور بالا وارد کردید درخواست میکنه .
مجدد عبارت Reenter password: رو نمایش میده که رمز عبور انتخابی رو مجددا وارد کنید و تمام !
دقت داشته باشید فقط مرتبه اول استفاده از اسکریپت ساخت پسورد باید از c- استفاده کنید و برای ساخت نام کاربری و رمز عبور های بعدی نیازی به استفاده از c- نیست .
ساخت فایل تنظیمات و اعمال روی سرور :
در حالت عادی بعد از اجرای بروکر mqtt ، سرور با تنظیمات پیش فرض اجرای میشه و برای اینکه یه سری از تنظیمات پیش فرض رو تغییر بدیم نیاز به ساخت فایل conf. داریم که یک سری تنظیمات رو از حالت پیش فرض تغییر بدیم . در اینجا من از فایل default.conf استفاده میکنم که به صورت پیش فرض توسط سرور استفاده میشه ، شما میتونید هر تعداد که خواستید فایل تنظیمات بسازید و زمان اجرا اون فایل تنظیمات رو به بروکر بدید تا اجرا کنه ولی default.conf به صورت پیش فرض توسط خود سرور خونده میشه .
خوب حالا باید تنظیماتی رو انجام بدیم که کسی بدون نام کاربری و رمز عبور نتونه از سرور استفاده کنه .
فایل تنظیمات رو با دستور زیر بسازید و با ویرایشگر باز کنید .
۱ |
sudo nano /etc/mosquitto/conf.d/default.conf |
در صفحه باز شده عبارت های زیر رو اضافه کنید .
۱ ۲ |
allow_anonymous false password_file /etc/mosquitto/passwd |
خط اول برای اجازه استفاده از بروکر بدون نام کاربری و رمز عبور هست . خط دوم برای شناسایی فایل حاوی رمز عبور ها هست.
راه اندازی مجدد سرویس mqtt broker :
با دستور زیر سرویس mqtt broker رو restart کنید .
۱ |
sudo systemctl restart mosquitto |
تمام !
تست Mqtt Broker :
برای تست سیستم شما میتونید از هر client که خواستید استفاده کنید . من از یه افزونه روی گوگل کروم و یه نرم افزار روی گوشی اندرویدی استفاده میکنم .
کلاینک mqtt برای اندروید
منبع : mosquitto.org
با سلام.ممنون از اموزشتون
اگه ممکن هست راه ارتباط با وب سوکت رو هم بزارید
ممنون
سلام .حتما در آموزش های بعدی ارتباط با برنامه های مختلف رو توضیح میدم .