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
-
Jak zvýšit CTR vašeho e-mail marketingu
9. září 2024 -
OpenAI představilo novou funkci ChatGPT Search
6. listopadu 2024 -
Jak lze snadno upravovat soubory v PDF?
14. září 2023 -
Rychlost serveru: Klíč k lepšímu umístění ve vyhledávačích
7. června 2024
Nejnovější
-
Jak rozšířit úložiště Macu za pětinovou cenu?
16. prosince 2024 -
Nové trendy v doménách pro osobní projekty – DIY, LIVING a LIFESTYLE
9. prosince 2024 -
Jak chránit webové stránky před Web/AI Scrapingem
27. listopadu 2024 -
Jaký monitor je nejlepší k novému Macu Mini?
25. listopadu 2024