Co je to to Mosquitto?

15. července 2022

Co je to to Mosquitto? Oficiální stránka říká: „Eclipse Mosquitto je open source zprostředkovatel zpráv, který implementuje protokol MQTT.“

No, ale co to je a k čemu je to dobré? Uživatelé IoT hraček to pravděpodobně vědí, protože je to zřejmě nejpoužívanější program pro IoT. Tak si ho pojďme nainstalovat.

Pokud máte jako já VPS s poslední verzí OS Debian, tak instalace je velmi jednoduchá: 

apt install mosquitto

Hotovo, ale, pokud se podíváme do procesů, tak mosquitto běží, ale netstat -nap nám ukáže, že mosquitto naslouchá na IP 127.0.0.1 a portu 1883.

Takže co dál? Povolíme si port 1883 na firewallu. 

Ještě potřebujeme udělat alespoň nějakou minimální konfiguraci. Všechny konfigurační soubory jsou v /etc/mosquitto/.

Uživatelské konfigurační soubory jsou sice v /etc/mosquitto/conf.d/ ale můžeme pro naše potřeby upravit přímo ten hlavní soubor /etc/mosquitto/mosquitto.conf.

Pro naše potřeby bude stačit nakonfigurovat:

bind_address vyboh.zarea.net
log_type notice
password_file /etc/mosquitto/pwfile

Pro vlastní účely si samozřejmě musíte nastavit bind_adress na FQDN nebo IP svého stroje. Proměnnou log_type si nastavte dle vlastních preferencí, ale pro počáteční ladění je notice velmi vhodné nastavení.

Vytvoříme si uživatele zbynek pomocí příkazu mosquitto_passwd.

mosquitto_passwd /etc/mosquitto/pwfile zbynek

(heslo123)

restartujeme mosquitto:

systemctl restart mosquitto

Teď máme úplně minimálně nakonfigurovaný server s MQTT

MQTT je primárně určeno pro IoT, ale nic nám nebrání si pomocí MQTT například monitorovat stav serveru. Nainstalujeme si mosquitto-clients pomocí: 

apt install mosquitto-clients

Tak a teď si ze systému (jenom pro ilustraci) vytáhneme volnou paměť na mém VPS:

vyboh:~# free -m
               total        used        free      shared  buff/cache   available
Mem:            1967        1055         178         161         733         587
Swap:           1019         321         698

Takže vidíme, kde co máme a vytáhneme si třeba z řádku Mem 4. sloupeček, což je free memory.

free -m | grep Mem |  awk ‚{print $4}‘

Pošleme to našemu mosquitto serveru pomocí:

vyboh:~# mosquitto_pub -L mqtt://zbynek:heslo123@vyboh.zarea.net/zbynek/vps/ram/free -m "$(free -m | grep Mem |  awk '{print $4}')"

Osobně mám rád tento druh zápisu, ale můžete to poslat pomocí více parametrů. Obdobně si můžeme poslat info o použité RAM, volném swapu a obsazeném swapu:

vyboh:~# mosquitto_pub -L mqtt://zbynek:heslo123@vyboh.zarea.net/zbynek/vps/ram/used -m "$(free -m | grep Mem |  awk '{print $3}')"

vyboh:~# mosquitto_pub -L mqtt://zbynek:heslo123@vyboh.zarea.net/zbynek/vps/swap/used -m "$(free -m | grep Swap |  awk '{print $3}')"

vyboh:~# mosquitto_pub -L mqtt://zbynek:heslo123@vyboh.zarea.net/zbynek/vps/swap/free -m "$(free -m | grep Swap |  awk '{print $4}')"

Můžeme to přidat do cronu a máme údaje o tom, co se nám děje na serveru. Ale co dál? Podívejme se, co nám to vlastně dělá. Pro uživatele Windows doporučuji na hraní např. MQTT Explorer (dá se nainstalovat snadno přes Microsoft Store).

Úžasnou výhodou je, že vidíte na první pohled všechno, stačí to jenom „rozkliknout“.

 

 

No, ale hlavní silou MQTT je, že existují desítky aplikací pro mobilní telefony. Takže např. aplikace IoT MQQT Panel nám to dokáže takhle krásně grafovat:

 

Protože fantazii se meze nekladou, můžete si monitorovat jednotlivé služby, posílat si chyby z logů, restartovat služby a vůbec se ke svému VPS chovat jako k jakémukoli jinému IoT zařízení.

Jenom důsledně doporučuji zamyslet se nad zabezpečením. Protože nekomunikujete s nějakým levným IoT zařízením, tak máte dost paměti pro zabezpečenou komunikaci pomocí certifikátů (MQTT over TLS), můžete použít i klientské certifikáty pro autentizaci atd. Doporučuji nepoužívat standardní porty (za týden chodu se mi objevilo v logu pár IP co se pokoušely spojit). Za zvážení stojí i otevření konkrétní IP pro mosquitto na omezený čas např. pomocí nějakého skriptu který zavoláte z prohlížeče.

Takže na závěr snad jen popřát příjemnou zábavu.

Věděli jste, že pokud používáte VPS nebo hosting od ZONER a.s., tak nepoškozujete planetu? Ověřit si to můžete např. pomocí https://www.websitecarbon.com/

 

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *