Moolelo pilikia
ʻO nā ʻoihana liʻiliʻi liʻiliʻi, ma ka ʻaoʻao hoʻokahi, pono ka nānā ʻana i ke kūlana kiʻekiʻe o kā lākou ʻoihana (ʻoi aku ka nui o ka virtualization ākea), ma ka ʻaoʻao ʻē aʻe, he paʻakikī kālā no lākou ke kūʻai aku i nā lako hou. He mea maʻamau nō hoʻi nā pilikia o ka server/hardware: he 1-3 mau kikowaena hale kiaʻi ma kahi o nā keʻena hana hoʻohana a i ʻole ma kahi niche liʻiliʻi.
ʻOi aku ka maʻalahi o ka hoʻohana ʻana i kahi hui i hoʻomākaukau ʻia (māhele), pono ʻoe e hoʻouka i kahi kāleka microSD a hoʻokomo i loko o kahi kamepiula papa hoʻokahi (beaglebone, raspberry pi a me nā ʻohana pi alani, asus tinker board). Eia kekahi, he mea maʻalahi ia mau mea hana a hiki ke hoʻokomo i nā wahi āpau.
Ka hoʻokumu ʻana i ka pilikia
Ma nā ʻano he nui, ua hoʻomohala ʻia ka papahana ma ke ʻano he ʻano hana ʻoihana me ka hiki ke hoʻohana i nā hopena.
Ua koho ʻia ʻo Zabbix e like me ka ʻōnaehana nānā no ka mea he ʻōnaehana ikaika, manuahi a paʻa pono.
ʻO ka hoʻopuka ʻana i kahi mīkini kaʻawale ma lalo o ka nānā ʻana, ʻaʻole ia he hopena maikaʻi loa - he kumukūʻai paha ke kūʻai ʻana i nā mea hana hou, a i ʻole ke ʻimi ʻana i nā mea kahiko + i nā ʻoihana liʻiliʻi he pilikia pinepine me ka server/ lako lako.
Ke hoʻohana nei i ka buildroot build system e hiki ai iā ʻoe ke hana i nā hoʻonā kūikawā hiki ke hana ʻia e nā limahana me ka ʻike liʻiliʻi o nā ʻōnaehana hana Linux. He mea aloha kēia ʻōnaehana i ka poʻe hoʻomaka, akā i ka manawa like e hāʻawi i nā manawa hana maʻamau i nā lima o kahi mea hoʻomohala ʻike. He kūpono ia no ka hoʻoponopono ʻana i ka pilikia o ka inexpensive, akā ke nānā pono nei i ka ʻōnaehana IT, me nā koi liʻiliʻi no ka hoʻomaʻamaʻa ʻana i nā limahana e hana ana.
Nā ʻanuʻu hoʻonā
Ua hoʻoholo ʻia e hana mua i ka firmware no x86_64 e holo i ka qemu, no ka mea he hopena kūpono a wikiwiki kēia no ka debugging. A laila e hoʻokomo i kahi kamepiula papa hoʻokahi lima (makemake wau i ka papa tinker asus).
Ua koho ʻia ʻo buildroot e like me ka ʻōnaehana kūkulu. I ka hoʻomaka ʻana, nele i ka pōʻai zabbix, no laila pono e lawe ʻia. Aia nā pilikia me ka wahi Lūkini, i hoʻoponopono ʻia ma ka hoʻohana ʻana i nā pākuʻi kūpono (nota: i nā mana hou o buildroot, ʻaʻole pono kēia mau pā).
ʻO ka lawe ʻana i ka pūʻolo zabbix ponoʻī e wehewehe ʻia ma kahi ʻatikala ʻokoʻa.
No ka mea e hana nā mea āpau ma ke ʻano firmware (kiʻi ʻōnaehana hiki ʻole ke hoʻololi ʻia + hoʻihoʻi hou i ka hoʻonohonoho / waihona waihona), pono e kākau i kāu mau pahuhopu systemd ponoʻī, nā lawelawe a me nā timers (target, service, timer).
Ua hoʻoholo ʻia e hoʻokaʻawale i ka media i 2 mau ʻāpana - kahi ʻāpana me nā faila ʻōnaehana a me kahi ʻāpana me nā configs loli a me nā faila waihona zabbix.
ʻO ka hoʻoponopono ʻana i nā pilikia e pili ana i ka waihona i lilo i mea paʻakikī iki. ʻAʻole au i makemake e kau pololei ia ma ka pāpaho. I ka manawa like, hiki i ka nui o ka waihona ke hiki i kahi nui ma mua o ka nui o kahi ramdisk hiki. No laila, ua koho ʻia kahi hopena kuʻikahi: aia ka waihona ma ka ʻāpana ʻelua o ka kāleka SD (ʻo nā kāleka SLC o kēia manawa a hiki i 30 mau pōʻai kākau), akā aia kahi hoʻonohonoho e hiki ai i ka hoʻohana ʻana i nā media waho (no ka laʻana, usb- hdd).
Ua hoʻokō ʻia ka nānā ʻana i ka wela ma o ka hāmeʻa RODOS-5. ʻOiaʻiʻo, hiki iā ʻoe ke hoʻohana pololei i ka Dallas 1820, akā ʻoi aku ka wikiwiki a me ka maʻalahi o ka hoʻopili ʻana i kahi USB.
Ua koho ʻia ʻo grub86 ma ke ʻano he bootloader no x64_2. Pono e kākau i kahi hoʻonohonoho liʻiliʻi e hoʻomaka ai.
Ma hope o ka debugging ma qemu, ua lawe ʻia i ka papa tinker asus. ʻO ke ʻano o kaʻu overlay i manaʻo mua ʻia e cross-platform - ka hoʻokaʻawale ʻana i nā configs kikoʻī i kēlā me kēia papa (papa defconfig, bootloader, hana i kahi kiʻi me kahi ʻōnaehana ʻōnaehana) a me ka hoʻohālikelike kiʻekiʻe i ka hoʻonohonoho ʻana i ka ʻōnaehana faila / hana i kahi kiʻi me ka ʻikepili. Ma muli o ia hoʻomākaukau ʻana, ua holo wikiwiki ka lawe ʻana.
Manaʻo nui ʻia e heluhelu i nā ʻatikala hoʻomaka:
Pehea e hōʻuluʻulu ai
Ma hope o ka hoʻopili ʻana i ka waihona, loaʻa kēia ʻano faila:
[alexey@comp monitor]$ ls -1
buildroot-2019.05.tar.gz
overlay
README.md
run_me.sh
buildroot-2019.05.tar.gz - maʻemaʻe buildroot waihona
ʻO overlay kaʻu papa kuhikuhi me waho-lāʻau. ʻO kēia kahi e mālama ʻia ai nā mea a pau āu e pono ai e kūkulu i ka firmware me ka hoʻohana ʻana i buildroot.
README.md - ka wehewehe ʻana o ka papahana a me ka manual ma ka ʻōlelo Pelekania.
ʻO run_me.sh kahi palapala e hoʻomākaukau ai i ka ʻōnaehana kūkulu. Hoʻonui i ka buildroot mai ka waihona, hoʻopili i kahi overlay iā ia (ma o ke ʻano lāʻau waho) a hiki iā ʻoe ke koho i ka papa kuhikuhi no ka hui.
[0] my_asus_tinker_defconfig
[1] my_beaglebone_defconfig
[2] x86_64_defconfig
Select defconfig, press A for abort. Default [0]
Ma hope o kēia, e hele wale i ka papa kuhikuhi buildroot-2019.05 a holo i ke kauoha make.
Ke hoʻopau ʻia ke kūkulu ʻana, aia nā hopena kūkulu āpau i ka papa kuhikuhi puka / kiʻi:
[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
Pono nā faila:
- sdcard.img - kiʻi media no ka hoʻopaʻa ʻana ma ke kāleka SD (ma o dd a i ʻole rufus ma lalo o nā wibdows).
- qemu.qcow2 - kiʻi media e holo ma qemu.
- external.qcow2 - kiʻi media waho no ka waihona
- monitor-0.9-beta.tar.gz - waihona no ka hoʻonui ʻana ma o ka pūnaewele pūnaewele
Hanau alakai
ʻAʻole pono ke kākau ʻana i nā ʻōlelo kuhikuhi i nā manawa he nui. A ʻo ka mea kūpono loa, ʻo ke kākau ʻana iā ia i hoʻokahi manawa i ka markdown, a laila hoʻololi iā ia i PDF no ka hoʻoiho ʻana a me ka html no ke kikowaena pūnaewele. Hiki i kēia ke mahalo i ka pūʻolo pandoc.
I ka manawa like, pono e hana ʻia kēia mau faila ma mua o ka ʻākoakoa ʻana o ke kiʻi ʻōnaehana; ʻaʻole pono kēlā mau palapala post-build. No laila, hana ʻia ka hanauna ma ke ʻano o kahi pūʻulu manuals. Hiki iā ʻoe ke nānā i ka overlay/package/manuals.
ʻO ka faila manuals.mk (nāna nā hana a pau)
################################################################################
#
# 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))
'ōnaehana
Ke neʻe ikaika nei ka honua Linux i systemd, a pono wau e hana pū.
ʻO kekahi o nā mea hou ʻoluʻolu ʻo ka hele ʻana o nā timers. Ma keʻano laulā, ua kākauʻia kahiʻatikala kaʻawale e pili ana iā lākou (aʻaʻole wale no lākou), akā e haʻi pōkole wau iāʻoe.
Aia nā hana e pono e hana i kēlā me kēia manawa. Pono wau e holo i ka logrotate e hoʻomaʻemaʻe i nā lāʻau lighttpd a me php-fpm. ʻO ka mea maʻamau e kākau i nā kauoha i ka cron, akā ua hoʻoholo wau e hoʻohana i ka systemd monotonic timer. No laila, holo ka logrotate i kahi manawa koʻikoʻi.
ʻOiaʻiʻo, hiki ke hana i nā manawa e ahi i kekahi mau lā, akā ʻaʻole pono wau i kēia.
Laʻana manawa:
- Waihona manawa
[Unit] Description=RODOS temp daemon timer
OnUnitActiveSec=1min [Hoʻouka] WantedBy=timers.target
- Файл сервиса, вызываемого таймером:
```bash
[Unit]
Description=RODOS temp daemon
[Service]
ExecStart=/usr/bin/rodos.sh
Nā papa i kākoʻo ʻia
ʻO Asus tinker board ka papa nui e hana ai nā mea a pau. Koho ʻia ma ke ʻano he maʻalahi a ikaika loa.
ʻO Beaglebone ʻeleʻele ka papa mua i hoʻāʻo ʻia ai ka hana (i ke koho ʻana i kahi papa ikaika loa).
Qemu x86_64 - hoʻohana ʻia no ka hoʻomohala hoʻomohala ʻana.
Pehea e hana ai
I ka hoʻomaka ʻana, hoʻihoʻi hou ʻia nā ʻāpana ʻelua:
- e holo ana i ka palapala settings_restore (ma o ka lawelawe). Hoʻihoʻi ia i nā hoʻonohonoho ʻōnaehana kumu - ka manawa manawa, ka wahi, nā hoʻonohonoho pūnaewele, etc.
- e holo ana i ka palapala hoʻomākaukau (ma o ka lawelawe) - ma aneʻi zabbix a ua hoʻomākaukau ʻia ka waihona, hoʻopuka ka IP i ka console.
Ke hoʻomaka mua ʻoe, ua hoʻoholo ʻia ka nui o ka lua o ka ʻāpana o ke kāleka SD. Inā ʻaʻohe wahi i hoʻokaʻawale ʻia, hoʻokaʻawale ʻia ka media, a lawe ka ʻāpana ʻikepili i nā wahi āpau āpau. Hana ʻia kēia i mea e hōʻemi ai i ka nui o ke kiʻi hoʻonohonoho (sdcard.img). Hoʻohui ʻia, hana ʻia ka papa kuhikuhi hana postgresql i kēia manawa. ʻO ia ke kumu e ʻoi aku ka lōʻihi o ka hoʻokuʻu mua ʻana me kahi mea lawe hou ma mua o nā mea ma hope.
I ka hoʻohui ʻana i kahi kaʻa waho, i ka manawa o ka hoʻomaka ʻana e ʻimi ʻo ia i kahi kaʻa manuahi a hoʻopili iā ia i ext4 me ka lepili waho.
Nānā! I ka hoʻohui ʻana i kahi kaʻa waho (e like me ka wehe ʻana a i ʻole ke pani ʻana iā ia), pono ʻoe e hana i kahi hoʻihoʻi a hoʻihoʻi i nā hoʻonohonoho!
Hoʻohana ʻia ka hāmeʻa RODOS 5 no ka nānā ʻana i ka wela. Hāʻawi ka mea hana i ke kumu kumu o kāna pono no ka hana ʻana me ka hāmeʻa. Ke hoʻā ʻia ka ʻōnaehana, hoʻomaka ka rodos timer, e holo ana i kēia pono hoʻokahi i ka minuke. Ua kākau ʻia ka mahana o kēia manawa i ka faila /tmp/rodos_current_temp, a laila hiki iā zabbix ke nānā i kēia faila ma ke ʻano he sensor.
Hoʻokomo ʻia ka media waihona hoʻonohonoho i ka papa kuhikuhi / data.
I ka hoʻomaka ʻana i ka ʻōnaehana a hoʻomākaukau iā ia no ka hana, ʻike ʻia kēia memo ma ka console:
System starting, please wait
Ma hope o ka pau ʻana o ka hana hoʻomākaukau, e hoʻololi ia i ka hōʻike ʻana i ka helu IP:
current ip 192.168.1.32
Ready to work
Hoʻonohonoho i ka zabbix no ka nānā ʻana i ka wela
No ka nānā ʻana i ka mahana, e hana wale i 2 mau ʻanuʻu:
- hoʻohui i ka mea RODOS i ke awa USB
- hana i ka ʻikepili ma zabbix
E wehe i ke kikowaena pūnaewele zabbix:
- E wehe i ka ʻāpana Configuration → Hosts
- Kaomi ma nā mea ma ka laina o kā mākou kikowaena zabbix
- Kaomi ma luna o Create item
E hoʻokomo i kēia ʻikepili:
- inoa - ma kou manaʻo (no ka laʻana, serverRoomTemp )
- ʻAno - zabbix agent
- Ki - Rodos
- ʻAno-helu
- Nā ʻāpana - C
- Ka wā mālama moʻolelo — mōʻaukala mālama wā. waiho 10 lā
- Ka wā mālama ʻana—manawa hoʻopaʻa no ka dynamics o nā loli. Haʻalele 30 lā
- Noi hou - server Room Temp
A kaomi i ke pihi ADD.
Hoʻoponopono i nā hoʻonohonoho ma o ka pūnaewele pūnaewele
Ua kākau ʻia ke kikowaena pūnaewele ma PHP. Aia nā hana nui:
- nānā i ke kūlana o ka mea hana
- hoʻololi i nā hoʻonohonoho pūnaewele
- hoʻololi i ka ʻōlelo huna mea hoʻohana
- koho wahi manawa
- hoʻihoʻi / hoʻihoʻi / hale hana
- hiki ke hoʻohui i kahi kaʻa waho
- Hoʻohou pūnaewele
Hoʻopaʻa ʻia ka ʻōlelo huna ma ka ʻaoʻao pūnaewele. ʻaoʻao hoʻomaka - manual.
ʻO ka helu kuhi henua Zabbix: ${ip/dns}/zabbix
Helu helu hoʻokele hoʻokele: ${ip/dns}/manage
Holo i ka 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 -faila hoʻokele = puka / kiʻi / qemu.qcow2, format = qcow2, aio = nā milo -device virtio-scsi-pci,id=scsi0 -drive file=output/images/external.qcow2, format=qcow2, aio=threads
E hoʻomaka ana kēia kauoha i kahi ʻōnaehana me nā cores 4, 2048 RAM, hiki iā KVM, kahi kāleka pūnaewele ma bridge0 a me ʻelua disks: hoʻokahi no ka ʻōnaehana a hoʻokahi waho no postgresql.
Hiki ke hoʻololi a holo i nā kiʻi ma Virtualbox:
qemu-img convert -f qcow2 qemu.qcow2 -O vdi qcow2.vdi
qemu-img convert -f qcow2 external.qcow2 -O vdi external.vdi
A laila e hoʻokomo iā lākou i loko o ka pahu virtual a hoʻopili ma o sata.
hopena
Ma ke kaʻina hana, ua lilo wau i hoihoi i ka hana ʻana i kahi huahana mākaukau e hoʻohana - me kahi interface ʻaʻole nani loa (ʻaʻole wau makemake i ke kākau ʻana iā lākou), akā kahi hana a maʻalahi ke hoʻonohonoho.
ʻO ka hoʻāʻo hope loa e hoʻokomo i ka zabbix-appliance ma KVM i hōʻike ʻia ua pololei kēia ʻanuʻu (ma hope o ka hoʻopau ʻana, ʻaʻole hoʻomaka ka ʻōnaehana). He hewa paha kaʻu e hana nei 😉
Source: www.habr.com