opentsdb+grafana監控系按使用總結
阿新 • • 發佈:2017-09-02
應該 協調 文件中 其他 情況 character cnblogs 有效 zookeepe
這裏有幾篇文字對於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/ 優化
autotools(好像只需要其中的autoconf和automake即可)
在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()函數獲得的結果自動更新,需要設置四個參數在配置文件中
4、啟動OPENTSDB:
首先先創建hbase表:
在opentsdb/src下有個create_tab.sh的腳本
執行:
env COMPRESSION=NONE HBASE_HOME=path/to/hbase-0.94.X ./src/create_table.sh
COMPRESSION=NONE指定hbase表的壓縮方式,可選:NONE, LZO, GZIP or SNAPPY
HBASE_HOME不多說,如果配置好了在環境變量中可以不寫這個。
最後一個就是執行建表腳本了。
建表完成後就可以啟動了:
在opentsdb/build文件夾下有個tsdb的腳本 執行
./tsdb tsd 即可啟動opentsdb 打開對應ip和port的頁面即可看到頁面,如要後臺執行:nohup ./tsdb tsd & 即可
5、OpenTSDB的簡單使用
telnet客戶端發送數據至opentsdb
創建metric:./tsdb mkmetric metricName
telnet ip port 連接到opentsd
語法如下: put 如:put sys.cpu.user 1356998400 42.5 host=webserver01 cpu=0
post方式發送數據:發送post請求至 ip:port/api/put,參數為json數據,如下:
示例:
{ "metric": "sys.cpu.nice", "timestamp": 1346846400, "value": 18, "tags": { "host": "web01", "dc": "lga" }}
發送成功會返回204狀態
詳細請參見:
http://opentsdb.net/docs/build/html/api_http/put.html
-------------------------------------------
scan命令
掃描命令對於調試和導出數據點很有用。 提供開始時間,可選的結束時間和一個或多個查詢,響應將是可接受用於導入命令的文本格式的存儲或數據點的原始字節數據。 掃描還提供刪除數據的基本方法。 scan命令接受常見的CLI參數。 數據被發送到標準輸出。
請註意,雖然查詢需要聚合器,但卻被有效地忽略。 如果查詢包含許多時間序列,則掃描輸出可能非常大,因此在制作查詢時要小心。
scan [--delete|--import] START-DATE [END-DATE] query [queries...]
example ./tsdb scan 2014/05/01 sum test_uid ed=endp --delete
./tsdb scan 2014/05/01 sum TcpExt.ArpFilter --delete
一、OpenTSDB簡介
開源監控系統OpenTSDB,用hbase存儲所有的時序(無須 采樣)來構建一個分布式、可伸縮的時間序列數據庫。它支持秒級數據采集所有metrics,支持永久存儲,可以做容量規劃,並很容易的接入到現有的報警系 統裏。OpenTSDB可以從大規模的集群(包括集群中的網絡設備、操作系統、應用程序)中獲取相應的metrics並進行存儲、索引以及服務,從而使得這些數據更容易讓人理解,如web化,圖形化等。 對於運維工程師而言,OpenTSDB可以獲取基礎設施和服務的實時狀態信息,展示集群的各種軟硬件錯誤,性能變化以及性能瓶頸。對於管理者而言,OpenTSDB可以衡量系統的SLA,理解復雜系統間的相互作用,展示資源消耗情況。集群的整體 作業情況,可以用以輔助預算和集群資源協調。對於開發者而言,OpenTSDB可以展示集群的主要性能瓶頸,經常出現的錯誤,從而可以著力重點解決重要問題。二、OpenTSDB的安裝配置
1、基本環境搭建 首先確保你的系統有以下條件滿足: jdk 1.6 以上 並配置好環境變量 hbase 0.92 或更高版本 gnuplot 4.2 或更高(yum安裝吧)#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 #安裝新版本automake2、OpenTSDB的安裝 然後下面是我通過源碼安裝的過程,希望能夠有借鑒意義: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/gnuplot
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 |
三、grafana安裝(grafana的具體介紹及使用方法會單獨開一篇文章介紹)
Grafana 安裝 1, 在官網下載grafana 安裝包,安裝好了之後,根據安裝輸出日誌的提示 啟動 grafana 即可(grafana-server start) 2,啟動 grafana 後 打開機器 IP:3000端口 即可登錄 grafana 界面,初始密碼 admin admin 3,在 datasource 中添加一個數據源,選擇 opentsdb 填入 ip+端口 即可。opentsdb 默認為4242端口。opentsdb+grafana監控系按使用總結