ProblÄmu vÄsture
Mazajiem uzÅÄmumiem, no vienas puses, ir nepiecieÅ”ama kvalitatÄ«va savas infrastruktÅ«ras uzraudzÄ«ba (Ä«paÅ”i, Åemot vÄrÄ plaÅ”o virtualizÄciju), no otras puses, tiem ir finansiÄli grÅ«ti iegÄdÄties jaunas iekÄrtas. Bieži sastopamas arÄ« servera/aparatÅ«ras problÄmas: bieži blakus lietotÄju darbstacijÄm vai nelielÄ niÅ”Ä/skapÄ« atrodas 1-3 torÅu serveri.
VienkÄrÅ”Äk ir izmantot gatavu komplektu (izplatÄ«Å”anu), kas jums vienkÄrÅ”i jÄaugÅ”upielÄdÄ microSD kartÄ un jÄievieto kopÄjÄ viena borta datorÄ (bÄ«gloka, raspberry pi un orange pi saimes, asus tinker board). TurklÄt Å”Äds aprÄ«kojums ir lÄts un to var uzstÄdÄ«t jebkur.
ProblÄmas paziÅojums
DaudzÄjÄdÄ ziÅÄ projekts attÄ«stÄ«jÄs kÄ sava veida laboratorijas darbs ar iespÄju izmantot rezultÄtus.
Zabbix tika izvÄlÄta kÄ uzraudzÄ«bas sistÄma, jo tÄ ir jaudÄ«ga, bezmaksas un labi dokumentÄta sistÄma.
AkÅ«ta ir problÄma ar aparatÅ«ras platformu.AtseviŔķas maŔīnas nolikÅ”ana uzraudzÄ«bÄ arÄ« nav pÄrÄk labs risinÄjums - vai nu dÄrgi ir iegÄdÄties jaunu tehniku, vai meklÄt veco tehniku āā+ mazos uzÅÄmumos bieži ir problÄmas ar serveri/ aparatÅ«ra.
Buildroot build sistÄmas izmantoÅ”ana ļauj izveidot specializÄtus risinÄjumus, kurus var vadÄ«t personÄls ar minimÄlÄm zinÄÅ”anÄm par Linux operÄtÄjsistÄmÄm. Å Ä« sistÄma ir draudzÄ«ga iesÄcÄjiem, taÄu tajÄ paÅ”Ä laikÄ sniedz plaÅ”as pielÄgoÅ”anas iespÄjas pieredzÄjuÅ”a izstrÄdÄtÄja rokÄs. Tas ir lieliski piemÄrots IT infrastruktÅ«ras lÄtas, bet pilnÄ«bÄ funkcionÄjoÅ”as uzraudzÄ«bas problÄmas risinÄÅ”anai ar minimÄlÄm prasÄ«bÄm to apkalpojoÅ”Ä personÄla apmÄcÄ«bai.
RisinÄjuma soļi
Tika nolemts sÄkotnÄji izveidot programmaparatÅ«ru x86_64, lai tÄ darbotos qemu, jo tas ir Ärts un Ätrs risinÄjums atkļūdoÅ”anai. PÄc tam portÄjiet to uz rokas viena borta datoru (man patika asus tinker plate).
buildroot tika izvÄlÄta kÄ bÅ«vÄÅ”anas sistÄma. SÄkotnÄji tai trÅ«kst zabbix pakotnes, tÄpÄc bija jÄportÄ.. Bija problÄmas ar krievu lokalizÄciju, kuras tika atrisinÄtas, uzliekot atbilstoÅ”us ielÄpus (piezÄ«me: jaunÄkÄs buildroot versijÄs Å”ie ielÄpi vairs nav vajadzÄ«gi).
Pati zabbix pakotnes pÄrneÅ”ana tiks aprakstÄ«ta atseviÅ”Ä·Ä rakstÄ.
TÄ kÄ visam vajadzÄtu darboties kÄ programmaparatÅ«rai (nemainÄms sistÄmas attÄls + atkopjami konfigurÄcijas/datu bÄzes faili), bija nepiecieÅ”ams uzrakstÄ«t savus sistÄmas mÄrÄ·us, pakalpojumus un taimerus (mÄrÄ·is, pakalpojums, taimeris).
Tika nolemts sadalÄ«t mediju 2 sadaļÄs - sadaÄ¼Ä ar sistÄmas failiem un sadaÄ¼Ä ar mainÄmÄm konfigurÄcijÄm un zabbix datu bÄzes failiem.
Ar datubÄzi saistÄ«to problÄmu risinÄÅ”ana izrÄdÄ«jÄs nedaudz grÅ«tÄka. Es negribÄju to ievietot tieÅ”i plaÅ”saziÅas lÄ«dzekļos. TajÄ paÅ”Ä laikÄ datu bÄzes izmÄrs var sasniegt izmÄru, kas pÄrsniedz iespÄjamÄ ramdiska izmÄru. TÄpÄc tika izvÄlÄts kompromisa risinÄjums: datu bÄze atrodas SD kartes otrajÄ nodalÄ«jumÄ (mÅ«sdienu SLC kartÄm ir lÄ«dz 30 000 rakstÄ«Å”anas ciklu), bet ir iestatÄ«jums, kas ļauj izmantot ÄrÄjos datu nesÄjus (piemÄram, usb- hdd).
TemperatÅ«ras uzraudzÄ«ba tika Ä«stenota, izmantojot RODOS-5 ierÄ«ci. Protams, jÅ«s varat izmantot Dallas 1820 tieÅ”i, taÄu tas bija ÄtrÄk un vienkÄrÅ”Äk pievienot USB.
grub86 tika atlasÄ«ts kÄ x64_2 sÄknÄÅ”anas ielÄdÄtÄjs. Lai to palaistu, bija jÄuzraksta minimÄla konfigurÄcija.
PÄc qemu atkļūdoÅ”anas tas tika pÄrnests uz asus tinker dÄli. Mana pÄrklÄjuma struktÅ«ra sÄkotnÄji bija paredzÄta pÄrrobežu platformai - katrai platei specifisku konfigurÄciju pieŔķirÅ”ana (plates defconfig, bootloader, attÄla Ä£enerÄÅ”ana ar sistÄmas nodalÄ«jumu) un maksimÄla vienveidÄ«ba failu sistÄmas pielÄgoÅ”anÄ/attÄla izveidoÅ”anÄ ar datiem. Pateicoties Å”Ädai sagatavoÅ”anai, pÄrneÅ”ana pagÄja Ätri.
Ļoti ieteicams izlasīt ievadrakstus:
KÄ salikt
PÄc repozitorija klonÄÅ”anas tiek iegÅ«ta Å”Äda faila struktÅ«ra:
[alexey@comp monitor]$ ls -1
buildroot-2019.05.tar.gz
overlay
README.md
run_me.sh
buildroot-2019.05.tar.gz ā tÄ«rs buildroot arhÄ«vs
pÄrklÄjums ir mans direktorijs ar ÄrÄjo koku. Å eit tiek glabÄts viss, kas nepiecieÅ”ams, lai izveidotu programmaparatÅ«ru, izmantojot buildroot.
README.md - projekta apraksts un rokasgrÄmata angļu valodÄ.
run_me.sh ir skripts, kas sagatavo bÅ«vÄÅ”anas sistÄmu. PaplaÅ”ina Buildroot no arhÄ«va, pievieno tam pÄrklÄjumu (izmantojot ÄrÄjÄ koka mehÄnismu) un ļauj izvÄlÄties montÄžai paredzÄto plati
[0] my_asus_tinker_defconfig
[1] my_beaglebone_defconfig
[2] x86_64_defconfig
Select defconfig, press A for abort. Default [0]
PÄc tam vienkÄrÅ”i dodieties uz direktoriju buildroot-2019.05 un palaidiet komandu make.
Kad bÅ«vÄÅ”ana bÅ«s pabeigta, visi bÅ«vÄÅ”anas rezultÄti bÅ«s izvades/attÄlu direktorijÄ:
[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
NepiecieŔamie faili:
- sdcard.img - multivides attÄls ierakstÄ«Å”anai SD kartÄ (izmantojot dd vai rufus zem wibdows).
- qemu.qcow2 ā multivides attÄls, ko palaist programmÄ qemu.
- external.qcow2 - datu bÄzes ÄrÄjÄ multivides attÄls
- monitor-0.9-beta.tar.gz - arhÄ«vs atjauninÄÅ”anai, izmantojot tÄ«mekļa saskarni
Ceļvežu paaudze
Nav vÄrts vairÄkas reizes rakstÄ«t vienu un to paÅ”u norÄdÄ«jumu. Un visloÄ£iskÄkais ir to vienreiz ierakstÄ«t atzÄ«mes sadaÄ¼Ä un pÄc tam konvertÄt PDF formÄtÄ lejupielÄdei un html formÄtÄ tÄ«mekļa saskarnei. Tas ir iespÄjams, pateicoties pandoc paketei.
TajÄ paÅ”Ä laikÄ visi Å”ie faili ir jÄÄ£enerÄ pirms sistÄmas attÄla salikÅ”anas; Å”ie pÄcbÅ«ves skripti jau ir bezjÄdzÄ«gi. TÄpÄc Ä£enerÄÅ”ana tiek veikta rokasgrÄmatu paketes veidÄ. Varat apskatÄ«t pÄrklÄjumu / iepakojumu / rokasgrÄmatas.
Fails manuals.mk (kas veic visu darbu)
################################################################################
#
# 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 pasaule aktÄ«vi pÄriet uz systemd, un arÄ« man tas bija jÄdara.
Viens no patÄ«kamajiem jauninÄjumiem ir taimeru klÄtbÅ«tne. KopumÄ par viÅiem (un ne tikai par viÅiem) tiek rakstÄ«ts atseviŔķs raksts, bet es jums pastÄstÄ«Å”u Ä«si.
Ir darbÄ«bas, kas periodiski jÄveic. Man vajadzÄja palaist logrotate, lai notÄ«rÄ«tu lighttpd un php-fpm žurnÄlus. ParastÄ lieta bÅ«tu rakstÄ«t komandas cron, bet es nolÄmu izmantot systemd monotonisko taimeri. TÄtad logrotate darbojas stingri noteiktÄ laika intervÄlÄ.
Protams, ir iespÄjams izveidot taimerus, kas aktivizÄjas noteiktos datumos, bet man tas nebija vajadzÄ«gs.
Taimera piemÄrs:
- Taimera fails
[Unit] Description=RODOS temp daemon timer
OnUnitActiveSec=1 min [InstalÄt] WantedBy=timers.target
- Š¤Š°Š¹Š» ŃŠµŃŠ²ŠøŃŠ°, Š²ŃŠ·ŃŠ²Š°ŠµŠ¼Š¾Š³Š¾ ŃŠ°Š¹Š¼ŠµŃŠ¾Š¼:
```bash
[Unit]
Description=RODOS temp daemon
[Service]
ExecStart=/usr/bin/rodos.sh
AtbalstÄ«tie dÄļi
Asus tinker board ir galvenais panelis, uz kura visam vajadzÄtu darboties. IzvÄlÄts kÄ lÄts un ļoti spÄcÄ«gs.
Beaglebone black ir pirmais dÄlis, uz kura tika pÄrbaudÄ«ta darbÄ«ba (jaudÄ«gÄka dÄļa izvÄles laikÄ).
Qemu x86_64 - izmanto atkļūdoÅ”anas izstrÄdei.
KÄ tas darbojas
StartÄÅ”anas laikÄ notiek divpakÄpju iestatÄ«jumu atjaunoÅ”ana:
- palaižot skriptu settings_restore (izmantojot pakalpojumu). Tas atjauno pamata sistÄmas iestatÄ«jumus - laika joslu, lokalizÄciju, tÄ«kla iestatÄ«jumus utt.
- palaižot sagatavoÅ”anas skriptu (izmantojot pakalpojumu) - Å”eit tiek sagatavots zabbix un datu bÄze, IP tiek izvadÄ«ts uz konsoli.
Pirmoreiz startÄjot, tiek noteikts SD kartes otrÄ nodalÄ«juma izmÄrs. Ja joprojÄm ir nepieŔķirta vieta, datu nesÄjs tiek atkÄrtoti sadalÄ«ts, un datu sadaļa aizÅem visu brÄ«vo vietu. Tas tiek darÄ«ts, lai samazinÄtu instalÄcijas attÄla (sdcard.img) izmÄru. TurklÄt Å”ajÄ brÄ«dÄ« tiek izveidots postgresql darba direktorijs. TÄpÄc pirmÄ palaiÅ”ana ar jaunu pÄrvadÄtÄju bÅ«s ilgÄka nekÄ nÄkamie.
PieslÄdzot ÄrÄjo disku, startÄÅ”anas brÄ«dÄ« tas meklÄ brÄ«vu disku un formatÄ to ext4 formÄtÄ ar ÄrÄjo etiÄ·eti.
UzmanÄ«bu! PieslÄdzot ÄrÄjo disku (kÄ arÄ« to atvienojot vai nomainot), ir jÄveido dublÄjums un jÄatjauno iestatÄ«jumi!
TemperatÅ«ras uzraudzÄ«bai tiek izmantota ierÄ«ce RODOS 5. Darbam ar ierÄ«ci ražotÄjs nodroÅ”ina tÄs lietderÄ«bas pirmkodu. Kad sistÄma ir ieslÄgta, tiek palaists rodos taimeris, kas palaiž Å”o utilÄ«tu reizi minÅ«tÄ. PaÅ”reizÄjÄ temperatÅ«ra tiek ierakstÄ«ta failÄ /tmp/rodos_current_temp, pÄc kura zabbix var uzraudzÄ«t Å”o failu kÄ sensoru.
KonfigurÄcijas datu nesÄjs ir uzstÄdÄ«ts /data direktorijÄ.
StartÄjot sistÄmu un sagatavojot to darbÄ«bai, konsolÄ parÄdÄs Å”Äds ziÅojums:
System starting, please wait
PÄc sagatavoÅ”anas darba pabeigÅ”anas tas mainÄ«sies uz IP adreses rÄdÄ«Å”anu:
current ip 192.168.1.32
Ready to work
Zabbix iestatīŔana temperatūras uzraudzībai
Lai uzraudzītu temperatūru, veiciet tikai 2 darbības:
- pievienojiet RODOS ierīci USB portam
- izveidot datu vienumu programmÄ zabbix
Atveriet zabbix tīmekļa saskarni:
- Atveriet sadaļu KonfigurÄcija ā Saimnieki
- MÅ«su zabbix servera rindÄ noklikŔķiniet uz Vienumi
- NoklikŔķiniet uz Izveidot vienumu
Ievadiet Å”Ädus datus:
- nosaukums - pÄc jÅ«su ieskatiem (piemÄram, serverRoomTemp )
- Tips - zabbix aģents
- AtslÄga - Rodos
- Tips-ciparu
- VienÄ«bas ā C
- VÄstures glabÄÅ”anas periods ā vÄstures glabÄÅ”anas periods. atlikuÅ”as 10 dienas
- TendenÄu glabÄÅ”anas periods ā izmaiÅu dinamikas glabÄÅ”anas periods. AtlikuÅ”as 30 dienas
- Jauna aplikÄcija - serveris Telpas temp
Un nospiediet pogu PIEVIENOT.
PÄrvaldiet iestatÄ«jumus, izmantojot tÄ«mekļa saskarni
TÄ«mekļa saskarne ir rakstÄ«ta PHP. Ir galvenÄs funkcijas:
- apskatīt ierīces statusu
- mainīt tīkla iestatījumus
- mainot lietotÄja paroli
- laika joslas izvÄle
- dublÄÅ”ana / atjaunoÅ”ana / rÅ«pnÄ«cas atiestatÄ«Å”ana
- iespÄja pievienot ÄrÄjo disku
- SistÄmas atjauninÄÅ”ana
PieteikÅ”anÄs tÄ«mekļa saskarnÄ ir aizsargÄta ar paroli. SÄkumlapa - rokasgrÄmata.
Zabbix saskarnes adrese: ${ip/dns}/zabbix
PÄrvaldÄ«bas saskarnes adrese: ${ip/dns}/manage
SkrieŔana 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=pavedieni -ierīce virtio-scsi-pci,id=scsi0 -drive file=output/images/external.qcow2,format=qcow2,aio=pavedieni
Å Ä« komanda startÄs sistÄmu ar 4 kodoliem, 2048 RAM, iespÄjotu KVM, tÄ«kla karti uz bridge0 un diviem diskiem: vienu sistÄmai un vienu ÄrÄjo postgresql.
AttÄlus var konvertÄt un palaist Virtualbox:
qemu-img convert -f qcow2 qemu.qcow2 -O vdi qcow2.vdi
qemu-img convert -f qcow2 external.qcow2 -O vdi external.vdi
PÄc tam importÄjiet tos virtuÄlajÄ kastÄ un izveidojiet savienojumu, izmantojot sata.
SecinÄjums
Å ajÄ procesÄ man radÄs interese par lietoÅ”anai gatavu produktu izgatavoÅ”anu - ar ne pÄrÄk skaistu interfeisu (man nepatÄ«k tos rakstÄ«t), bet tÄdu, kas darbojas un ir viegli konfigurÄjams.
PÄdÄjais mÄÄ£inÄjums instalÄt zabbix-ierÄ«ci KVM parÄdÄ«ja, ka Å”is solis bija pareizs (pÄc instalÄÅ”anas pabeigÅ”anas sistÄma netiek startÄta). VarbÅ«t es daru kaut ko nepareizi š
Avots: www.habr.com