Buildroot: Að búa til vélbúnaðar fyrir vettvang með zabbix-þjóni

Buildroot: Að búa til vélbúnaðar fyrir vettvang með zabbix-þjóni

Saga vandamála

Lítil fyrirtæki þurfa annars vegar hágæða eftirlit með innviðum sínum (sérstaklega í ljósi víðtækrar sýndarvæðingar), hins vegar er fjárhagslega erfitt fyrir þau að kaupa nýjan búnað. Miðlara/vélbúnaðarvandamál eru einnig algeng: oft eru 1-3 turnþjónar við hliðina á vinnustöðvum notenda eða í litlum sess/skáp.

Það er auðveldara að nota tilbúna samsetningu (dreifingu), sem þú þarft bara að hlaða upp á microSD kort og setja í sameiginlega eins borðs tölvu (beaglebone, raspberry pi og orange pi fjölskyldur, asus tinker borð). Auk þess er slíkur búnaður ódýr og hægt að setja hann upp hvar sem er.

Samsetning vandans

Að mörgu leyti þróaðist verkefnið sem nokkurs konar rannsóknarstofuvinna með möguleika á að hagnýta niðurstöðurnar.

Zabbix var valið sem eftirlitskerfi vegna þess að það er öflugt, ókeypis og vel skjalfest kerfi.

Vandamálið með vélbúnaðarvettvanginn er orðið alvarlegt. Að setja sérstaka vél undir eftirlit er heldur ekki mjög góð lausn - annað hvort er dýrt að kaupa nýjan búnað, eða að leita að gömlum búnaði + í litlum fyrirtækjum eru oft vandamál með netþjóna/ vélbúnaður.

Með því að nota buildroot smíðakerfið geturðu búið til sérhæfðar lausnir sem hægt er að stjórna af starfsfólki með lágmarksþekkingu á Linux stýrikerfum. Þetta kerfi er vingjarnlegt fyrir byrjendur, en veitir á sama tíma næga aðlögunarmöguleika í höndum reyndra þróunaraðila. Það er fullkomið til að leysa vandamálið með ódýru, en fullkomlega hagnýtu eftirliti með upplýsingatækniinnviðum, með lágmarkskröfum um þjálfun starfsfólks sem rekur það.

Lausnarskref

Ákveðið var að búa til vélbúnaðar fyrir x86_64 í upphafi til að keyra í qemu, þar sem þetta er þægileg og fljótleg lausn fyrir villuleit. Settu það svo yfir á eins arma tölvu (mér líkaði við asus tinker borðið).

buildroot var valið sem byggingarkerfi. Upphaflega vantar það zabbix pakkann, svo það þurfti að flytja hann. Það voru vandamál með rússneska staðsetningin sem voru leyst með því að nota viðeigandi plástra (ath. í nýrri útgáfum af buildroot er ekki lengur þörf á þessum plástra).

Lýst verður sjálfum zabbix pakkanum í sérstakri grein.

Þar sem allt ætti að virka sem vélbúnaðar (óbreytanleg kerfismynd + endurheimtanlegar stillingar/gagnagrunnsskrár), var nauðsynlegt að skrifa eigin kerfismarkmið, þjónustu og tímamæla (markmið, þjónustu, tímamæli).

Ákveðið var að skipta miðlinum í 2 hluta - hluta með kerfisskrám og hluta með breytanlegum stillingum og zabbix gagnagrunnsskrám.

Að leysa vandamál tengd gagnagrunninum reyndist aðeins erfiðara. Ég vildi ekki setja það beint á fjölmiðla. Á sama tíma getur stærð gagnagrunnsins náð stærð sem fer yfir stærð mögulegs ramdisks. Þess vegna var valin málamiðlunarlausn: gagnagrunnurinn er staðsettur á annarri skipting SD-kortsins (nútíma SLC kort hafa allt að 30 skriflotur), en það er stilling sem leyfir notkun ytri miðla (til dæmis usb- hdd).

