Container Station a QNAP TS-453D-n: így futtatok 15 percenként speedtestet Dockerben

Ahogyan azt a korábbi, a QNAP TS-453D-ről szóló cikkem végén már említettem, külön akartam szót ejteni a Container Station-ről, amivel LXC és Docker konténereket futtathatunk a NAS-unkon, ezzel további funkcionalitást adva az eszköznek. Pont ez a lehetőség jött kapóra akkor, amikor egy érdekes hibába belefutva derült ki, hogy az egyébként gigabites internet kapcsolatom a hivatalosan garantált minimumot sem teljesíti, hanem maximum 200 Mbit környékét tudja hozni.

Ez végül a szolgáltatónál meglévő problémából adódott, amit a szokásos 72 órán belül szerencsére orvosoltak is, de ha nem futok bele abba, hogy Ethernet-kábellel kell tesztelnem egy adott gépet, ami utána sehogyan sem hozta az elvárt sávszélességet, valószínűleg sokkal később veszem észre. Ezért, és mivel szeretem, ha egy grafikonon láthatom, mi a helyzet, feltettem a NAS-ra Docker konténerként egy speedtestet, ami 15 percenként futtat egy tesztet, és erről Slacken keresztül push-ban is értesít, ha az eredmény 700 Mbit-nél alacsonyabb, illetve naponta egyszer küld egy áttekintést az elmúlt 24 óráról.

A Container Station segítségével, ahogy az fentebb már olvasható, LXC és Docker konténereket futtathatunk a NAS-on, egyszerre akár többet is, kibővítve az eszköz funkcionalitását. Ehhez első lépésként telepítenünk kell a NAS-ra az App Centerből a QTS Essentials illetve a Segédprogramok alatt megtalálható Container Station-t:

Ezután indítsuk el a Container Station-t. Válasszuk bal oldalt a Létrehozás opciót, majd pedig írjuk be a kereső mezőbe a speedtest kulcsszót, és nyomjunk entert. Itt a Docker Hub fülön fogjuk megtalálni a szükséges konténert. Én itt többet is megnéztem, mire letettem a voksomat a henrywhitaker3 nevű felhasználó által készített változat mellett.

A kiválasztott konténer esetén nyomjunk rá a Telepítés gombra, és válasszuk ki a kívánt verziót, amiből a legtöbb esetben csak egy lesz, a latest.

A Következő gombra kattintva még el kell fogadnunk, hogy ezeket az alkalmazásokat értelemszerűen a saját felelősségünkre telepítjük és használjuk.

A következő lépésben megadhatunk egyedi nevet a konténernek, és beállíthatjuk azt is, hogy a NAS erőforrásaiból mennyit használhasson, processzorra és memóriára vonatkozóan, illetve hogy automatikusan elinduljon-e vagy sem. Ha mindent beállítottunk, akkor nyomjunk a Létrehozás gombra.

Mivel egy speedtestnek nem kell túl sok erőforrás, így én a processzor esetén 10%-ot, a memória esetén pedig 2048 MB-ot adtam neki, ami bőven elég neki. Ezután az Áttekintés alatt már láthatjuk is a futó konténert, és az általa használt erőforrásokat:

Itt a konténer nevére kattintva megnyithatjuk annak a részleteit, többek között láthatjuk azt, hogy milyen URL-en keresztül érhetjük el (ez nyilván a NAS IP-je lesz egy megadott porttal), illetve a konténer erőforrás-használatát, valamint a konzol kimenetét is:

A Beállítások gombra nyomva utólag is tudjuk módosítani a konténer beállításait, és a speedtest működéséhez a speciális beállításokat megnyitva még van teendőnk.

A bal oldali listában a Környezet esetén a legfontosabb környezeti változó megadása elengedhetetlen, ez pedig az OOKLA_EULA_GDPR, aminek true értéket kell adnunk, enélkül ugyanis nem fog lefutni a speedtest.

A másik opció, amit egyébként már később, a speedtest saját beállítási felületén is megadhatunk, a SLACK_WEBHOOK, ezzel a Slacken keresztül még push értesítéseket is kaphatunk a lefutott tesztek értékeivel, amit különböző feltételeket megadva még testre is tudunk szabni. A Slack webhook beállításának lépéseit itt írja le a Slack: Sending messages using Incoming Webhooks.

Ennek működéséhez telepítve kell legyen a Slack app az iPhone-unkon például:

Slack
  • Slack
  • Méret: 166.78 MB | Verzió: 21.04.10
  • Ár: Ingyenes | Értékelés:

