天天看点

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’)]

这样数据就成功拿到,并且时时更新数据库啦。亲测可以用,分享出来,不懂的地方留言!

最好的一点就是数据不需要去插入操作,直接调取数据就行,按照需求选择插入时间,和查询时间对指定进行监测。