Hitamæling var innleidd í gegnum RODOS-5 tækið. Auðvitað er hægt að nota Dallas 1820 beint, en það var fljótlegra og auðveldara að stinga í USB.

grub86 var valinn sem ræsiforrit fyrir x64_2. Það var nauðsynlegt að skrifa lágmarks stillingar til að ræsa hana.

Eftir villuleit á qemu var það flutt á asus tinker borð. Uppbygging yfirlagsins míns var upphaflega ætlað að vera þvert á vettvang - úthluta stillingum sem eru sértækar fyrir hvert borð (board defconfig, ræsiforrit, búa til mynd með kerfisskiptingu) og hámarks einsleitni við að sérsníða skráarkerfið / búa til mynd með gögnum. Vegna slíks undirbúnings gekk flutningur hratt fyrir sig.

Það er mjög mælt með því að lesa inngangsgreinarnar:
https://habr.com/ru/post/448638/
https://habr.com/ru/post/449348/

Hvernig á að setja saman

Verkefnið er geymt á github
Eftir klónun geymslunnar fæst eftirfarandi skráarbygging:

[alexey@comp monitor]$ ls -1
buildroot-2019.05.tar.gz
overlay
README.md
run_me.sh

buildroot-2019.05.tar.gz - hreinsaðu byggingarrótarsafn
yfirborð er skráin mín með ytri-tré. Þetta er þar sem allt sem þú þarft til að byggja upp fastbúnaðinn með buildroot er geymt í.
README.md - lýsing á verkefninu og handbók á ensku.
run_me.sh er forskrift sem undirbýr byggingarkerfið. Stækkar byggingarrót úr skjalasafninu, festir yfirlag á það (með ytri tré vélbúnaðinum) og gerir þér kleift að velja miðborðið fyrir samsetningu

[0] my_asus_tinker_defconfig
[1] my_beaglebone_defconfig
[2] x86_64_defconfig
Select defconfig, press A for abort. Default [0]

Eftir þetta, farðu bara í buildroot-2019.05 möppuna og keyrðu make skipunina.
Þegar smíði er lokið verða allar byggingarniðurstöður í framleiðslu/myndaskránni:

[alexey@comp buildroot-2019.05]$ ls -1 output/images/
boot.img
boot.vfat
bzImage
data
data.img
external.img
external.qcow2
grub-eltorito.img
grub.img
intel-ucode
monitor-0.9-beta.tar.gz
qemu.qcow2
rootfs.cpio
sdcard.img
sys
update

Nauðsynlegar skrár:

  • sdcard.img - miðilsmynd til upptöku á SD korti (í gegnum dd eða rufus undir wibdows).
  • qemu.qcow2 - fjölmiðlamynd til að keyra í qemu.
  • external.qcow2 - ytri fjölmiðlamynd fyrir gagnagrunninn
  • monitor-0.9-beta.tar.gz - skjalasafn til uppfærslu í gegnum vefviðmótið

Kynslóð leiðsögumanna

Það er ekki þess virði að skrifa sömu leiðbeiningarnar nokkrum sinnum. Og það rökréttasta er að skrifa það einu sinni í markdown og breyta því svo í PDF til niðurhals og html fyrir vefviðmótið. Þetta er mögulegt þökk sé Pandoc pakkanum.

Á sama tíma þarf að búa til allar þessar skrár áður en kerfismyndin er sett saman; þessi forskrift eftir byggingu eru nú þegar ónýt. Þess vegna er kynslóðin gerð í formi handbókarpakka. Þú getur skoðað yfirlag/pakka/handbækur.

Manuals.mk skráin (sem vinnur allt)

################################################################################
#
# manuals
#
################################################################################

MANUALS_VERSION:= 1.0.0
MANUALS_SITE:= ${BR2_EXTERNAL_monitorOverlay_PATH}/package/manuals
MANUALS_SITE_METHOD:=local