Most pedig nyissuk meg a konténer URL-jét (ezt fentebb a beállításaiban már láthattuk), és görgessünk le az oldal alján a Settings részig, ahol még van pár opció, amit érdemes beállítani.

A Schedule alatt adhatjuk meg a cron számára megfelelő formátumban, hogy milyen időközönként fusson le a speedtest. Mivel én ezt 15 percre tettem, így annak a megfelelője az alábbi lett:

*/15 * * * *

A Server esetén egy vesszővel elválasztott listában felsorolhatjuk azoknak a szervereknek az azonosítóját, amelyeket a teszt esetén használni szeretnénk. Ha itt nem adunk meg semmit, akkor a speedtest automatikusan választ egy szervert. Ezzel nekem az volt a problémám, hogy nem adott stabil eredményt, hanem folyamatosan ugrált a mért érték a használt szervertől függően, így sokkal több értesítés érkezett, mint az szükséges lett volna. Ezért, és mivel egyébként is Telekom előfizetésem van, így az ő szerverük azonosítóját állítottam be itt, ami ebben az esetben a következő:

2073

Az egyes szerverek azonosítóját a Speedtest oldalán az adott szerver neve fölé vitt egérmutatóval a legtöbb böngésző rögtön megmutatja – vagy pedig a névre “jobbklikkel” kattintva a link másolása után annak legvégén találjuk (server_id=):

A Notifications alatt állíthatjuk be értesítések feltételeit, amit elég szépen testre lehet szabni. Én az alábbi beállításokat használom: napi egy alkalommal jön egy összesítés az elmúlt 24 óra átlagáról, illetve amennyiben 700 Mbit alá esik a letöltés és a feltöltés közül bármelyik, akkor arról szintén küld egy értesítést. A ping értéke igazából nekem nem létkérdés, azt most feljebb is vettem, mert nem szokott egyébként gond lenni vele.

Ha ezeket mind beállítottuk, akkor pedig igazából nincs más teendőnk, mint várni, hogy szépen elkezdjenek gyűlni a statisztikák, amik pár nap után már egész szép grafikont rajzolnak ki:

A fentiek természetesen nem csak QNAP NAS és Container Station esetén használhatóak, hanem gyakorlatilag bármi más esetben, ahol Docker konténert tudunk futtatni. Speedtestet tartalmazó konténerből egyébként elég sok van, nekem a fenti változat grafikonjai tetszettek meg, ezért választottam pont ezt.

Kérdésed van? Tedd fel hozzászólásban, és igyekszem rá válaszolni!

Ezek még érdekelhetnek:


