一、OpenTSDB簡介 開源監控系統OpenTSDB,用hbase存儲所有的時序(無須 採樣)來構建一個分散式、可伸縮的時間序列資料庫。它支持秒級數據採集所有metrics,支持永久存儲,可以做容量規劃,並很容易的接入到現有的報警系 統里。OpenTSDB可以從大規模的集群(包括集群中的網路設備、 ...
一、OpenTSDB簡介
開源監控系統OpenTSDB,用hbase存儲所有的時序(無須 採樣)來構建一個分散式、可伸縮的時間序列資料庫。它支持秒級數據採集所有metrics,支持永久存儲,可以做容量規劃,並很容易的接入到現有的報警系 統里。OpenTSDB可以從大規模的集群(包括集群中的網路設備、操作系統、應用程式)中獲取相應的metrics併進行存儲、索引以及服務,從而使得這些數據更容易讓人理解,如web化,圖形化等。 對於運維工程師而言,OpenTSDB可以獲取基礎設施和服務的實時狀態信息,展示集群的各種軟硬體錯誤,性能變化以及性能瓶頸。對於管理者而言,OpenTSDB可以衡量系統的SLA,理解複雜系統間的相互作用,展示資源消耗情況。集群的整體 作業情況,可以用以輔助預算和集群資源協調。對於開發者而言,OpenTSDB可以展示集群的主要性能瓶頸,經常出現的錯誤,從而可以著力重點解決重要問題。 這裡有幾篇文字對於OpenTSDB的介紹非常詳細: http://liubin.org/blog/2016/03/05/tsdb-opentsdb/ http://www.jianshu.com/p/0bafd0168647 https://yq.aliyun.com/articles/54785 這個是對錶結構的詳細介紹 https://zhengheng.me/2016/03/07/opentsdb-hbase-tuning/ 優化二、OpenTSDB的安裝配置
1、基本環境搭建 首先確保你的系統有以下條件滿足: jdk 1.6 以上 並配置好環境變數 hbase 0.92 或更高版本 gnuplot 4.2 或更高(yum安裝吧) autotools(好像只需要其中的autoconf和automake即可)#1. 重新安裝新版本autoconf/automake #刪除舊版本 yum erase autoconf #安裝新版本autoconf wget http://mirrors.ustc.edu.cn/gnu/autoconf/autoconf-2.68.tar.gz tar -zxvf autoconf-2.68.tar.gz cd autoconf-2.68 ./configure make make install ln -s /usr/local/bin/autoconf /usr/bin/autoconf #安裝新版本automake wget http://mirrors.ustc.edu.cn/gnu/automake/automake-1.11.2.tar.gz tar -zxvf automake-1.11.2.tar.gz cd automake-1.11.2 ./configure make make install ln -s /usr/local/bin/automake /usr/bin/automake ln -s /usr/local/bin/aclocal /usr/bin/aclocal #2.安裝gnuplot-4.4.0 wget http://nchc.dl.sourceforge.net/project/gnuplot/gnuplot/4.4.0/gnuplot-4.4.0.tar.gz tar -zxvf gnuplot-4.4.0.tar.gz cd gnuplot-4.4.0 ./configure make make install ln -s /usr/local/bin/gnuplot /usr/bin/gnuplot2、OpenTSDB的安裝 然後下麵是我通過源碼安裝的過程,希望能夠有借鑒意義:
1 git clone https://github.com/OpenTSDB/opentsdb.git 2 cd opentsdb 3 ./build.sh 4 #當build.sh運行完畢的時候 你應該在opentsdb/build文件夾下看到opentsdb.jar最後安裝成功了,這裡總結一下: 首先,java要安裝好,各變數也要配置好; 其次,autotools的那幾個工具也要安裝好; opentsdb必須的gnuplot也要安裝好; 額外:因為OpenTSDB的後端是hbase,所以這裡也加上我配置的hbase的簡單介紹: 1、hbase的安裝配置,解壓完後,在/etc/profile中加上 HBASE_HOME=path/to/hbase-0.94.X 不加的話,後面命令需要自己手動加上 完成後source /etc/profile生效; 然後,配置hbase的zookeeper屬性,這與 hbase-env.sh 文件相關,文件中 HBASE_MANAGES_ZK 環境變數用來設置是使用hbase預設自帶的 Zookeeper還是使用獨立的ZooKeeper。HBASE_MANAGES_ZK=false 時使用獨立的,為true時使用預設自帶的。 手動啟動hbase: ./start-hbase cd opentsdb的build目錄 && HBASE_HOME=/home/xxx/hbase-1.2.5 ./src/create_table.sh ./tsdb tsd
3、配置文件
配置文件及參數:
zookeeper(hbase依賴於zookeeper所以保證有hbase的同時就保證了有zookeeper)在opentsdb/src文件夾下有一個opentsdb.conf的配置文件,內有3個主要屬性需要配置: tsd.http.cachedir opentsdb的緩存數據存放目錄,找個路徑配置好 tsd.http.staticroot opentsdb web 靜態文件的root路徑,一般在opentsdb/build/staticroot tsd.network.port 綁定的埠 下麵配置為常用可選配置 tsd.network.bind = 0.0.0.0 web 頁面綁定IP,一般配置為0.0.0.0 保證其他IP可以訪問opentsdb的web頁面。 tsd.storage.hbase.zk_quorum = localhost 這個為zookeeper的地址。一般單機版hbase不需要配置 預設在本機。如果zookeeper是獨立的或者分散式在其他機器上請指定IP 多個IP逗號分隔. 還有一些其他配置,請參見官網文檔: http://opentsdb.net/docs/build/html/user_guide/configuration.html 配置文件填寫好了之後將其複製至/etc/下 啟動opentsdb會從以下幾個地方搜索配置文件: ./opentsdb.conf /etc/opentsdb.conf /etc/opentsdb/opentsdb.conf /opt/opentsdb/opentsdb.conf 如果你多個地方都有配置文件,請確保這些多個配置文件的內容一致。也就是說修改一個要同步所有,不然根據你啟動命令執行的路徑不同可能會搜索到不同的配置文件。 建議只弄一個 放在/etc/下就好了。 註意! 若要將opentsdb的tag_values()函數獲得的結果自動更新,需要設置四個參數在配置文件中
- tsd.core.meta.enable_realtime_uid
- tsd.core.meta.enable_tsuid_tracking
- tsd.core.meta.enable_tsuid_incrementing
- tsd.core.meta.enable_realtime_ts
參數名 | 類型 | 是否必選 | 預設值 | 詳細介紹 |
tsd.core.auto_create_metrics | Boolean | Optional | false | 新metric的數據點是否被指定UID。 當為false時,資料庫中不具有metric的數據點將被拒絕並將拋出異常。 |
tsd.core.auto_create_tagks (2.1) | Boolean | Optional | true | 帶有新標簽名稱的數據點是否會將一個UID分配給tagk。 當為false時,具有不在資料庫中的標簽名稱的數據點將被拒絕並將拋出異常。 |
tsd.core.auto_create_tagvs (2.1) | Boolean | Optional | true | 是否具有新標簽值的數據點將分配給tagv的UID。 當為false時,具有不在資料庫中的標記值的數據點將被拒絕並將拋出異常。 |
Name | Data Type | Required | Description | QS |
metric | String | Required | The name of the metric you are storing | sys.cpu.nice |
timestamp | Integer | Required | A Unix epoch style timestamp in seconds or milliseconds. The timestamp must not contain non-numeric characters. | 1365465600 |
value | Integer, Float, String | Required | The value to record for this data point. It may be quoted or not quoted and must conform to the OpenTSDB value rules: Writing Data |
42.5 |
tags | Map | Required | A map of tag name/tag value pairs. At least one pair must be supplied. | {"host":"web01"} |
Name | Data Type | Description | Default | Example |
--delete | Flag | Optional flag that deletes data in any row that matches the query. See warning below. 可選標記,用於刪除與查詢匹配的任何行中的數據。 |
Not set | --delete |
--import | flag | Optional flag that outputs results in a text format useful for importing or storing as a backup. | Not set | --import |
START-DATE | String or Integer | Starting time for the query. This may be an absolute or relative time. See Dates and Times for details | 1h-ago | |
END-DATE | String or Integer | Optional end time for the query. If not provided, the current time is used. This may be an absolute or relative time. See Dates and Times for details | Current timestamp | 2014/01/01-00:00:00 |
query | String | One or more command line queries | sum tsd.hbase.rpcs type=put |