define MANUALS_BUILD_CMDS
    pandoc -s -o ${TARGET_DIR}/var/www/manual_en.pdf ${BR2_EXTERNAL_monitorOverlay_PATH}/../README.md
    pandoc -f markdown -t html -o ${TARGET_DIR}/var/www/manual_en.html ${BR2_EXTERNAL_monitorOverlay_PATH}/../README.md
endef

$(eval $(generic-package))

systemd

Linux heimurinn er virkur að færast yfir í systemd og ég varð að gera það líka.
Ein af skemmtilegu nýjungum er tilvist tímamæla. Almennt er verið að skrifa sérstaka grein um þá (og ekki aðeins um þá), en ég skal segja þér stuttlega.

Það eru aðgerðir sem þarf að framkvæma reglulega. Ég þurfti að keyra logrotate til að hreinsa lighttpd og php-fpm logs. Venjulegt væri að skrifa skipanirnar í cron, en ég ákvað að nota systemd monotonic timer. Svo logrotate keyrir með ströngu millibili.

Auðvitað er hægt að búa til tímamæla sem kveikja á ákveðnum dagsetningum en ég þurfti þetta ekki.
Tímamælir dæmi:

  • Tímamælir skrá
    
    [Unit]
    Description=RODOS temp daemon timer

[Tímastillir] OnBootSec=1mín
OnUnitActiveSec=1mín

[Setja upp] WantedBy=timers.target