Népszerű hozzászólások

  1. Synology DS1817-en nem tudom működésre bírni. Nem vagyok egy docker szaki, esetleg lenne ötleted?

  2. Sorry, de akkora magaslabda a Dyson után: ez nem tartozik a Apple-höz. :smiley:

    Ezek alapján egyébként olyan mintha maga a Docker maga nem tudna nethez csatlakozni.

  3. szorian says:

    én nem vagyok annyira suta a dockerben feltettem már egy két dolgot de ez nem működik a synologyn nálam sem DS415+

  4. szorian says:

    különben szerintem a telekom nem stabil nas-on én azt tapasztalom hogy az antenna hungária sokkal jobb.

  5. szorian says:

    azt is próbáltam de folyamatosan leáll és újraindul de a webes beállítás be sem jön hiába írom be a jó portot nem reagál semmire.

  6. Számítottam erre. Ez legalább IT-hoz közel van, ne hasonlítsuk ezt egy hajvasalóhoz. :slight_smile:

  7. Probaltam keresgelni leirast, de nem lelek semmit sehol. Még kuzdok vele :slight_smile:

  8. szorian says:

    én sem találok semmit róla pedig nézem. Neked is folyamatosan újra indul és a beállított proton nem található semmi gui felület se a http se https-en. ez azért elég vicces.

  9. Jadeye says:

    én ezt sajnos passzolom, én ugye QNAP esetén csináltam meg, ott nem volt ezzel gond.

    a connection reset by peer viszont szerver oldali hibának tűnik nekem.

  10. szorian says:

    egyenlőre ennyit találtam de ha terminálon belépek a nasra ssh root és a docker konténer mappához majd beírom wget akkor nincs url azt mondja:
    Umm. I don’t think so. I login to docker container and run the wget and resulting the same thing. However, I install the wget and ca-certificate the issue solved

  11. Jadeye says:

    mármint csak annyit írsz be önmagában, hogy “wget”, hogy ellenőrizd, van-e fent egyáltalán wget? a ca-certificate is fent van?

  12. szorian says:

    igen annyit írok csak be. viszont azt nem tudom hogy hogyan tudnám installálni .ezt írja szerintem hibáknak unable site/app/bin/speedtest and wget says connection reset by peer.

  13. szorian says:

    Docker compose telepítést csináltam a leírás alapján de valami nem működik a synology dockerben. ez a compose file: a 2 ID-t megváltoztattam hogy ne rakjam ki publikumra ide.
    version: ‘3.3’
    services:
    speedtest:
    container_name: speedtest
    image: henrywhitaker3/speedtest-tracker
    ports:
    - 8765:80
    volumes:
    - /volume3/docker/speedtest/config:/config
    environment:
    - TZ=Europe/Budapest
    - PGID=10
    - PUID=10
    - OOKLA_EULA_GDPR=true
    - DSM_HOSTNAME=felhonas
    network_mode: bridge
    logging:
    driver: “json-file”
    options:
    max-file: “10”
    max-size: “200k”
    restart: unless-stopped

  14. Jadeye says:

    a wget önmagában nem elegendő, az csak egy parancs, ha nem mondod meg neki, hogy mit töltsön le és honnan, tehát nem paraméterezed, az olyan, mintha odaadnád a postás kezébe a levelet, de nem lenne rajta címzés és bélyeg.

    nem tudom sajnos, hogy a Synology esetén miért nem megy, a Docker az ugyanúgy Docker. mivel nincs Synology eszközöm, így sajnos megnézni sem tudom, mi lehet.

  15. szorian says:

    nyilván magának a konténernek kellene paraméterezni a letöltést a wget-nek mivel én nem állítottam ezzel kapcsolatba semmit azt se tudom, hogy hol kell.

  16. Jadeye says:

    ezt totál passzolom, nekem a Container Station simán letöltötte. mit csinál a NAS, ha ezt dobod be neki SSH-n?

    docker pull henrywhitaker3/speedtest-tracker

  17. szorian says:

    megcsináltam
    mondom a megoldást ahová létrehoztad a konténert ott a file kezelőben meg kell keresni a copfig/www/app/Bin mappát ahová le kell tölteni ssh-n keresztül ezt a felet amit az előbb is linkeltem: wget https://bintray.com/ookla/download/download_file?file_path=ookla-speedtest-1.0.0-x86_64-linux.tgz -O speedtest.tgz majd utána kicsomagolni a tgz-t ami tar lesz azt is kicsomagoltam és utána fut szalad már csak be kell konfigurálnom ha azt szeretném hogy óránként csináljon tesztet akkor hogy kell beállítani ?

  18. szorian says:
    • */1 * * * ez a kód megfelelő ha azt akarom hogy óránként csinálja?
      amit nem értek az a notification beállítás próbáltam a telegrammot de az nem megy amit meg te állítottál be nekem az kínai. abba esetleg tudsz segíteni hogyan kellene?
  19. Köszi! Alakul :slight_smile:

    a config/www/app/Bin eddig létre sem jött. Docker-compose paranccsal telepítettem, így már igen. Wget leszedte a speedtest.tgz filet, ami a Bin mappában leledzik, “tar zxfv speedtest.tgz” paranccsal kicsomagoltam.

    Ezt nem értem: “majd utána kicsomagolni a tgz-t ami tar lesz azt is kicsomagoltam és utána fut szalad”

    Most már elérhető a weboldal, de nem mér semmit. Kellene mókolni a beállításokban?

    Logban:

  20. Jadeye says:

    nem állítottad be neki, hogy az EULA el van fogadva.

  21. Jadeye says:

    de ott írja, hogy environment variable-ként meg kell adnod az OOKLA_EULA_GDPR-t true értékkel, ahogy ezt a cikkben is külön kiemeltem, mert enélkül nem fog menni. hogy ezt a Synology esetén hogyan tudod megtenni, azt nem tudom, biztosan kellenek legyenek beállításai a konténernek, és azok között kell lennie. mivel a QTS és a DSM nagyrészt hasonlóan néz ki, feltételezem, hogy a Synology-n a Docker felülete is hasonlíthat a QNAP Container Station-jéhez. ha nem, akkor totál passz, de nézz szét a beállításaiban, biztosan meg kell találnod.

  22. Igen de az utolso kepen pont azt szimulaltam, hogy mit ir akkor ha nincs beallitva. En beallitottam igy a gdpr-re nem is panaszkodik. Hanem a licensre…

  23. szorian says:

    Én simán a nason belül a file kezelőben nyomtam jobb egerrel a kicsomagolás ide. lehet ezért kellett 2x csomagolni. Ha a docker-compose moddal telepítetted úgy csináltad ahogy a compose tipust telepíteni kell? csináltam tegnap egy leírást nézd meg ha nem megy én törölnék minden képet ezzel kapcsolatban a dockerben és a konténert majd a config belső mappából mindent hogy üres legyen a speedtest mappába raknám a docker-compose.yml filet és ujra raknám itt egy leírás és a text formátumba a compose szerkesztés után ami a saját paramétered át kell nevezni.yml-re.
    leírás doc
    compose
    a speedtest.tar is ki kell csomagolni a BIN alá azt irtam. a tgz-ből lesz tar és atar.ban ott az ami kell nálam így ment

  24. Huh, mindent úgy csináltam, ahogy írtad, előtte is. De most újra végig, mindent a nulláról. Valóban a NAS jobbgomb kicsomagolásnál kétszer kell mert tar lett belőle. a tar parancs ssh-ban egylépésben megcsinálja valami miatt. Gondolom sejti, hogy úgyis ki kell csomagolni :smiley:

    Továbrbra is azt írja a logban, hogy speedtest --accept-license paraméterrel indítsam el. Nem értem.

  25. szorian says:

    lehet hogy ezt a parancsot érdemes lefuttatni a docker/speedtest mappába docker exec -it {docker_name} nyilván a zárójelbe írd be a docker nevét az valószínüleg a speedtest lesz. ezt még megcsináltam az kimaradt lehet hogy ez a gond

  26. Ez a parancs mit csinál?

    Közben megoldottam, de ez már a vaktában lövöldözés esete volt, ész nélkül, csak próbálkozás.
    Ebben a fileban, van egy rész ahol meghívja és felparaméterezi a speedtest-et.

    Itt a parancs:

    Na kínomban itt kitöröltem az --accept-license részt, és újraindítottam, és csodák csodája, elindult és rögtön mérni kezdett. Visszanéztem a fileba, de addigra visszaírta ezt ide, és azóta működik…

  27. szorian says:

    ez a parancs ad neki jogot ezt írták nekem tegnap a fejlesztők de ez még nem oldotta meg a problémát mert akkor még le sem volt töltve a tgz file…

  28. szorian says:

    A Notificationt nem tudom megoldani, ha abba valakinek lenne valami jó leírása az jól jönne. Amit eddig csináltam készítettem magamnak egy bot-ot a telegramban, ennek az api ID-ját bemásoltam a speedtestbe, majd a chat ID-t a chat ID helyére, de nem küld a tesztre sem semmi üzenetet. Lehet, hogy a program bug-os de már mindent próbáltam. Amit @Jadeye írt azt néztem de nem értem hogy az hogyan miként működik, biztos pont valami lényegest nem értek meg benne.

  29. Jadeye says:

    a Telegram bot nekem sem funkcionált, a Slack meg rendben ment. létrehoztad a Slack leírása alapján a webhook URL-t, és fent van a Slack app a készülékeden, amibe be vagy lépve ugyanazzal a Slack fiókkal?

  30. szorian says:

    na ezt nem tudtam hogy kell egy app a telefonra. megpróbálok összehozni egy url-t aztán letesztelem. sose használtam ilyet. a tekegrammot próbáltad a követelményeknél is megadni vagy csak a webes felületen?

  31. Jadeye says:

    mindenhogy próbáltam a Telegramot. már nem tudom pontosan, mi volt a baja, de cserébe a Slack azonnal működött.

  32. szorian says:

    Na sikerült megoldani a Slack-et az működik tényleg. köszi az infót, az hogy kell egy app hozzá az sokat segített:-)

  33. Jadeye says:

    na akkor beleírom egy fél mondattal a cikkbe a biztonság kedvéért, ha más is belefutna. :smiley:

  34. Megoldottam a telegram értesítést. a chat ID volt a gond és ezen leírás alapján megtaláltam a megfelelő chat ID-t és így már megy. Nyilván kell egy bot de így már jó.

    Vagy itt is megkereshető ha érdekel valakit: Get Telegram Chat ID. How to get a Chat ID of a Telegram… | by Sean Bradley | Medium

A Szifon.com-on megváltozott a hozzászólás rendszer, ezentúl az alábbi gombra kattintva tudsz véleményt alkotni. Bővebben itt olvashatsz erről.

Kérdésed lenne? Megosztanál valamit a többi olvasóval? Használd az új közösségi portálunkat!