Ⅰ 如何從Zabbix資料庫中獲取監控數據
Zabbix可以通過兩種方式獲取歷史數據:
1.通過Zabbix前台獲取歷史數據
通過Zabbix前台查看歷史數據非常簡單,可以通過Monitoring->Lastest data的方式查看。也可以點擊右上角的As plain test按鈕保存成文本文件。
2.通過前台獲取的數據進行處理和二次查詢有很多限制,因此可以通過sql語句直接從後台DB查詢數據。
首先大家應該熟悉SQL語句Select 常用用法:
SELECT [ALL | DISTINCT] Select_List [INTO [New_Table_name]
FROM { Table_name | View_name} [ [,{table2_name | view2_name}
[,...] ]
[ WHERE Serch_conditions ]
[ GROUP BY Group_by_list ]
[ HAVING Serch_conditions ]
[ ORDER BY Order_list [ASC| DEsC] ]
說明:
1)SELECT子句指定要查詢的特定表中的列,它可以是*,表達式,列表等。
2)INTO子句指定要生成新的表。
3)FROM子句指定要查詢的表或者視圖。
4)WHERE子句用來限定查詢的范圍和條件。
5)GROUP BY子句指定分組查詢子句。
6)HAVING子句用於指定分組子句的條件。
7)ORDER BY可以根據一個或者多個列來排序查詢結果,在該子句中,既可以使用列名,也可以使用相對列號,ASC表示升序,DESC表示降序。
8)mysql聚合函數:sum(),count(),avg(),max(),avg()等都是聚合函數,當我們在用聚合函數的時候,一般都要用到GROUP BY 先進行分組,然後再進行聚合函數的運算。運算完後就要用到Having子句進行判斷了,例如聚合函數的值是否大於某一個值等等。
從Zabbix資料庫中查詢監控項目方法,這里已查詢主機的網卡流量為例子:
1)通過hosts表查找host的ID。
mysql> select host,hostid from hosts where host="WWW05";
+-------+--------+
| host | hostid |
+-------+--------+
| WWW05 | 10534 |
+-------+--------+
1 row in set (0.00 sec)
2)通過items表查找主的監控項和key以及itemid。
mysql> select itemid,name,key_ from items where hostid=10534 and key_="net.if.out[eth0]";
+--------+-----------------+------------------+
| itemid | name | key_ |
+--------+-----------------+------------------+
| 58860 | 發送流量: | net.if.out[eth0] |
+--------+-----------------+------------------+
1 row in set (0.00 sec)
3)通過itemid查詢主機的監控項目(history_uint或者trends_uint),單位為M。
主機流入流量:
mysql> select from_unixtime(clock) as DateTime,round(value/1024/1024,2) as Traffic_in from history_uint where itemid="58855" and from_unixtime(clock)>='2014-09-20' and from_unixtime(clock)<'2014-09-21' limit 20;
+---------------------+------------+
| DateTime | Traffic_in |
+---------------------+------------+
| 2014-09-20 00:00:55 | 0.10 |
| 2014-09-20 00:01:55 | 0.09 |
| 2014-09-20 00:02:55 | 0.07 |
| 2014-09-20 00:03:55 | 0.05 |
| 2014-09-20 00:04:55 | 0.03 |
| 2014-09-20 00:05:55 | 0.06 |
| 2014-09-20 00:06:55 | 0.12 |
| 2014-09-20 00:07:55 | 0.05 |
| 2014-09-20 00:08:55 | 0.10 |
| 2014-09-20 00:09:55 | 0.10 |
| 2014-09-20 00:10:55 | 0.12 |
| 2014-09-20 00:11:55 | 0.12 |
| 2014-09-20 00:12:55 | 0.13 |
| 2014-09-20 00:13:55 | 3.16 |
| 2014-09-20 00:14:55 | 0.23 |
| 2014-09-20 00:15:55 | 0.24 |
| 2014-09-20 00:16:55 | 0.26 |
| 2014-09-20 00:17:55 | 0.23 |
| 2014-09-20 00:18:55 | 0.14 |
| 2014-09-20 00:19:55 | 0.16 |
+---------------------+------------+
20 rows in set (0.82 sec)
主機流出流量:
mysql> select from_unixtime(clock) as DateTime,round(value/1024/1024,2) as Traffic_out from history_uint where itemid="58860" and from_unixtime(clock)>='2014-09-20' and from_unixtime(clock)<'2014-09-21' limit 20;
+---------------------+-------------+
| DateTime | Traffic_out |
+---------------------+-------------+
| 2014-09-20 00:00:00 | 4.13 |
| 2014-09-20 00:01:00 | 3.21 |
| 2014-09-20 00:02:00 | 2.18 |
| 2014-09-20 00:03:01 | 1.61 |
| 2014-09-20 00:04:00 | 1.07 |
| 2014-09-20 00:05:00 | 0.92 |
| 2014-09-20 00:06:00 | 1.23 |
| 2014-09-20 00:07:00 | 2.76 |
| 2014-09-20 00:08:00 | 1.35 |
| 2014-09-20 00:09:00 | 3.11 |
| 2014-09-20 00:10:00 | 2.99 |
| 2014-09-20 00:11:00 | 2.68 |
| 2014-09-20 00:12:00 | 2.55 |
| 2014-09-20 00:13:00 | 2.89 |
| 2014-09-20 00:14:00 | 4.98 |
| 2014-09-20 00:15:00 | 6.56 |
| 2014-09-20 00:16:00 | 7.34 |
| 2014-09-20 00:17:00 | 6.81 |
| 2014-09-20 00:18:00 | 7.67 |
| 2014-09-20 00:19:00 | 4.11 |
+---------------------+-------------+
20 rows in set (0.74 sec)
4)如果是兩台設備,匯總流量,假如公司出口有兩台設備,可以用下面的SQL語句匯總每天的流量。下面SQL語句是匯總上面主機網卡的進出流量的。
mysql> select from_unixtime(clock,"%Y-%m-%d %H:%i") as DateTime,sum(round(value/1024/1024,2)) as Traffic_total from history_uint where itemid in (58855,58860) and from_unixtime(clock)>='2014-09-20'and from_unixtime(clock)<'2014-09-21' group by from_unixtime(clock,"%Y-%m-%d %H:%i") limit 20;
+------------------+---------------+
| DateTime | Traffic_total |
+------------------+---------------+
| 2014-09-20 00:00 | 4.23 |
| 2014-09-20 00:01 | 3.30 |
| 2014-09-20 00:02 | 2.25 |
| 2014-09-20 00:03 | 1.66 |
| 2014-09-20 00:04 | 1.10 |
| 2014-09-20 00:05 | 0.98 |
| 2014-09-20 00:06 | 1.35 |
| 2014-09-20 00:07 | 2.81 |
| 2014-09-20 00:08 | 1.45 |
| 2014-09-20 00:09 | 3.21 |
| 2014-09-20 00:10 | 3.11 |
| 2014-09-20 00:11 | 2.80 |
| 2014-09-20 00:12 | 2.68 |
| 2014-09-20 00:13 | 6.05 |
| 2014-09-20 00:14 | 5.21 |
| 2014-09-20 00:15 | 6.80 |
| 2014-09-20 00:16 | 7.60 |
| 2014-09-20 00:17 | 7.04 |
| 2014-09-20 00:18 | 7.81 |
| 2014-09-20 00:19 | 4.27 |
+------------------+---------------+
20 rows in set (1.52 sec)
5)查詢一天中主機流量的最大值,最小值和平均值。
mysql> select date as DateTime,round(min(traffic)/2014/1024,2) as TotalMinIN,round(avg(traffic)/1024/1024,2) as TotalAvgIN,round(max(traffic)/1024/1024,2) as TotalMaxIN from (select from_unixtime(clock,"%Y-%m-%d") as date,sum(value) as traffic from history_uint where itemid in (58855,58860) and from_unixtime(clock)>='2014-09-20' and from_unixtime(clock)<'2014-09-21' group by from_unixtime(clock,"%Y-%m-%d %H:%i") ) tmp;
+------------+------------+------------+------------+
| DateTime | TotalMinIN | TotalAvgIN | TotalMaxIN |
+------------+------------+------------+------------+
| 2014-09-20 | 0.01 | 4.63 | 191.30 |
+------------+------------+------------+------------+
1 row in set (1.74 sec)
6)查詢主機組裡面所有主機CPU Idle平均值(原始值)。
mysql> select from_unixtime(hi.clock,"%Y-%m-%d %H:%i") as DateTime,g.name as Group_Name,h.host as Host, hi.value as Cpu_Avg_Idle from hosts_groups hg join groups g on g.groupid = hg.groupid join items i on hg.hostid = i.hostid join hosts h on h.hostid=i.hostid join history hi on i.itemid = hi.itemid where g.name='上海機房--項目測試' and i.key_='system.cpu.util[,idle]' and from_unixtime(clock)>='2014-09-24' and from_unixtime(clock)<'2014-09-25' group by h.host,from_unixtime(hi.clock,"%Y-%m-%d %H:%i") limit 10;
+------------------+----------------------------+----------+--------------+
| DateTime | Group_Name | Host | Cpu_Avg_Idle |
+------------------+----------------------------+----------+--------------+
| 2014-09-24 00:02 | 上海機房--項目測試 | testwb01 | 94.3960 |
| 2014-09-24 00:07 | 上海機房--項目測試 | testwb01 | 95.2086 |
| 2014-09-24 00:12 | 上海機房--項目測試 | testwb01 | 95.4308 |
| 2014-09-24 00:17 | 上海機房--項目測試 | testwe01 | 95.4580 |
| 2014-09-24 00:22 | 上海機房--項目測試 | testwb01 | 95.4611 |
| 2014-09-24 00:27 | 上海機房--項目測試 | testwb01 | 95.2939 |
| 2014-09-24 00:32 | 上海機房--項目測試 | testwb01 | 96.0896 |
| 2014-09-24 00:37 | 上海機房--項目測試 | testwb01 | 96.5286 |
| 2014-09-24 00:42 | 上海機房--項目測試 | testwb01 | 96.8086 |
| 2014-09-24 00:47 | 上海機房--項目測試 | testwb01 | 96.6854 |
+------------------+----------------------------+----------+--------------+
10 rows in set (0.75 sec)
7)查詢主機組裡面所有主機 CPU Idle平均值(匯總值)。
mysql> select from_unixtime(hi.clock,"%Y-%m-%d %H:%i") as Date,g.name as Group_Name,h.host as Host, hi.value_avg as Cpu_Avg_Idle from hosts_groups hg join groups g on g.groupid = hg.groupid join items i on hg.hostid = i.hostid join hosts h on h.hostid=i.hostid join trends hi on i.itemid = hi.itemid where g.name='上海機房--項目測試' and i.key_='system.cpu.util[,idle]' and from_unixtime(clock)>='2014-09-10' and from_unixtime(clock)<'2014-09-11' group by h.host,from_unixtime(hi.clock,"%Y-%m-%d %H:%i") limit 10;
+------------------+----------------------------+----------+--------------+
| Date | Group_Name | Host | Cpu_Avg_Idle |
+------------------+----------------------------+----------+--------------+
| 2014-09-10 00:00 | 上海機房--項目測試 | testwb01 | 99.9826 |
| 2014-09-10 01:00 | 上海機房--項目測試 | testwb01 | 99.9826 |
| 2014-09-10 02:00 | 上海機房--項目測試 | testwb01 | 99.9825 |
| 2014-09-10 03:00 | 上海機房--項目測試 | testwb01 | 99.9751 |
| 2014-09-10 04:00 | 上海機房--項目測試 | testwb01 | 99.9843 |
| 2014-09-10 05:00 | 上海機房--項目測試 | testwb01 | 99.9831 |
| 2014-09-10 06:00 | 上海機房--項目測試 | testwb01 | 99.9829 |
| 2014-09-10 07:00 | 上海機房--項目測試 | testwb01 | 99.9843 |
| 2014-09-10 08:00 | 上海機房--項目測試 | testwb01 | 99.9849 |
| 2014-09-10 09:00 | 上海機房--項目測試 | testwb01 | 99.9849 |
+------------------+----------------------------+----------+--------------+
10 rows in set (0.01 sec)
8)其它與Zabbix相關的SQL語句。
查詢主機已經添加但沒有開啟監控主機:
select host from hosts where status=1;
查詢NVPS的值:
mysql> SELECT round(SUM(1.0/i.delay),2) AS qps FROM items i,hosts h WHERE i.status='0' AND i.hostid=h.hostid AND h.status='0' AND i.delay<>0;
+--------+
| qps |
+--------+
| 503.40 |
+--------+
1 row in set (0.11 sec)
望採納
Ⅱ 資料庫監控系統有什麼特點
產業經濟監測、預測及政策模擬平台主要面向跨境電商、電子商務、智能製造、產業人才培訓等產業領域,通過平台的實時監測、產業指數監控及預測和產業經濟政策模擬三大功能模塊,協助省級、地市級政府相關部門進行產業經濟政策的制定及調整,促進地方產業轉型升級,提高經濟發展質效。
Ⅲ openGauss資料庫支持哪些監控工具
openGauss社區開發者提供基於grafana + prometheus + opengauss_exporter方式進行資料庫節點監控,同時AI框架DBMind也提供類似能力
Ⅳ C# 怎麼實現對資料庫的實時監控
如果是監控對表格的數據的操作,可以使用觸發器,如果是對整個資料庫進行監控可以寫個服務監控判斷資料庫是否正常運行以及對整個資料庫的操作
Ⅳ 大量資料庫的備份情況檢查,如何監控
SQL SERVER資料庫備份後的文件擴展名為.BAK,它可以恢復資料庫,如果你要查看備份資料庫中的數據,得先還原資料庫,具體還原方法是:打開企業管理器,在資料庫節點右鍵,選擇「所有任務」---「還原資料庫」,系統彈出「還原資料庫」對話框,在「還原為資料庫」下拉菜單中選擇或錄入一個新的資料庫名稱,選擇「從設備(m)」圓按鈕,在「參數」框中,單擊「選擇設備」按鈕,此時,你選擇你的備份資料庫文件,單擊確定,回到「還原資料庫」界面,選擇「選項」選項卡,確定你的邏輯文件名和物理文件名位置。確定系統即可還原資料庫。
如果你需要查看文件中的內容,當然,你這個說法可能有錯誤,資料庫備份文件還原後,還是在SQL SERVER中以存在,那麼,你要查看裡面的數據,這得需要用查詢語句來實現或用企業管理器查詢各表中數據內容或函數、過程等。。
查詢語句可參考:SELECT * FROM SYSTEM
Ⅵ (急~~~)如何監控Oracle數據檢查點的執行。就是資料庫發生檢查點的時候,可以得到這個信息。
top查看系統的checkpoint動作
我們可以通過將LOG_checkpointS_TO_ALERT設置成TRUE來打開checkpoint的trace,這樣就可以跟蹤checkpoint的操作了。
ALTER SYSTEM SET LOG_checkpointS_TO_ALERT=TRUE;
這設置以後系統的checkpoint將會被記錄alert_$SID.log文件中。
在V$DATAFILE_HEADER裡面也保存了發生完全checkpoint的時候一些相關信息,包括checkpoint發生時間、對應SCN已經checkpoint的次數。
select file# NO, status, tablespace_name, name, dbms_flashback.get_system_change_number CUR_SCN,
to_char(resetlogs_time, 'YYYY-MM-DD HH24:MI:SS') RST_DT, resetlogs_change# RST_SCN,
to_char(checkpoint_time, 'YYYY-MM-DD HH24:MI:SS') CKPT_DT, checkpoint_change# CKPT_SCN, checkpoint_count CKPT_CNT
from v$datafile_header;
/**
NO STATUS TABLESPACE_NAME CUR_SCN RST_DT RST_SCN CKPT_DT CKPT_SCN CKPT_CNT
--- ------- ---------------- -------- ------------------- -------- ------------------- --------- ---------
1 ONLINE SYSTEM 533541 2008-01-12 16:51:53 446075 2008-08-04 22:03:58 532354 65
2 ONLINE UNDOTBS1 533541 2008-01-12 16:51:53 446075 2008-08-04 22:03:58 532354 28
3 ONLINE SYSAUX 533541 2008-01-12 16:51:53 446075 2008-08-04 22:03:58 532354 65
4 ONLINE USERS 533541 2008-01-12 16:51:53 446075 2008-08-04 22:03:58 532354 64
5 ONLINE EXAMPLE 533541 2008-01-12 16:51:53 446075 2008-08-04 22:03:58 532354 24
Ⅶ 如何使用阿里雲監控自定義監控本地資料庫狀態
如何使用阿里雲監控自定義監控本地資料庫狀態
1、進入阿里雲後台管理,點雲監控--雲服務監控 就可以看到一些監控數據。 2、使用行雲管家,裡面也有主機監控,可以幫助你查看主機使用情況,還可以使用微信監控查看。還有成本分析和,堡壘機的運維審計等功能。
Ⅷ 資料庫監控是做些什麼的
深入了解資料庫響應對於單個web事務的效率。跟蹤在應用程序中執行後台事務的資料庫響應時間,這些事務是在後台線程中生成的。資料庫性能監視器可以查明阻礙優化應用程序性能的SQL語句,並允許用戶分析錯誤跟蹤,在資料庫性能問題影響您的業務之前解決它們。獲取詳細的性能指標,識別慢速的資料庫調用、以及通過詳細的圖形和表格表示資料庫的總體性能。
資料庫監控是Applications Manager重要功能之一,它能夠幫助資料庫管理員(DBA)和系統管理員監控包含Oracle、SQL Server、MySQL、Sybase、IBM DB2等多種類異構型的資料庫環境。作為無代理的資料庫監控工具,Applications Manager通過執行資料庫查詢來採集性能數據。當資料庫性能超過閾值時,生成告警通知管理員。通過直觀豐富的資料庫性能報表,DBA可以快速排查故障問題以及規劃容量。網頁鏈接
Ⅸ 如何有效的監控單點,集群的mysql
Mysql作為使用非常廣泛的資料庫,確實給我們帶來了很多幫助,就像任何軟體系統一樣,一旦正式投入生產環境,那監控手段就不可或缺。如何有效的監控Mysql的運行情況,尤其是在復雜IT環境下就更顯得迫切了,如Mysql集群部署; 1、單點Mysql的監控 到底一個Mysql服務我們應該監控哪些指標呢?每個人可能都有不同的見解,但下面這些指標是基本的: 當前已打開連接數:表示當前打開的資料庫連接; 啟動以來同時處理的最大連接數:表示自從資料庫啟動來同時處理的最大連接請求,這個值對於提供資料庫的處理能力比較重要,下面是兩個優化的量化經驗: 假設數值tmpPercent =啟動以來同時處理的最大連接數/ 設置的最大連接數 l 如果tmpPercent <= 0.1,則mySQL伺服器最大連接數設置的過高了 l 如果tmpPercent > 90,則mySQL伺服器最大連接數設置的過低了 鎖等待率:如果該值 > 0.02,則mySQL伺服器需要等待的表鎖數有點多了, 如果當前資料庫表類型是MyISAM請最好換成InnoDB類型; 表掃描率:如果該值 > 4000,則mySQL進行了太多表掃描, 很有可能是索引沒建好, 增加read_buffer_size值會有一些好處, 但最好不要超過8MB; 北京運維技術出品的EOMP作為一個IT監控平台,提供了很多實用功能來幫助用戶有效的運維各種IT資源,下面我們就如何通過EOMP對mysqlt進行有效監控做一個詳細介紹: EOMP里mysql的詳細監控界面如下: 上圖中做標記的4個地方,都是EOMP反映給用戶的重要監控信息。同時EOMP還可以監控Mysql中的資料庫表信息,如下圖: 通過對這些關鍵指標進行閥值、故障通知等設置,就可以在嚴重問題出現前有效的進行處理。EOMP閥值的設置很簡單,在圖中任何一個做標記*的監控指標處或是文本框沒有灰掉的地方,點擊滑鼠右鍵彈出菜單,進行相關設置,如我們想對『正在使用的連接數』這個指標進行如下設置:在上午8:00-下午7:00間,任意5分鍾內,該指標至少有3次超過100,就發出問題級別的告警,並通過Email、手機簡訊等方式通知相關人員;下面是具體閥值和故障通知設置截圖: 並且如果『正在使用的連接數』確實發生了故障,我們可以通過剛才彈出菜單中的『歷史數據查詢』功能,對這個監控指標的所有歷史數據進行故障分析,下圖是一次查詢結果: 2、集群Mysql的監控 對於復雜的集群Mysql,就應該把它們通過某種方式放到一起來共同運維和監控,EOMP提供的『視圖』功能,就能很好完成這個任務,下圖是EOMP一個簡單Mysql集群的『監控視圖』: 上圖中,我們把集群的兩個Mysql服務放到一張視圖里,同時把它們的一些關鍵監控指標也放到這張視圖里,如響應時間、正在工作線程數等,通過這樣一張視圖,用戶可以把所有反映這個Mysql集群健康情況的監控信息都放到一起,這在很大程度上方便用戶的監控。 EOMP是以『視圖』為其設計核心,所以它的視圖配置非常靈活,既可以是整個一個Mysql服務,也可以是某個Mysql服務的一個監控指標。越是復雜的監控要求,越是能體現出這種內在設計的靈活性。 『視圖』不僅僅是個展現的窗口,它是個監控實體,如下圖EOMP的首頁所示,任何故障信息都是以『視圖』為載體的,這樣用戶在任何時候都可以看到自己能理解的監控信息,而不是什麼什麼設備或服務等。
Ⅹ 常用的資料庫訪問行為實時監控技術有哪些
資料庫防火牆系統,串聯部署在資料庫伺服器之前,解決資料庫應用側和運維側兩方面的問題,是一款基於資料庫協議分析與控制技術的資料庫安全防護系統。DBFirewall基於主動防禦機制,實現資料庫的訪問行為控制、危險操作阻斷、可疑行為審計。
資料庫安全技術之一,資料庫安全技術主要包括:資料庫漏掃、資料庫加密、資料庫防火牆、數據脫敏、資料庫安全審計系統。
資料庫安全風險包括:刷庫、拖庫、撞庫。
資料庫安全攻擊手段包括:SQL注入攻擊。