- Файл сервиса, вызываемого таймером:
```bash
[Unit]
Description=RODOS temp daemon

[Service]
ExecStart=/usr/bin/rodos.sh

Stuðlar töflur

Asus tinker board er aðalborðið sem allt ætti að virka á. Valið sem ódýrt og mjög öflugt.

Beaglebone black er fyrsta borðið sem virkni var prófuð á (við val á öflugra borði).

Qemu x86_64 - notað til að kemba þróun.

Hvernig það virkar

Við ræsingu á sér stað tveggja þrepa endurheimt stillinga:

  • keyra settings_restore forskriftina (í gegnum þjónustuna). Það endurheimtir grunnkerfisstillingar - tímabelti, staðsetningar, netstillingar osfrv.
  • keyra undirbúningshandritið (í gegnum þjónustuna) - hér eru zabbix og gagnagrunnurinn undirbúinn, IP-talan er sett út á stjórnborðið.

Þegar þú ræsir það fyrst er stærð seinni skiptingarinnar á SD-kortinu ákvörðuð. Ef það er enn óúthlutað pláss er miðlinum skipt aftur og gagnahlutinn tekur allt laust pláss. Þetta er gert til að minnka stærð uppsetningarmyndarinnar (sdcard.img). Að auki er postgresql vinnuskráin búin til á þessum tímapunkti. Þess vegna verður fyrsta sjósetja með nýjum flutningsaðila lengri en síðari.

Þegar ytri drif er tengt við ræsingu leitar það að lausu drifi og forsniður það í ext4 með ytri merkimiðanum.

Athugið! Þegar ytri drif er tengt (ásamt því að aftengja eða skipta um það) þarftu að taka öryggisafrit og endurheimta stillingarnar!

RODOS 5 tækið er notað til að fylgjast með hitastigi. Framleiðandinn gefur upp frumkóðann fyrir gagnsemi þess til að vinna með tækið. Þegar kveikt er á kerfinu fer rodos tímamælirinn í gang, sem keyrir þetta tól einu sinni á mínútu. Núverandi hitastig er skrifað í skrána /tmp/rodos_current_temp, eftir það getur zabbix fylgst með þessari skrá sem skynjara.

Stillingargeymslumiðillinn er festur í /data möppunni.

Þegar kerfið er ræst og undirbúið fyrir notkun birtast eftirfarandi skilaboð í stjórnborðinu:

System starting, please wait

Eftir að undirbúningsvinnunni er lokið mun það breytast í að birta IP tölu:

current ip 192.168.1.32
Ready to work

Uppsetning zabbix fyrir hitastigseftirlit

Til að fylgjast með hitastigi, taktu bara 2 skref:

  • tengdu RODOS tækið við USB tengið
  • búa til gagnaatriði í zabbix

Opnaðu zabbix vefviðmótið:

  • Opnaðu hlutann Stillingar → Gestgjafar
  • Smelltu á Hlutir í línunni á zabbix þjóninum okkar
  • Smelltu á Búa til hlut

Buildroot: Að búa til vélbúnaðar fyrir vettvang með zabbix-þjóni

Sláðu inn eftirfarandi gögn:

  • nafn - að eigin vali (til dæmis serverRoomTemp )
  • Tegund - zabbix umboðsmaður
  • Lykill - Rodos
  • Tegund-tölulegt
  • Einingar - C
  • Geymslutímabil sögu — geymslutímabil sögu. eftir 10 dagar
  • Stefna geymslutímabil — geymslutímabil fyrir gangverki breytinga. Eftir 30 dagar
  • Nýtt forrit - þjónn Room Temp

Og ýttu á ADD hnappinn.
Buildroot: Að búa til vélbúnaðar fyrir vettvang með zabbix-þjóni

Stjórnaðu stillingum í gegnum vefviðmót

Vefviðmótið er skrifað í PHP. Það eru helstu aðgerðir:

  • skoða stöðu tækisins
  • að breyta netstillingum
    Buildroot: Að búa til vélbúnaðar fyrir vettvang með zabbix-þjóni
  • að breyta lykilorði notanda
  • val á tímabelti
  • öryggisafrit/endurheimta/endurstilla verksmiðju
  • getu til að tengja utanáliggjandi drif
  • Kerfisuppfærsla
    Buildroot: Að búa til vélbúnaðar fyrir vettvang með zabbix-þjóni

Innskráning á vefviðmótið er varið með lykilorði. Upphafssíða - handbók.

Zabbix tengifang: ${ip/dns}/zabbix
Netfang stjórnendaviðmóts: ${ip/dns}/manage
Buildroot: Að búa til vélbúnaðar fyrir vettvang með zabbix-þjóni

Hlaupandi í qemu

qemu-system-x86_64 -smp 4 -m 4026M -enable-kvm -machine q35,accel=kvm -device intel-iommu -cpu host -net nic -net bridge,br=bridge0 -device virtio-scsi-pci,id= scsi0 -drive file=output/images/qemu.qcow2,format=qcow2,aio=threads -device virtio-scsi-pci,id=scsi0 -drive file=output/images/external.qcow2,format=qcow2,aio=threads

Þessi skipun mun ræsa kerfi með 4 kjarna, 2048 vinnsluminni, KVM virkt, netkort á bridge0 og tvo diska: einn fyrir kerfið og einn ytri fyrir postgresql.

Hægt er að umbreyta og keyra myndir í Virtualbox:

qemu-img convert -f qcow2  qemu.qcow2 -O vdi qcow2.vdi
qemu-img convert -f qcow2  external.qcow2 -O vdi external.vdi

Flyttu þá síðan inn í virtualbox og tengdu í gegnum sata.

Ályktun

Í því ferli fékk ég áhuga á að búa til tilbúna vöru - með ekki mjög fallegu viðmóti (mér líkar ekki að skrifa þau), en sem virkar og er auðvelt að stilla.

Síðasta tilraun til að setja upp zabbix-tæki í KVM sýndi að þetta skref var rétt (eftir að uppsetningu er lokið fer kerfið ekki í gang). Kannski er ég að gera eitthvað vitlaust 😉

Efni

https://buildroot.org/

Heimild: www.habr.com

Bæta við athugasemd