看效果图:InfulxDb官网:https://portal.influxdata.com...dockerdockerpullinfluxdb安装influxdb数据库dockerpullquay.io/influxdb/chronograf:1.8.4Chronograf可视化工具(非必须,web访问即可,类似PHPMySQL)dockerrun-d-p8086:8086-v/var/lib/influxdb:/var/lib/influxdb--nameinfluxdbinfluxdb启动influxdb,其中-v参数表示将docker中的文件夹映射到本地,冒号前为本地路径,冒号后为docker中的路径。-p表示映射端口,建议不要使用默认的8086端口,如-p2222:8086。WindowschronografWindows可执行文件下载地址influxdbWindows可执行文件下载地址Windows操作很简单:influxd.exe-configinfluxdb.conf(注意不能少b)当然可以在运行前修改influxdb.conf配置文件,主要是修改字段:bind-address="0.0.0.0:8088"[meta]dir="G:/Grafana/influxdb/meta"[data]dir="G:/Grafana/influxdb/data"wal-dir="G:/Grafana/influxdb/wal"[http]auth-enabled=true#启用http密码认证,不过linux还是推荐docker安装,windows可以选择可执行文件,也可以选择docker,看你是不是Windows10专业的(因为Windows10专业安装docker很简单)。创建管理员用户并启动influxdb后,运行influxdb(windows,先cmd下,cd到下载的influx.exe所在目录,然后输入influx.exe)命令,输入命令创建用户admin,密码'admin'具有所有权限注意修改admin账号和密码的值。如果管理员不能操作数据库,不知道怎么处理,那就直接用管理员开启httpauth验证。只需要修改上面的配置文件即可。下面是修改docker命令中的文件,直接看命令(命令中的influxdb:docker启动时-name指定的名称,或者容器ID):dockercp./influxdb.confinfluxdb:/etc/influxdb/influxdb.conf当然这个命令也支持复制docker里面的文件outdockercpinfluxdb:/etc/influxdb/influxdb.conf./influxdb.confpythoninfluxdbinfluxdb其实和MySQL类似。而且python库还封装了一些常用的命令,你只需要调用函数就可以执行相应的功能。当然,你还是需要自己写查询语句。具体方法可以参考官方文档:https://influxdb-python.readt...Grafana安装如果是Windows,直接下载可执行文件安装即可(我没试过,就不做了)不细说),下载地址:https://grafana.com/grafana/d...dockerrun:dockerrun-d-p3000:3000--name=grafana-vgrafana-storage:/var/lib/grafanagrafana/grafana命令grafana-storage为本地文件夹路径:比如也放在/var/lib/grafanadocker更新grafana:dockerpullgrafana/grafana#重新拉取最新版本dockerstopmy-grafana-container#停止正在运行的容器dockerrmmy-grafana-container#删除旧容器使用浏览器访问IP:端口进入登录页面,IP看你在什么地方运行,默认端口是3000。用户名和密码都是admin,第一次登录会提示修改密码。进入页面后,默认大概是这样的:(一开始没有添加数据源)我们先添加一个数据源(datasource),点击左边类似Configuration的按钮,然后点击datasources,然后单击添加数据源。选择influxdb后,输入:name随意,主要看http的url是influxdb的IP和端口,然后在InfluxDBDetails一栏,需要填写database(数据库),User(用户名),password(密码),http方法任意,get和post都可以,我选post。然后点击保存并测试。如果出现绿色提示,则保存测试成功。如果为红色,则数据库连接不正确。向grafana添加数据的准备工作已经完成,接下来需要将数据保存到数据库中。现成的工具有telegraf、collectd等,Telegraf有一个exe可执行文件,用起来感觉还不错。而collectd主要用于Linux。Windows虽然有可执行文件,但体验不是很好,升级商业版需要付费。官方下载地址:https://portal.influxdata.com...如果访问速度慢:https://lanzous.com/icdvnhg启动:telegraf.exe-configtelegraf.conf启动前注意修改配置文件,读取一些主要修改字段:[[outputs.influxdb]]urls=["http://127.0.0.1:8086"]#influxdblinkdatabase="telegraf"#数据库名,如果不存在,则为默认自动创建username=""#influxdb配置的用户名和密码password=""运行后可以使用chronograf查看数据库中是否有数据,也可以直接命令行进入数据库。(chronograf很简单,这里就不细说了)进入数据库的命令:influx-host127.0.0.1-port8086-usernameadmin-passwordadmin(注意修改后面的参数值),Windows需要下载可执行文件influx.exe,下载路径:https://portal.influxdata.com...。添加grafana图表既然数据库中有了数据,我们就通过grafana来展示数据。我们不自己建图表,我们也是用现成的(后面会提到如何自己建图表)。公开图表下载地址:https://grafana.com/grafana/d...如果需要其他图表,可以自己更改过滤条件,网页左侧有选项。这里有几个现成的图表,我们随便选择一个复制链接,比如第二个:https://grafana.com/grafana/d...然后打开grafana的网页,点击左边的+号,然后点击import:Grafana.comDashboard填写刚刚复制的地址,第二栏留空,点击Import,文件夹应该只有一个选项,选择即可,telegraf选择数据库开始添加。然后就可以看到telegraf保存的系统状态了。但是,有很多图表可能没有数据。您需要一一阅读。可能是图表的查询语句有误,也可能是telegraf没有保存相应的数据。对于自建图表,点击左侧加号创建仪表盘,左侧添加查询使用默认的Graph面板(面板),右侧选择面板。面板有很多,具体请参考官方文档。更简单的方法是参考你之前导入的图表,看看他们的查询语句和一些配置,你就知道该怎么做了。如果里面有些选项你不知道是干什么用的,点进去看看你可能明白哪些变化了。我们直接点击添加查询进入:1.查询填写查询语句,后面是数据库的名称(也就是前面添加的数据源)。以下是查询语句。简单地说:FROMdefaultselectmeasurementWHEREdefaultisfine。当然,如果你选择其他的autogen也是一样的。这是因为influxdb数据库。influxdb直接查询数据库下的某个measurement,需要这样写:select*fromdatabasename.autogen.measurementname。当然更常见的是使用如下语句查询,这样就可以省略autogen:usedatabasenameselect*frommeasurementnamewheremeasurement类似于一个表。如果数据库配置正确,单击选择测量,所有表都应该出现。第二行的SELECT很明显是选择字段,其次是选择聚合函数。值得注意的是,如果不选择聚合功能,即使数据库中有数据,也不会显示图表。GROUPBY一般都是默认的,当然你也可以自己修改。FORMATAS也是默认值。ALIASBY表示取一个别名。当你添加两个以上的查询语句时,用来显示Legend来区分。2.Visualization图表的一些设置,这个不好说,我也是新手,只能粗略的说一下,不秀丑。如果您不知道某个选项的作用,请单击它以查看有何变化。您也可以参考如何设置公共图表。3.一般修改标题和描述。4.警报。应该是监测值有没有异常。如果是,发送邮件到指定邮箱(需要提前配置好发送邮箱)。当然,不一定是邮件,还有其他类型。没用过,不知道怎么寄。此外,此函数不能用于使用变量的图表。Templatevariablesarenotsupportedinalertqueries会出现,只有Graph面板可以使用这个功能。图片来自:https://www.jianshu.com/p/2b2...其他的我就不介绍了,因为我也不知道怎么做。最后一点:页面右上角有刷新图表,可以刷新数据,也可以选择自动刷新的时间间隔。在自建数据前,使用telegraf将Windows的一些状态保存在数据库中。下面说说另一款神器AIDA64的使用。至于这有多神奇,我就不描述了。虽然很强大,但是现在只用到它的系统监控功能,先看看AIDA的设置:它可以将监控信息保存在一个文件中,或者发送到邮箱,甚至可以显示在桌面的任务栏上.当然,我从来没有用过这些。我使用的是它实时将数据保存在共享内存中(在外部程序的选项中)。我们可以检查需要的数据,然后使用编程语言将数据保存在共享内存中。数据同步到数据库,这里我用的是Python。软件设置只需要在外部程序选项中勾选允许共享内存即可。另外,你可以有选择地勾选需要的数据,也可以简单粗暴的全部勾选。Python代码:importreimporttimefromdatetimeimportdatetimefrominfluxdbimportInfluxDBClientfromctypesimportwindll,c_char_p,c_inttvid='12345678'#使用于grafana区域分机message=windll.kernel32.OpenFileMappingWmessage.restype=c_intclient=InfluxDBClient(host='',port=8086,用户名='',密码='',数据库='')handle=message(1,False,"AIDA64_SensorValues")ifhandle:view=windll.kernel32.MapViewOfFileview.restype=c_char_pwhileTrue:xml=view(handle,1,0,0,256)re_=r'
