从Zabbix数据库中提取内存采集的数据,做内存使用率计算
生活随笔
收集整理的這篇文章主要介紹了
从Zabbix数据库中提取内存采集的数据,做内存使用率计算
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
? 背景需求很簡(jiǎn)單,分析所有的設(shè)備的內(nèi)存使用率,看那些設(shè)備的內(nèi)存不夠用是否需要加內(nèi)存。。。
? 下面的腳本邏輯,就是通過(guò)提取zabbix數(shù)據(jù)庫(kù)中的hostid,在提取itemid。。
? 然后通過(guò)item name過(guò)濾提取趨勢(shì)數(shù)據(jù),獲取一天中最大的內(nèi)存總數(shù)和最小可用內(nèi)存
? 然后在計(jì)算在一天中最小內(nèi)存可用率的設(shè)備,?
?
? 下面的是通過(guò)free來(lái)計(jì)算的,當(dāng)然也可以通過(guò)used來(lái)計(jì)算了...
#!/usr/bin/ruby $KCODE?=?'utf8' require?'mysql'db?=?Mysql.real_connect('1.1.1.1','zabbix','abbix','zabbix',3389) db.query('SET?character_set_results?=?utf8?;')host?=?db.query("select?hostid,host?from?hosts?where?host?like?'%sinanode.com%'") time?=?Time.now?-?3600*24host.each_hash?do?|h|items?=?db.query("select?itemid,name?from?items?where?hostid?=?#{h['hostid']}?")total?=?0free?=?0items.each_hash?do?|item|if?item['name']?=~?/內(nèi)存總數(shù)/total?=?db.query("select?min(value_max)?from?trends_uint?where?itemid?=?'#{item['itemid']}'?and?clock?>?UNIX_TIMESTAMP('#{time.strftime('%F?%X')}');?").fetch_rowputs?"#{h['host']}?#{item['itemid']}??#{item['name']}??#{total}"endif?item['name']?=~?/可用內(nèi)存/free?=?db.query("select?min(value_max)?from?trends_uint?where?itemid?=?'#{item['itemid']}'?and?clock?>?UNIX_TIMESTAMP('#{time.strftime('%F?%X')}');?").fetch_rowputs?"#{h['host']}?#{item['itemid']}??#{item['name']}??#{free}"endendif?free?!=?0usage?=?free.to_s.to_f/total.to_s.to_f*100puts?"#{h['host']}?最近一天最小空閑使用率:?#{format("%.2f",usage)}???total:?#{total}??free:?#{free}"endend轉(zhuǎn)載于:https://blog.51cto.com/kinda22/1585410
總結(jié)
以上是生活随笔為你收集整理的从Zabbix数据库中提取内存采集的数据,做内存使用率计算的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 梦到猫和鼠是什么意思
- 下一篇: Redis的编译安装