⏱ O‘qish vaqti: 2 daqiqa
Qisqacha
- Container rejimini yoqish
- veth va bridge yaratish
- NAT va port forward sozlamalari
- ThingsBoard imidjini yuklab, ishga tushirish
- MQTT brokerini qo‘shish
Ko‘plab IoT loyihalarida alohida server qurilmasi kerak bo‘ladi. MikroTik RouterOS 7.8+ versiyasida container funksiyasi yordamida bu serverni router ichida ishga tushirish mumkin. Bu maqolada ThingsBoard tb‑postgres imidjini MQTT/HTTP broker sifatida qanday o‘rnatish ko‘rsatiladi.
Talablar
- RouterOS 7.8 yoki undan yuqori
- container paketi o‘rnatilgan
- kamida 8 GB disk va 1 GB RAM
- x86 yoki arm64/amd64 arxitektura (arm32‑bit qo‘llab‑quvvatlanmaydi)
- Administrator huquqi
Sozlash bosqichlari
1. Container rejimini yoqish
RouterOSda container funksiyasini faollashtirish uchun system/device-mode/update buyrug‘i ishlatiladi. Bu qadam container rejimini yoqadi va qurilmani qayta yuklash talab qilishi mumkin.
/system/device-mode/update container=yes
2. veth interfeysini qo‘shish
interface/veth/add buyrug‘i yordamida veth1 nomli virtual interfeys yaratiladi va 172.18.0.2/24 manziliga tayinlanadi. Bu interfeys container ichidagi tarmoq bilan bog‘lanadi.
/interface/veth/add name=veth1 address=172.18.0.2/24 gateway=172.18.0.1
3. Bridge yaratish va veth qo‘shish
interface/bridge/add bilan dockertb bridge yaratiladi, unga 172.18.0.1/24 IP beriladi, keyin bridge/port add orqali veth1 bridgega qo‘shiladi. Bu containerga lokal tarmoqni taqdim etadi.
/interface/bridge/add name=dockertb
/ip/address/add address=172.18.0.1/24 interface=dockertb
/interface/bridge/port add bridge=dockertb interface=veth1
4. NAT masquerade sozlamasi
ip/firewall/nat/add qoidasi srcnat chainda 172.18.0.0/24 manzilidan chiqqan trafikni maskalash uchun qo‘llaniladi, bu containerning internetga chiqishini ta’minlaydi.
/ip/firewall/nat/add chain=srcnat action=masquerade src-address=172.18.0.0/24
5. HTTP portini DNAT qilish
ip firewall nat add qoidasi orqali routerning lokal IP manzilida 9090 portini container ichidagi 172.18.0.2:9090 ga yo‘naltiriladi. Bu ThingsBoard veb‑interfeysiga mahalliy tarmoqdan kirish imkonini beradi.
/ip firewall nat add action=dst-nat chain=dstnat dst-address=192.168.88.1 dst-port=9090 protocol=tcp to-addresses=172.18.0.2 to-ports=9090
6. MQTT portini DNAT qilish
Xuddi shunday, 1883 TCP porti routerning lokal IP manzilidan container ichidagi 172.18.0.2:1883 ga yo‘naltiriladi, bu MQTT brokeriga ulanishni ta’minlaydi.
/ip firewall nat add action=dst-nat chain=dstnat dst-address=192.168.88.1 dst-port=1883 protocol=tcp to-addresses=172.18.0.2 to-ports=1883
7. ThingsBoard imidjini sozlash va ishga tushirish
Avvalo container/envs/add bilan TB_QUEUE_TYPE muhit o‘zgaruvchisi “in-memory” ga o‘rnatiladi, keyin container/mounts/add bilan ma’lumot va log kataloglari mount qilinadi, container/config/set orqali registry URL, tmpdir va ram-high limitlari belgilanadi. So‘ng container/add buyrug‘i yordamida thingsboard/tb-postgres:latest imidji veth1 interfeysiga, yaratilgan mount va env ro‘yxatiga ulanadi, logging yoqiladi. Oxirida container/start buyrug‘i bilan container ishga tushadi.
/container/add remote-image=thingsboard/tb-postgres:latest interface=veth1 root-dir=ThingsBoard mounts=mytb-data,mytb-logs envlist=tb_envs logging=yes
8. ThingsBoard MQTT brokerini qo‘shish
iot/mqtt/brokers/add buyrug‘i yordamida broker nomi tb, manzil 172.18.0.2, port 1883 va YOUR_TOKEN foydalanuvchi nomi bilan qo‘shiladi. Bu broker orqali RouterOS statistik ma’lumotlarini ThingsBoardga yuborish mumkin.
/iot/mqtt/brokers/add name=tb address=172.18.0.2 port=1883 username=YOUR_TOKEN
Tekshirish
Routerning lokal IP manzilida (masalan 192.168.88.1) brauzerda http://192.168.88.1:9090 manzilini oching – ThingsBoard boshqaruv paneli ko‘rinishi kerak. MQTT brokeriga ulanishni tekshirish uchun MQTT client bilan 172.18.0.2:1883 ga ulanib, tokenni foydalanuvchi nomi sifatida ishlating.
Diqqat:
- 8 GB disk bo‘sh joy va kamida 1 GB RAM tavsiya etiladi; kamroq xotira bilan ishlashda muammolar yuzaga kelishi mumkin
- ThingsBoard imidji faqat linux/arm64 va linux/amd64 arxitekturalarida mavjud, arm32‑bit qurilmalarda ishlamaydi
- RouterOS 7.8‑dan eski versiyalarda container funksiyasi yo‘q; yangilash zarur
- Mahalliy tarmoqdan tashqarida HTTP portini ochiq qoldirish xavfsizlikka tahdid soladi – HTTPS ga o‘tkazish va standart bo‘lmagan portlardan foydalanish tavsiya etiladi
Xulosa
Ushbu qadamlar orqali MikroTik routerda ThingsBoard MQTT/HTTP serverini container sifatida ishga tushirishingiz mumkin. Endi RouterOS statistik ma’lumotlarini IoT platformasiga uzatib, vizualizatsiya qilishingiz mumkin.
Manba: Container – ThingsBoard MQTT/HTTP server — help.mikrotik.com
