
කාර්ය ඉතිහාසය
එක් අතකින්, කුඩා සමාගම්වලට ඔවුන්ගේ යටිතල පහසුකම් පිළිබඳ උසස් තත්ත්වයේ අධීක්ෂණයක් අවශ්ය වේ (විශේෂයෙන් පුළුල් අථත්යකරණය හේතුවෙන්); අනෙක් අතට, නව උපකරණ මිලදී ගැනීම ඔවුන්ට මූල්යමය වශයෙන් දුෂ්කර ය. සේවාදායක/දෘඩාංග ගැටළු ද පොදු වේ: බොහෝ විට, කුළුණු සේවාදායකයන් එක සිට තුන දක්වා පරිශීලක වැඩපොළවල් අසල හෝ කුඩා අල්මාරියක හෝ අල්මාරියක පිහිටා ඇත.
සූදානම් කළ ගොඩනැගීමක් (බෙදාහැරීමක්) භාවිතා කිරීම පහසුය, එය සරලව මයික්රෝ එස්ඩී කාඩ්පතකට පටවා පොදු තනි පුවරු පරිගණකයකට (බීගල්බෝන්, රාස්ප්බෙරි පයි සහ ඔරේන්ජ් පයි හෝ අසූස් ටින්කර් පුවරුවක් වැනි) ඇතුළු කළ හැකිය. තවද, එවැනි දෘඩාංග මිල අඩු වන අතර ඕනෑම තැනක ස්ථාපනය කළ හැකිය.
ගැටලුව ප්රකාශ කිරීම
බොහෝ ආකාරවලින්, ව්යාපෘතිය ප්රතිඵල යෙදීමේ හැකියාව සහිත රසායනාගාර කාර්යයක් ලෙස වර්ධනය විය.
Zabbix බලගතු, නිදහස් සහ හොඳින් ලේඛනගත පද්ධතියක් බැවින් එය අධීක්ෂණ පද්ධතිය ලෙස තෝරා ගන්නා ලදී.
දෘඪාංග වේදිකාවේ ගැටළුව දැඩි විය. අධීක්ෂණය සඳහා වෙනම යන්ත්රයක් යෙදවීම ද හොඳ විසඳුමක් නොවේ - නව උපකරණ මිලදී ගැනීම හෝ පැරණි ඒවා සොයා ගැනීම මිල අධික වන අතර කුඩා සමාගම්වලට බොහෝ විට සේවාදායක/දෘඩාංග ගැටළු ඇත.
buildroot build පද්ධතිය භාවිතා කිරීමෙන් ඔබට OS පවුල පිළිබඳ අවම දැනුමක් ඇති පුද්ගලයින්ට ක්රියාත්මක කළ හැකි විශේෂිත විසඳුම් නිර්මාණය කිරීමට ඉඩ සලසයි. Linuxමෙම පද්ධතිය ආරම්භක-හිතකාමී වේ, නමුත් පළපුරුදු සංවර්ධකයින් සඳහා පුළුල් අභිරුචිකරණ විකල්ප ලබා දෙයි. මෙහෙයුම් කාර්ය මණ්ඩලය සඳහා අවම පුහුණු අවශ්යතා සහිතව, දැරිය හැකි මිලකට, නමුත් සම්පූර්ණයෙන්ම ක්රියාකාරී, IT යටිතල පහසුකම් නිරීක්ෂණය සඳහා එය කදිමයි.
විසඳුම් පියවර
අපි මුලින් x86_64 සඳහා qemu හි ක්රියාත්මක කිරීම සඳහා ස්ථිරාංග නිර්මාණය කිරීමට තීරණය කළෙමු, මන්ද එය පහසු සහ වේගවත් නිදොස් කිරීමේ විසඳුමක් වන බැවිනි. පසුව අපි එය ARM තනි පුවරු පරිගණකයකට ගෙන ගියෙමු (මට Asus Tinker පුවරුව කැමති විය).
Buildroot ගොඩනැගීමේ පද්ධතිය ලෙස තෝරා ගන්නා ලදී. මුලින් එහි zabbix පැකේජය නොතිබූ බැවින් එය port කිරීමට සිදු විය. රුසියානු භාෂාව සමඟ ගැටළු ඇති වූ අතර, ඒවා සුදුසු පැච් යෙදීමෙන් විසඳන ලදී (සටහන: මෙම පැච් තවදුරටත් Buildroot හි නව අනුවාදවල අවශ්ය නොවේ).
zabbix පැකේජයම මාරු කිරීම වෙනම ලිපියකින් විස්තර කෙරේ.
සෑම දෙයක්ම ස්ථිරාංග (වෙනස් කළ නොහැකි පද්ධති රූපය + ප්රතිසාධනය කළ හැකි වින්යාස ගොනු/දත්ත සමුදායන්) මෙන් ක්රියා කළ යුතු බැවින්, අපගේම systemd ඉලක්ක, සේවා සහ ටයිමර් (ඉලක්කය, සේවාව, ටයිමරය) ලිවීමට අවශ්ය විය.
ධාවකය කොටස් දෙකකට බෙදීමට තීරණය විය: පද්ධති ගොනු සහිත කොටසක් සහ වෙනස් කළ හැකි වින්යාසයන් සහ zabbix දත්ත සමුදා ගොනු සහිත කොටසක්.
දත්ත සමුදායට අදාළ ගැටළු විසඳීම ටිකක් අභියෝගාත්මක බව ඔප්පු විය. එය ධාවකය මත කෙලින්ම තැබීම නුසුදුසු විය. ඒ සමඟම, දත්ත සමුදායේ ප්රමාණය RAM තැටියේ ධාරිතාව පහසුවෙන් ඉක්මවා යා හැකිය. එබැවින්, සම්මුතියක් තෝරා ගන්නා ලදී: දත්ත සමුදාය SD කාඩ්පතේ දෙවන කොටසේ ගබඩා කර ඇත (නවීන SLC කාඩ්පත් ලිවීමේ චක්ර 30,000 දක්වා ඇත), නමුත් බාහිර ධාවකයක් (USB HDD වැනි) භාවිතා කිරීමට ඉඩ සලසන සැකසුමක් ඇත.
RODOS-5 උපාංගයක් හරහා උෂ්ණත්ව නිරීක්ෂණය ක්රියාත්මක කරන ලදී. Dallas 1820 උපාංගයක් සෘජුවම භාවිතා කළ හැකිව තිබුණද, USB හරහා සම්බන්ධ වීම වේගවත් හා පහසු විය.
x86_64 සඳහා ඇරඹුම් කාරකය ලෙස Grub2 තෝරා ගන්නා ලදී. එය ක්රියාත්මක කිරීම සඳහා අවම වින්යාස ගොනුවක් අවශ්ය විය.
qemu මත දෝෂහරණය කිරීමෙන් පසු, මම එය Asus Tinker පුවරුවට මාරු කළෙමි. මගේ උඩ තට්ටුව ආරම්භයේ සිටම හරස්-වේදිකා ලෙස නිර්මාණය කර ඇත - පුවරු-විශේෂිත වින්යාසයන් වෙන් කිරීම (පුවරු defconfig, bootloader, පද්ධති කොටස සමඟ රූප උත්පාදනය) සහ ගොනු පද්ධති වින්යාසය/දත්ත රූප නිර්මාණයේ ඒකාකාරිත්වය උපරිම කිරීම. මෙම සූදානමට ස්තූතියි, මාරු කිරීම ඉක්මන් විය.
හඳුන්වාදීමේ ලිපි කියවීම බෙහෙවින් නිර්දේශ කෙරේ:
එකලස් කරන්නේ කෙසේද
ගබඩාව ක්ලෝන කිරීමෙන් පසු, පහත ගොනු ව්යුහය ලබා ගනී:
[alexey@comp monitor]$ ls -1
buildroot-2019.05.tar.gz
overlay
README.md
run_me.shbuildroot-2019.05.tar.gz - buildroot ලේඛනාගාරය පිරිසිදු කරන්න
overlay යනු මගේ බාහිර-ගස් නාමාවලියයි. buildroot භාවිතයෙන් ස්ථිරාංග ගොඩනැගීමට අවශ්ය සියල්ල එහි අඩංගු වේ.
README.md — ව්යාපෘති විස්තරය සහ උපදෙස් ඉංග්රීසියෙන්.
run_me.sh යනු ගොඩනැගීමේ පද්ධතිය සකස් කරන ස්ක්රිප්ට් එකකි. එය ලේඛනාගාරයෙන් ගොඩනැගීමේ මූලය ඉවත් කර, එයට උඩ තට්ටුවක් අමුණයි (බාහිර-ගස් යාන්ත්රණය හරහා), සහ ගොඩනැගීම සඳහා ඉලක්ක පුවරුව තෝරා ගැනීමට ඔබට ඉඩ සලසයි.
[0] my_asus_tinker_defconfig
[1] my_beaglebone_defconfig
[2] x86_64_defconfig
Select defconfig, press A for abort. Default [0]මෙයින් පසු, buildroot-2019.05 නාමාවලිය වෙත ගොස් make විධානය ක්රියාත්මක කරන්න.
ගොඩනැගීම අවසන් වූ පසු, සියලුම ගොඩනැගීමේ ප්රතිඵල ප්රතිදාන/රූප නාමාවලියෙහි ඇත:
[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අවශ්ය ගොනු:
- sdcard.img - SD කාඩ්පතක පටිගත කිරීම සඳහා මාධ්ය රූපය (dd හෝ rufus හරහා wibdows යටතේ).
- qemu.qcow2 — qemu හි ධාවනය සඳහා මාධ්ය රූපය.
- external.qcow2 — දත්ත සමුදාය සඳහා බාහිර මාධ්ය රූපය
- monitor-0.9-beta.tar.gz — වෙබ් අතුරුමුහුණත හරහා යාවත්කාලීන කිරීම සඳහා ලේඛනාගාරය
අත්පොත් ජනනය කිරීම
එකම උපදෙස් කිහිප වතාවක් ලිවීමෙන් පලක් නැත. Markdown හි එක් වරක් ලිවීම වඩාත් තාර්කිකයි, පසුව ඒවා බාගත කිරීම සඳහා PDF බවටත් වෙබ් අතුරු මුහුණත සඳහා HTML බවටත් පරිවර්තනය කරන්න. පැන්ඩොක් පැකේජයට ස්තූතිවන්ත වන්නට මෙය කළ හැකිය.
කෙසේ වෙතත්, මෙම සියලුම ගොනු පද්ධති රූපය ගොඩනැගීමට පෙර ජනනය කළ යුතුය; එම පසු-නිර්මාණය කරන ලද ස්ක්රිප්ට් නිෂ්ඵලයි. එබැවින්, උත්පාදනය "අත්පොත්" ලෙස හැඳින්වෙන පැකේජයක් ලෙස ක්රියාත්මක කෙරේ. ඔබට ඒවා උඩැතිරි/පැකේජ/අත්පොත් වලින් නැරඹිය හැකිය.
manuals.mk ගොනුව (සියලුම වැඩ කරන)
################################################################################
#
# 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))පද්ධතිමය
ලෝකයේ Linux ක්රියාකාරීව systemd වෙත මාරු වෙමින් පවතින අතර, මටත් එය කිරීමට සිදු විය.
හොඳ නව විශේෂාංගවලින් එකක් වන්නේ ටයිමර් එකතු කිරීමයි. ඒවා ගැන (සහ වෙනත් දේවල්) වෙනම ලිපියක් ලියවෙමින් පවතී, නමුත් මම ඔබට ඉක්මන් දළ විශ්ලේෂණයක් ලබා දෙන්නම්.
වරින් වර සිදු කළ යුතු ක්රියාමාර්ග තිබේ. lighttpd සහ php-fpm ලොග් පිරිසිදු කිරීම සඳහා මට logrotate ධාවනය කිරීමට අවශ්ය විය. වඩාත් පොදු ක්රමය වූයේ ක්රෝන් වලින් විධාන ලිවීමයි, නමුත් මම ඒකාකාරී systemd ටයිමරයක් භාවිතා කිරීමට තීරණය කළෙමි. මේ ආකාරයෙන්, logrotate දැඩි කාල පරතරයකින් ක්රියාත්මක වේ.
ඇත්ත වශයෙන්ම, නිශ්චිත දිනයන්හි ක්රියාත්මක වන ටයිමර් නිර්මාණය කළ හැකිය, නමුත් මට එය අවශ්ය නොවීය.
ටයිමර් උදාහරණය:
- ටයිමර් ගොනුව
[Unit] Description=RODOS temp daemon timer
[ටයිමර්]
OnBootSec=මිනිත්තු 1
OnUnitActiveSec=මිනිත්තු 1
[ස්ථාපනය කරන්න]
WantedBy=timers.target
- Файл сервиса, вызываемого таймером:
```bash
[Unit]
Description=RODOS temp daemon
[Service]
ExecStart=/usr/bin/rodos.shසහාය දක්වන පුවරු
සෑම දෙයක්ම ක්රියාත්මක වීමට අවශ්ය ප්රධාන පුවරුව Asus Tinker පුවරුවයි. එය මිල අඩු සහ තරමක් බලවත් නිසා එය තෝරා ගන්නා ලදී.
(වඩා බලවත් පුවරුවක් තෝරා ගැනීමේ කාලය තුළ) කාර්යය පරීක්ෂා කරන ලද පළමු පුවරුව බීගල්බෝන් කළු ය.
Qemu x86_64 - සංවර්ධනය සහ නිදොස්කරණය සඳහා භාවිතා වේ.
එය ක්රියාත්මක වන්නේ කෙසේද?
ආරම්භයේදී, සැකසුම් අදියර දෙකක ප්රතිසාධනයක් සිදු වේ:
- settings_restore ස්ක්රිප්ට් එක (සේවාව හරහා) ක්රියාත්මක කරන්න. එය මූලික පද්ධති සැකසුම් - වේලා කලාපය, ස්ථානය, ජාල සැකසුම් ආදිය ප්රතිස්ථාපනය කරයි.
- (සේවාව හරහා) සූදානම් කිරීමේ ස්ක්රිප්ට් එක ක්රියාත්මක කරන්න - මෙය Zabbix සහ දත්ත සමුදාය සකස් කරන අතර කොන්සෝලයේ IP ලිපිනය පෙන්වයි.
පළමු දියත් කිරීමේදී, SD කාඩ්පතේ දෙවන කොටසේ ප්රමාණය තීරණය වේ. තවමත් වෙන් නොකළ ඉඩක් තිබේ නම්, ධාවකය නැවත කොටස් කරනු ලබන අතර, දත්ත කොටස සියලු ඉඩ ලබා ගනී. මෙය සිදු කරනු ලබන්නේ ස්ථාපන රූපයේ ප්රමාණය අඩු කිරීම සඳහා ය (sdcard.img). ඊට අමතරව, postgresql වැඩ කරන නාමාවලිය මෙම අවස්ථාවේදී නිර්මාණය වේ. නව ධාවකයක් සමඟ පළමු දියත් කිරීම පසුව දියත් කිරීමට වඩා වැඩි කාලයක් ගතවන්නේ එබැවිනි.
බාහිර ධාවකයක් සම්බන්ධ කරන විට, ආරම්භයේදී එය නොමිලේ තැටියක් සොයමින් බාහිර ලේබලය සමඟ ext4 හි එය ආකෘතිකරණය කරයි.
වැදගත්! බාහිර ධාවකයක් සම්බන්ධ කරන විට (හෝ එය විසන්ධි කරන විට හෝ ප්රතිස්ථාපනය කරන විට), ඔබ උපස්ථ කර ඔබගේ සැකසුම් ප්රතිස්ථාපනය කළ යුතුය!
උෂ්ණත්වය නිරීක්ෂණය කිරීම සඳහා RODOS 5 උපාංගයක් භාවිතා කරයි. නිෂ්පාදකයා උපාංගය භාවිතා කිරීම සඳහා එහි උපයෝගීතාව සඳහා මූලාශ්ර කේතය සපයයි. පද්ධතිය සක්රිය කළ විට, රොඩෝස් ටයිමරය ආරම්භ වන අතර, එය මිනිත්තුවකට වරක් මෙම උපයෝගීතාව ක්රියාත්මක කරයි. වත්මන් උෂ්ණත්වය /tmp/rodos_current_temp ගොනුවට ලියා ඇති අතර, ඉන් පසුව zabbix හට මෙම ගොනුව සංවේදකයක් ලෙස නිරීක්ෂණය කළ හැකිය.
වින්යාස ගබඩා මාධ්ය /data නාමාවලියෙහි සවි කර ඇත.
පද්ධතිය ආරම්භ වී ක්රියාත්මක වීමට සූදානම් වන විට, පහත පණිවිඩය කොන්සෝලය තුළ දිස්වේ:
System starting, please waitසූදානම් කිරීමේ කටයුතු අවසන් වූ පසු, එය IP ලිපිනය පෙන්වීමට වෙනස් වනු ඇත:
current ip 192.168.1.32
Ready to workඋෂ්ණත්ව අධීක්ෂණය සඳහා Zabbix වින්යාස කිරීම
උෂ්ණත්වය නිරීක්ෂණය කිරීමට, පියවර 2 ක් ගන්න:
- RODOS උපාංගය USB පෝට් එකකට සම්බන්ධ කරන්න.
- Zabbix හි දත්ත අයිතමයක් සාදන්න
zabbix වෙබ් අතුරු මුහුණත විවෘත කරන්න:
- වින්යාසය → ධාරක කොටස විවෘත කරන්න
- අපගේ Zabbix සේවාදායකයේ පේළියේ ඇති අයිතම මත ක්ලික් කරන්න.
- "සාදන්න" අයිතමය මත ක්ලික් කරන්න.

අපි පහත දත්ත ඇතුළත් කරමු:
- නම - ඔබේ අභිමතය පරිදි (උදාහරණයක් ලෙස, serverRoomTemp )
- වර්ගය — Zabbix නියෝජිතයා
- යතුර — රොඩෝස්
- වර්ගය - සංඛ්යාත්මක
- ඒකක — C
- ඉතිහාස ගබඩා කාලය — ඉතිහාසය ගබඩා කිරීමේ කාලය. මම එය දින 10 කින් තැබුවෙමි.
- Trend storage period — ප්රවණතා දත්ත සඳහා ගබඩා කාලය. මම එය දින 30 කින් තැබුවෙමි.
- නව යෙදුම - සේවාදායක කාමර උෂ්ණත්වය
සහ ADD බොත්තම ඔබන්න.

වෙබ් අතුරු මුහුණත හරහා සැකසුම් කළමනාකරණය කිරීම
වෙබ් අතුරුමුහුණත PHP වලින් ලියා ඇත. එහි ප්රධාන කාර්යයන් වන්නේ:
- උපාංග තත්ත්වය බලන්න
- ජාල සැකසුම් වෙනස් කිරීම

- පරිශීලක මුරපදය වෙනස් කිරීම
- වේලා කලාපය තෝරන්න
- උපස්ථ/ප්රතිසාධනය/කර්මාන්තශාලා යළි පිහිටුවීම
- බාහිර ධාවකයක් සම්බන්ධ කිරීමේ හැකියාව
- පද්ධතිය යාවත්කාලීන කිරීම

වෙබ් අතුරුමුහුණත මුරපදයකින් ආරක්ෂිතයි. ආරම්භක පිටුව මාර්ගෝපදේශයකි.
Zabbix අතුරුමුහුණත් ලිපිනය: ${ip/dns}/zabbix
කළමනාකරණ අතුරුමුහුණත ලිපිනය: ${ip/dns}/manage

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
මෙම විධානය මඟින් මධ්ය 4ක්, 2048 RAM එකක්, KVM සක්රීය කර ඇති, bridge0 මත ජාල කාඩ්පතක් සහ තැටි දෙකක් සහිත පද්ධතියක් ආරම්භ කරනු ඇත: එකක් පද්ධතිය සඳහා සහ එකක් postgresql සඳහා බාහිර එකක්.
රූප පරිවර්තනය කර Virtualbox තුළ ක්රියාත්මක කළ හැක:
qemu-img convert -f qcow2 qemu.qcow2 -O vdi qcow2.vdi
qemu-img convert -f qcow2 external.qcow2 -O vdi external.vdiඉන්පසු ඒවා virtualbox එකට ආයාත කර sata හරහා සම්බන්ධ කරන්න.
නිගමනය
මේ ක්රියාවලිය අතරතුර, මම භාවිතයට සූදානම් නිෂ්පාදනයක් නිර්මාණය කිරීමට උනන්දු වුණා - ඉතා අලංකාර අතුරු මුහුණතක් නොමැති (මම ඒවා ලිවීමට කැමති නැහැ), නමුත් ක්රියාත්මක වන සහ සැකසීමට පහසු එකක්.
KVM හි zabbix-appliance ස්ථාපනය කිරීමට මා කළ අවසන් උත්සාහයේදී මෙම පියවර නිවැරදි බව පෙනී ගියේය (ස්ථාපනය අවසන් වූ පසු, පද්ධතිය ආරම්භ නොවීය). සමහර විට මම යම් වැරැද්දක් කරනවා විය හැකිය 😉
මූලාශ්රය: www.habr.com


