搭建grafana+influxdb+telegraf,以及常見問題

1.Install

1.1. influxdb

sudo yum install influxdb
sudo systemctl start influxdb

判斷已經安裝完成,輸入下面的命令,可以進入influxDB的界面

> influx

1.2. Telegraf 修改版本

wget https://dl.influxdata.com/telegraf/releases/telegraf-1.9.1_linux_amd64.tar.gz
        tar xf telegraf-1.9.1_linux_amd64.tar.gz
telegraf -version

1.2.3 啟動服務

config: /etc/telegraf/telegraf.conf

sudo systemctl start telegraf
sudo systemctl status telegraf 
sudo systemctl enable telegraf

1.3. Grafana 修改版本

1.3.1 安裝grafana

wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.1.2-1.x86_64.rpm 

1.3.2 啟動服務、添加開機啟動:

systemctl enable grafana-server
systemctl start grafana-server

1.3.3 配置說明

# 配置文件 /etc/grafana/grafana.ini
# systemd服務名 grafana-server.service
# 默認日志文件 /var/log/grafana/grafana.log
# 默認數據庫文件 /var/lib/grafana/grafana.db

1.3.4 add plugin

添加插件

sudo grafana-cli plugins install grafana-clock-panel
sudo systemctl restart grafana-server

2. grafana 需要關注的幾個點

2.1 Metric

For Mode there are three options:

The default option is Time and means the x-axis represents time and that the data is grouped by time (for example, by hour or by minute).

The Series option means that the data is grouped by series and not by time. The y-axis still represents the value.
The Histogram option converts the graph into a histogram. A Histogram is a kind of bar chart that groups numbers into ranges,
often called buckets or bins.
Taller bars show that more data falls in that range. Histograms and buckets are described in more detail here.

2.2 Variables

Variables are shown as dropdown select boxes at the top of the dashboard. These dropdowns make it easy to change the data being displayed in your dashboard.

2.3 templating

時間間隔

1. 選擇 New 按鈕新建一個模板變量
2. 選擇 Interval 變量類型,我們可以用這種變量表達時間間隔,同時設置 Name 和 Label,Name 是變量名稱,實際引用的時候用$變量名稱進行引用;Label 本身無實際作用,主要是用來展示在界面,讓用戶更加容易理解的。
3. 可以看到在 Values 中,已經有大量預置的時間間隔,我們可以在其中增加,諸如 1m(1分鐘),1h(1小時),1d(1天)等時間間隔變量
在界面,我們可以見到已經生成了名為時間間隔的下拉框列表,列表中包括了我們設置的時間間隔預設值
4. 將時序查詢的 interval 設置為 $t (t 為我們設置的變量Name)。此時在下拉框里選擇不同的時間間隔,圖表將隨之進行切換。

基于查詢結果的下拉列表


前置步驟請參考時間間隔變量設置
選擇Query 類型
Data source 選擇你查詢的目標數據源
Query 是查詢所有可能值的查詢語句,ES/Logdb 的查詢方式是{"find": "terms", "field": "status"},其中status 是我們查詢的目標字段,在這里可以替換成你需要的字段。更深入的語法請參考 ES 官方文檔。
Regex 可以選擇對于返回的狀態值進行正則表達式過濾
Sort 選擇排序方式
Multi-value 控制下拉框是否可以支持多選,如果不選中則只能單選
Include all value 控制是否可以支持All選項,支持全選所有的值,只在多選的模式下有效果
Preview of values 可以預覽這個字段的所有值

templating

2.4 provisioning

  1. edit the config grafana.ini
# folder that contains provisioning config files that grafana will apply on startup and while running.
;provisioning = conf/provisioning
  1. add the dashborads.yaml and db.yaml file, location in /etc/grafana/provisioning/dashborads and /etc/grafana/provisioning/databases

3. 常見問題

3.1 how to get the parameter from the url

for example, nodename

  1. set Custom Variables ,name as nodename
  2. add the parameter var-nodename=“test”,such as
Use  Url http://servername:3000/dashboard/db/dashboard?refresh=10s&var-nodename=“test”

  1. In Query: use where clause as shown below:
WHERE nodename =$nodename

you can see the output

select * 
from table
where nodename ="test"

