目錄
系統描述.
開始之前.
安裝influxdb數據庫.
安裝collectd
安裝Grafana
FAQ
influxdb的web界面沒反應.
系統描述
想打造 New Relic 那樣漂亮的實時監控系統我們只需要 InfluxDB/collectd/Grafana 這三個工具,這三個工具的關系是這樣的:
采集數據(collectd)-> 存儲數據(InfluxDB) -> 顯示數據(Grafana)。
- InfluxDB 是用Go 語言開發的一個開源分布式時序數據庫,非常適合存儲指標、事件、分析等數據
- collectd 是用C 語言寫的一個系統性能采集工具;
- Grafana 是純 Javascript 開發的前端工具,用於訪問 InfluxDB,自定義報表、顯示圖表等。
開發環境
系統版本信息 |
Linux version 3.10.0-123.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC) ) 按照Centos7 最小化模式安裝 |
使用軟件版本 |
Collectd:collectd-5.5.0-2.el7.x86_64 Influxdb:influxdb-0.8.8-1.x86_64 Garfana:grafana-2.0.2-1.x86_64 |
開始之前
關閉selinux:
[root@localhost ~]# vi /etc/selinux/config
將SELINUX=enforcing修改為SELINUX=disabled
校准時間:
設定為上海時區
[root@localhost log]# timedatectl set-timezone Asia/Shanghai
同步時間
[root@localhost log]# /usr/sbin/ntpdate time.nist.gov
注:
我自己寫了一個比較粗糙的一鍵安裝三個軟件的腳本,github地址:
https://github.com/Kylinlin/install_performance_monitor_automatically
安裝influxdb數據庫
從該網址下載軟件:https://s3.amazonaws.com/influxdb/influxdb-0.8.8-1.x86_64.rpm
解壓安裝
[root@localhost ~]# rpm -ivh influxdb-0.8.8-1.x86_64.rpm
關閉防火牆:
[root@localhost ~]# systemctl stop firewalld.service
在防火牆中添加端口:
[root@localhost ~]# firewall-cmd --zone=public --add-port=8083/tcp --permanent (添加5666端口)
[root@localhost ~]# firewall-cmd --reload (重啟防火牆)
啟動該進程:
[root@localhost ~]# /etc/init.d/influxdb start
注意,必須出現紅色方框內的字體才表示安裝並且啟動成功
打開瀏覽器,輸入地址http://192.168.1.204:8083/,可以看到啟動后的畫面,登陸名和密碼默認都是root
創建數據庫:輸入數據庫名稱collectd,然后點擊Create Database按鈕
數據庫創建成功
influxdb的配置文件的位置:/opt/influxdb/shared/config.toml
安裝collectd
從這里下載軟件:
http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
安裝:
[root@slave204 tmp]# rpm –ivh epel-release-7-5.noarch.rpm
[root@slave204 tmp]# yum install collectd –y
collectd的配置文件為/etc/collectd.conf,其執行文件位於/usr/sbin/collectd
首先備份配置文件
[root@slave204 tmp]# cp /etc/collectd.conf /etc/collectd.conf_backup
然后修改配置文件:[root@localhost ~]# vi /etc/collectd.conf
首先去掉如下注釋,並修改Hostname
再去掉LoadPlugin network 和 LoadPlugin uptime前面的#
並在Plugin Configuration下面添加一個配置項
保存並退出,執行檢查命令::[root@localhost etc]# /usr/sbin/collectd –t
如果沒有任何輸出,則說明配置正確
啟動:[root@localhost etc]# systemctl start collectd.service
把collectd的數據存放到influxdb中
首先備份influxdb的配置文件
[root@slave204 tmp]# cp /opt/influxdb/shared/config.toml /opt/influxdb/shared/config.toml_backup
然后修改配置文件中的[input_plugins.collectd]配置成如下:
[root@slave204 tmp]# vim /opt/influxdb/shared/config.toml
重啟influxdb
[root@slave204 tmp]# /etc/init.d/influxdb restart
刷新influxdb的web界面,進入collectd的數據庫
查看內存使用結果:select * from "influxdb/memory/memory-used"
安裝Grafana
下載安裝包:
https://grafanarel.s3.amazonaws.com/builds/grafana-2.0.2-1.x86_64.rpm
[root@localhost ~]# yum install initscripts fontconfig -y
[root@slave204 tmp]# rpm -ivh grafana-2.0.2-1.x86_64.rpm
設置開機啟動
[root@slave204 tmp]# systemctl daemon-reload
啟動grafana服務器
[root@slave204 tmp]# systemctl start grafana-server
檢查啟動狀態是否成功
[root@slave204 tmp]# systemctl status grafana-server
登陸web界面:192.168.1.204:3000,用戶名和密碼都是admin
配置數據源
登陸后看到一片空白,通過點擊圖標進行所有的配置
首先修改密碼:
把數據庫的數據導入到granfa里,全部按照如下進行配置:
Name: influxdb
Type: InfluxDB 0.8.x
Database: collectd
User: root Password: root
創建儀表板
回到首頁,點擊Home
上面已經創建了一個空白的儀表板,現在往儀表板中添加監視元素
監控CPU空閑率
給圖表創建標題
定義查詢語句
上圖中的derivative函數的具體定義參考這里:
https://influxdb.com/docs/v0.8/api/aggregate_functions.html
定義坐標軸
監控內存
監控網卡
定義圖表顯示的內容(series的可用值就是在influxdb的web界面執行list series后顯示的內容),可以重復點擊Add query來添加內容:
注意這里有多個網卡,首先確認你系統的網卡再做選擇
在創建完之后,點擊Back to dashboard返回首頁
FAQ
influxdb的web界面沒反應
安裝了influxdb后,登陸了web界面,輸入了用戶名和密碼之后點擊Connect按鈕沒有反應。
答:關閉防火牆即可