Всем привет!
Я только недавно начал знакомится с zabbix и подошла очередь чтобы добавить свой NAS на ОС Alt-F в мониторинг Zabbix.
Очень мало информации я нашёл в сети по тонкой настройке сбора и предобработки данных через "Агент HTTP", поэтому прошу помочь знатоков в данном деле.
На данный момент я настраиваю "Шаблон" на сбор данных я прописал адрес NAS куда можно попасть без авторизации и получить нужные мне данные "http://192.168.1.135/cgi-bin/status.cgi", при проверки шаблона я получаю огромный список данных, но не пойму как достать их(предобработать) по отдельности чтобы начать мониторить, настроить триггеры и т.д.
вот данные которые я получаю
к примеру для начала я хочу получать данные, то что он имеет объём 5.4TB и занято на текущий момент >2.7TB, но не пойму как сделать предобработку. Пробовал поиск по "составным данным", брал выражения из Google Chrome, типа "/html/body/div[12]/fieldset/table/tbody/tr[2]/td[3]" и "/html/body/div[12]/fieldset/table/tbody/tr[2]/td[4]/div/div/div", также пробовал через js path "document.querySelector("#mounted_filesystems_ st > fieldset > table > tbody > tr:nth-child(2) > td:nth-child(4) > div > div > div")", но нечего не выходит.
В идеале хочу разобрать этот массив данных на составные части, настроить по ним мониторинг и триггеры.
Я только недавно начал знакомится с zabbix и подошла очередь чтобы добавить свой NAS на ОС Alt-F в мониторинг Zabbix.
Очень мало информации я нашёл в сети по тонкой настройке сбора и предобработки данных через "Агент HTTP", поэтому прошу помочь знатоков в данном деле.
На данный момент я настраиваю "Шаблон" на сбор данных я прописал адрес NAS куда можно попасть без авторизации и получить нужные мне данные "http://192.168.1.135/cgi-bin/status.cgi", при проверки шаблона я получаю огромный список данных, но не пойму как достать их(предобработать) по отдельности чтобы начать мониторить, настроить триггеры и т.д.
вот данные которые я получаю
HTML Code:
"<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head profile="http://www.w3.org/2005/10/profile"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="icon" type="image/png" href="../dns-323.png"> <title>Alt-F 1.0 Status Page</title> <style type="text/css"> .bgl {text-align: center; font-weight: bold; width: 100px; } </style> <link rel="stylesheet" type="text/css" href="/scripts/dull/dull.css"> <script type="text/javascript" src="/scripts/dull/dull.js"></script> </head> <body > <script type="text/javascript"> var menu = new Array(); var men = {label:"Logout", url:"/cgi-bin/logout.cgi"}; menu.push(men); men = {label:"Status", url:"/cgi-bin/status.cgi"}; menu.push(men); men = {label:"Shortcuts", smenu:[{item:"Add", url:""" onclick="return addbookmark()""}, {item:"Remove", url:""" onclick="return rmbookmark()""}, {item:"Remove All", url:""" onclick="return rmall()""}, {item:"<hr>", url:"#"}, ]}; menu.push(men); men = {label:"Setup", smenu:[{item:"Host", url:"host.cgi "}, {item:"Time", url:"time.cgi"}, {item:"Mail", url:"mail.cgi"}, {item:"Proxy", url:"proxy.cgi"}, {item:"Hosts", url:"hosts.cgi"}, {item:"Users", url:"usersgroups.cgi"}, {item:"Debian", url:"debian.cgi"}, {item:"Folders", url:"browse_dir.cgi?wind=no?browse=/mnt"}, ]}; menu.push(men); men = {label:"Disk", smenu:[{item:"Utilities", url:"diskutil.cgi"}, {item:"Filesystems", url:"diskmaint.cgi"}, {item:"RAID", url:"raid.cgi"}, {item:"Partitioner", url:"diskpart.cgi"}, {item:"Wizard", url:"diskwiz.cgi"}, {item:"Quotas", url:"quota.cgi?admin=admin"}, ]}; menu.push(men); men = {label:"Services", smenu:[{item:"Network", url:"net_services.cgi"}, {item:"System", url:"sys_services.cgi"}, {item:"User", url:"user_services.cgi"}, ]}; menu.push(men); men = {label:"Packages", smenu:[{item:"Alt-F", url:"packages_ipkg.cgi"}, {item:"Entware-ng", url:"packages_opkg.cgi"}, {item:"ffp", url:"packages_ffp.cgi"}, ]}; menu.push(men); men = {label:"System", smenu:[{item:"Utilities", url:"sys_utils.cgi"}, {item:"Settings", url:"settings.cgi"}, {item:"Firmware", url:"firmware.cgi"}, {item:"About", url:"about.cgi"}, ]}; menu.push(men); menuSetup("top",""); </script> <div id="tt_help" class="ttip">Get a descriptive help</div> <div id="tt_settings" class="ttip"></div> <h2 class="title">Alt-F 1.0 Status Page <a href="../status_hlp.html" onmouseover="popUp(event,'tt_help')" onmouseout="popDown('tt_help')"><img src="../help.png" alt="help" border=0></a></h2> <noscript> <p class="error"><strong> JavaScript is needed by Alt-F web pages, and you don't have it enabled.<br> See <a href="http://www.enable-javascript.com" target="_blank"> how to enable JavaSCript</a> on your browser. </strong></p> </noscript> <script type="text/javascript"> arefresh = false function requestfromserver(target, refresh) { var req = new XMLHttpRequest(); if (req == null) return; req.onreadystatechange = function() { if (req.readyState != 4) return; // only if req is "loaded" if (req.status != 200) return; // only if "OK" document.getElementById(target).innerHTML = req.responseText; delete req; if (arefresh == true && refresh != 0) setTimeout( function() {requestfromserver(target, refresh);}, refresh * 1000); } url="/cgi-bin/status.cgi?refresh=" + target req.open("GET", url, true); req.send(); } function frefresh(obj) { arg = obj.checked == true ? "yes" : "no" if (arg == "yes") { arefresh = true requestfromserver('systems_st', 11) requestfromserver('network_st', 11) requestfromserver('disks_st', 13) requestfromserver('raid_st', 13) requestfromserver('mounted_filesystems_st', 17) requestfromserver('mounted_remote_filesystems_st', 17) requestfromserver('remotely_mounted_filesystems_st ', 19) requestfromserver('backup_st', 19) requestfromserver('filesystem_maintenance_st', 23) requestfromserver('printers_st', 23) requestfromserver('error_st', 31) requestfromserver('news_st', 59) } else arefresh = false } </script> <div id="st_tt" class="ttip">Checking this will refresh different sections in the page every 10 to 20 seconds.<br> This consumes CPU, so if you are waiting for something lengthly to accomplish<br> it will actually take more time if autorefresh is enabled.</div> <div id="error_st"> </div> <div id="news_st"> </div> <div id="systems_st"> <fieldset><legend>System</legend> <table><tr> <td><div class="bgl">Temperature</div> <div class="meter-wrap"> <div class="meter-value" style="background-color: #6F6; width: 62%;"> <div class="meter-text" style="color: #000;">34.0°C/93°F</div> </div> </div></td> <td><div class="bgl">Fan speed</div> <div class="meter-wrap"> <div class="meter-value" style="background-color: #6F6; width: 0%;"> <div class="meter-text" style="color: #000;">0</div> </div> </div></td> <td><div class="bgl">Load</div> <div class="meter-wrap"> <div class="meter-value" style="background-color: #6F6; width: 0%;"> <div class="meter-text" style="color: #000;">0.00</div> </div> </div></td> <td><div class="bgl">CPU</div> <div class="meter-wrap"> <div class="meter-value" style="background-color: #6F6; width: 0%;"> <div class="meter-text" style="color: #000;">0%</div> </div> </div></td> <td><div class="bgl">Memory</div> <div class="meter-wrap"> <div class="meter-value" style="background-color: #6F6; width: 93%;"> <div class="meter-text" style="color: #000;">93% of 256MB</div> </div> </div></td> <td><div class="bgl">Swap</div> <div class="meter-wrap"> <div class="meter-value" style="background-color: #6F6; width: 0%;"> <div class="meter-text" style="color: #000;">0% of 2793MB</div> </div> </div></td> </tr><tr> <td colspan=2><strong>Name:</strong> DNS-325-BackUP</td><td></td> <td colspan=2><strong>Model:</strong> DNS-325-Ax</td><td></td> </tr><tr> <td colspan=3><strong>Date:</strong> Tue Jan 16 14:47:36 MSK 2024</td> <td colspan=2><strong>Uptime:</strong> 21 day(s) 18 hour(s)</td><td></td> </tr></table></fieldset> </div> <div id="network_st"> <fieldset><legend>Network</legend> <strong>Speed:</strong>1000Mbps <strong>Duplex:</strong>full <strong>MTU:</strong>1500 <strong>TX:</strong>2.6GiB <strong>Rx:</strong>484.2MiB <strong>IP:</strong>192.168.1.135 </fieldset> </div> <div id="disks_st"> <fieldset><legend>Disks</legend> <table><tr><th align=left>Bay</th> <th>Dev.</th> <th>Model</th> <th>Capacity</th> <th>Power Status</th> <th>Temp</th> <th>Health</th> </tr> <tr align=center> <td align=left>left</td> <td>sda</td> <td align=left>WDC WD6003FFBX-68MU3N0</td> <td> 6.0TB </td> <td id=sda_pstatus_id> active or idle </td> <td id=sda_temp_id> 38°C/100°F </td> <td id=sda_health_id> <span class=black>passed</span> </td> </tr> <tr align=center> <td align=left>right</td> <td>sdb</td> <td align=left>WDC WD6003FFBX-68MU3N0</td> <td> 6.0TB </td> <td id=sdb_pstatus_id> active or idle </td> <td id=sdb_temp_id> 37°C/98°F </td> <td id=sdb_health_id> <span class=black>passed</span> </td> </tr> </table></fieldset> </div> <div id="raid_st"> <fieldset><legend>RAID</legend> <table><tr align=center> <th align=left>Dev.</th> <th>Capacity</th> <th>Level</th><th>State</th> <th>Status</th><th>Action</th> <th>Done</th><th>ETA</th> </tr> <tr align=center> <td align=left>md0</td> <td>5587.7GB</td> <td>raid1</td> <td>clean</td> <td>OK</td> <td>idle</td> <td align=left></td> <td></td> </tr> </table></fieldset> </div> <div id="mounted_filesystems_st"> <fieldset><legend>Mounted Filesystems</legend> <table><tr align=center> <th>Dev.</th> <th>Label</th> <th>Capacity</th><th>Available</th> <th>FS</th><th>Mode</th> <th>Dirty</th><th>Automatic FSCK in</th> </tr> <tr> <td>md0</td> <td></td> <td align=right>5.4TB</td> <td><div class="meter-wrap"> <div class="meter-value" style="background-color: #6F6; width: 49%;"> <div class="meter-text" style="color: #000;">2.7TB</div> </div> </div></td> <td>ext4</td> <td>RW</td> <td><span class="red"></span> </td> <td>28 mounts or 84 days</td> </tr> </table></fieldset> </div> <div id="mounted_remote_filesystems_st"> </div> <div id="remotely_mounted_filesystems_st"> <fieldset><legend>Remotely Mounted Filesystems</legend> <table><tr align=center> <th>Host</th> <th>Share</th> <th>FS</th> </tr> <tr><td>fileserver</td><td>Volume_1 </td><td>cifs</td></tr> </table></fieldset> </div> <div id="backup_st"> </div> <div id="filesystem_maintenance_st"> </div> <div id="printers_st"> </div> <form action=""> Autorefresh <input type=checkbox name="arefresh" value="yes" onclick="frefresh(this)" onmouseover="popUp(event,'st_tt')" onmouseout="popDown('st_tt')"> </form></body></html>"
В идеале хочу разобрать этот массив данных на составные части, настроить по ним мониторинг и триггеры.
Comment