3.2 nginx 反向代理到 grafana

grafana配置nginx反向代理

將grafana配到www.myserver.com域名的/grafana/的location下

  1. nginx配置
location /grafana/ {
                proxy_pass http://grafana_server:3000/;
                proxy_set_header   Host $host;
        }
  1. grafana配置文件修改
#在/etc/grafana/grafana.ini配置文件中修改
domain = www.myserver.com
root_url = %(protocol)s://%(domain)s/grafana

4. influxDB+telegraf

4.1 監聽多臺服務

  1. 在需要監控的機器上面安裝對應的telegraf
  2. 并且配置上報的influxdb的機器和數據庫
#Configuration for influxdb server to send metrics to 

[[outputs.influxdb]] 

urls = [“http://1x.xxx:8086”] #influxdb地址 

database = “telegraf_ali” # required #influxdb數據庫 

retention_policy = “”#數據保留策略 

write_consistency = “any” #數據寫入策略,僅適用于集群模式 

timeout = “5s” #寫入超時策略 

username = “telegraf_ali” #數據庫用戶名 

password = “gPHhbeh” #數據庫密碼 

#user_agent = “telegraf” #采集器代理名稱

4.1.1 TRY

  1. A機器部署influxdb+telegraf
> influx
> use telegraf;
> SHOW TAG VALUES FROM system WITH KEY=host
# 可以看到一臺主機的信息
  1. B機器部署telegraf
  2. 在B機器,修改telegraf influxdb地址,使用默認telegraf
  3. 重啟機器B 的telegraf機器
    進入A機器
> influx
> use telegraf;
> SHOW TAG VALUES FROM system WITH KEY=host

  • 上面查詢主機的信息1條--> 兩條主機信息,說明操作成功
image

POLICY

> CREATE RETENTION POLICY "2h0m0s" ON "telegraf" DURATION 2h REPLICATION 1 DEFAULT
> SHOW RETENTION POLICIES ON telegraf
name    duration shardGroupDuration replicaN default
----    -------- ------------------ -------- -------
autogen 0s       168h0m0s           1        false
2h0m0s  2h0m0s   1h0m0s             1        true
SELECT time,host,usage_system FROM "autogen".cpu limit 2
name: cpu
time                host             usage_system
----                ----             ------------
1526008670000000000 VM_42_233_centos 1.7262947210419817
1526008670000000000 VM_42_233_centos 1.30130130130254
SELECT 100 - usage_idel FROM "autogen"."cpu" WHERE time > now() - 1m and "cpu"='cpu0'

4.2 COMMAND

SHOW MEASUREMENTS  --查詢當前數據庫中含有的表
SHOW FIELD KEYS --查看當前數據庫所有表的字段
SHOW series from pay --查看key數據
SHOW TAG KEYS FROM "pay" --查看key中tag key值
SHOW TAG VALUES FROM "pay" WITH KEY = "merId" --查看key中tag 指定key值對應的值
SHOW TAG VALUES FROM cpu WITH KEY IN ("region", "host") WHERE service = 'redis'
DROP SERIES FROM <measurement_name[,measurement_name]> WHERE <tag_key>='<tag_value>' --刪除key
SHOW CONTINUOUS QUERIES   --查看連續執行命令
SHOW QUERIES  --查看最后執行命令
KILL QUERY <qid> --結束命令
SHOW RETENTION POLICIES ON mydb  --查看保留數據
查詢數據
SELECT * FROM /.*/ LIMIT 1  --查詢當前數據庫下所有表的第一行記錄
select * from pay  order by time desc limit 2
select * from  db_name."POLICIES name".measurement_name --指定查詢數據庫下數據保留中的表數據 POLICIES name數據保留
刪除數據
delete from "query" --刪除表所有數據,則表就不存在了
drop MEASUREMENT "query"   --刪除表(注意會把數據保留刪除使用delete不會)
DELETE FROM cpu
DELETE FROM cpu WHERE time < '2000-01-01T00:00:00Z'
DELETE WHERE time < '2000-01-01T00:00:00Z'
DROP DATABASE “testDB” --刪除數據庫
DROP RETENTION POLICY "dbbak" ON mydb --刪除保留數據為dbbak數據
DROP SERIES from pay where tag_key='' --刪除key中的tag

SHOW SHARDS  --查看數據存儲文件
DROP SHARD 1
SHOW SHARD GROUPS
SHOW SUBSCRIPTIONS

4.3 grafana tools

- [Puppet](https://forge.puppet.com/puppet/grafana)
- [Ansible](https://github.com/cloudalchemy/ansible-grafana)
- [Chef](https://github.com/JonathanTron/chef-grafana)
- [Saltstack](https://github.com/salt-formulas/salt-formula-grafana)
- [Jsonnet](https://github.com/grafana/grafonnet-lib/)
- [quick install](https://github.com/samuelebistoletti/docker-statsd-influxdb-grafana)

4.3.1 quick install

Centos 7 docker 啟動grafana容器報"iptables No chain/target/match by that name"

docker run -d -p 3000:3000  grafana/grafana:5.1.0  
Error response from daemon: Cannot start container 565c06efde6cd4411e2596ef3d726817c58dd777bc5fd13762e0c34d86076b9e: iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 3888 -j DNAT --to-destination 192.168.42.11:3888 ! -i docker0: iptables: No chain/target/match by that name

4.3.2 解決方法:

vim /etc/sysconfig/iptables

*nat
:PREROUTING ACCEPT [27:11935]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [598:57368]
:POSTROUTING ACCEPT [591:57092]
:DOCKER - [0:0]
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:DOCKER - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 10.0.0.0/8 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10050 -j ACCEPT
-A INPUT -s 172.16.0.0/12 -j ACCEPT
-A INPUT -s 192.168.0.0/16 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j DROP
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3000 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 36091 -j ACCEPT
-A INPUT -j DROP
-A FORWARD -j DROP
-A OUTPUT -j ACCEPT
COMMIT

5. remove

5.1 remove influxdb

卸載命令:

[root@localhost shared]# rpm -q influxdb 
influxdb-0.8.7-1.x86_64 
[root@localhost shared]# rpm -e influxdb 
[root@localhost shared]# rpm -q influxdb 
package influxdb is not installed

參數說明:

首先通過 rpm -q <關鍵字> 可以查詢到rpm包的名字
然后 調用 rpm -e <包的名字> 刪除特定rpm包
如果遇到依賴,無法刪除,使用 rpm -e --nodeps <包的名字> 不檢查依賴,直接刪除rpm包
如果恰好有多個包叫同樣的名字,使用 rpm -e --allmatches --nodeps <包的名字> 刪除所有相同名字的包, 并忽略依賴
刪除完后,清除已有文件:

[root@localhost opt]# ls 
influxdb 
[root@localhost opt]# rm -rf influxdb 
[root@localhost opt]# ls

處理端口占用

name=$(lsof -i:8086|tail -1|awk '"$1"!=""{print $2}')
if [ -z $name ]
then
    echo "No process can be used to killed!"
    exit 0
fi
id=$(lsof -i:8086|tail -1|awk '"$1"!=""{print $2}')
kill -9 $id
 
echo "Process name=$name($id) kill!"
exit 0

5.2 remove grafana

移除命令

sudo yum remove grafana

5.3 remove telegraf

sudo yum remove telegraf
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,333評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,491評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,263評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,946評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,708評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,186評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,255評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,409評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,939評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,774評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,976評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,518評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,209評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,641評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,872評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,650評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,958評論 2 373

推薦閱讀更多精彩內容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi閱讀 7,388評論 0 10
  • 廚房是一個特別的地方,對于不同人的意義不同,有人覺得廚房只是做飯的地方,但是對于一些人,廚房承載了很多時間和能量,...
    分類收納術閱讀 1,045評論 2 22
  • 表面的心已麻木 里面的心卻肆意晃動 不滿足于晃動后 就猛烈地撞擊 撞擊后的碎片...
    長花閱讀 258評論 0 1
  • 次限中月亮與木星成相 月亮與木星成相的時候如果不摻雜其他行星影響,通常都會給關系帶來積極作用。在月亮和木星成相的時...
    mia7023閱讀 7,146評論 0 0
  • 白井黑子cn:柚子 御坂美琴cn:小西
    柚子samai閱讀 507評論 0 1