天天看點

Django + Influxdb + collectd 實作系統,web頁面監控Django 項目中使用 influxdb 時序資料庫實時監控CPU,網絡等資訊2. 安裝配置 InfluxDB3. 安裝Django 依賴庫

Django 項目中使用 influxdb 時序資料庫實時監控CPU,網絡等資訊

InfluxDB 是 Go 語言開發的一個開源分布式時序資料庫,非常适合存儲名額、事件、分析等資料

collectd C 語言寫的一個系統性能采集工具

1. 安裝配置 collectd 以centos7為例

使用yum安裝

  • yum -y install epel-release
  • yum -y install collectd

安裝完成後找尋配置檔案 collectd.conf

預設路徑為 /etc/collectd.conf (debian 8 上是 /etc/collectd/collectd.conf)

修改以下内容以監測網卡和cpu資訊為例

可以按照需求找尋需要的配置

https://collectd.org/documentation/manpages/collectd.conf.5.shtml#plugin_cpu

找到檔案後 vi collectd.conf 找到以下内容,将注釋解開。

*FQDNLookup true

*BaseDir “/var/lib/collectd”

*PIDFile “/var/run/collectd.pid”

*PluginDir “/usr/lib64/collectd”

*TypesDB “/usr/share/collectd/types.db”

*LoadPlugin syslog

*LoadPlugin interface

*LoadPlugin load

*LoadPlugin network

Django + Influxdb + collectd 實作系統,web頁面監控Django 項目中使用 influxdb 時序資料庫實時監控CPU,網絡等資訊2. 安裝配置 InfluxDB3. 安裝Django 依賴庫

最關鍵的是 “network” plugin,這部分設定監控資訊将要發送到 127.0.0.1 的 25826 端口。稍後我們将要指定 InfluxDB 監聽此端口以接收 CollectD 的發包。

現在啟動這個守護程式,并且将它加入到開機自啟動中。

systemctl start collectd.service

systemctl enable collectd.service

2. 安裝配置 InfluxDB

yum -y install http://influxdb.s3.amazonaws.com/influxdb-0.9.4.2-1.x86_64.rpm

編輯 InfluxDB 的配置檔案 /etc/opt/infuxdb/influxdb.conf,将 [collectd] 标簽下的内容修改為:

  • [collectd]
  • enabled = true
  • bind-address = “127.0.0.1:25826” # 換成本機IP
  • database = “collectd”
  • typesdb = “/usr/share/collectd/types.db”

啟動程式

systemctl start influxdb.service

接下來你可以驗證是否成功寫入資料庫

輸入 、/opt/influxdb/influx 進入資料庫IED界面,當然你也可以設定環境變量,操作方法和檢視mongo資料庫一樣

Django + Influxdb + collectd 實作系統,web頁面監控Django 項目中使用 influxdb 時序資料庫實時監控CPU,網絡等資訊2. 安裝配置 InfluxDB3. 安裝Django 依賴庫

3. 安裝Django 依賴庫

pip install influxdb

pip install django_influxdb_metrics

django 項目中的 settings 檔案中app注冊中增加這一行

Django + Influxdb + collectd 實作系統,web頁面監控Django 項目中使用 influxdb 時序資料庫實時監控CPU,網絡等資訊2. 安裝配置 InfluxDB3. 安裝Django 依賴庫

底部加入以下内容

Django + Influxdb + collectd 實作系統,web頁面監控Django 項目中使用 influxdb 時序資料庫實時監控CPU,網絡等資訊2. 安裝配置 InfluxDB3. 安裝Django 依賴庫

在Django中加入測試代碼,檢視資料是否能正常擷取

需要的 views.py 中導包

from influxdb_metrics.utils import query

def test():

data = [res for res in query(‘select * from cpu_value ORDER BY time DESC limit 1’)]

這樣資料就成功拿到,并且時時更新資料庫啦。親測可以用,分享出來,不懂的地方留言!

最好的一點就是資料不需要去插入操作,直接調取資料就行,按照需求選擇插入時間,和查詢時間對指定進行監測。