您现在的位置是:首页 > 数码 > 

InfulxDb+grafana监控Windows运行状态

2025-07-27 02:40:20
InfulxDb+grafana监控Windows运行状态 看一下效果图: InfulxDb :/ docker docker pull influxdb 安装influxdb数据库 docker pull quay.io/influxdb/chronograf:1.8.4 chronograf可视化工具(非必要,只是可以web访问&#

InfulxDb+grafana监控Windows运行状态

看一下效果图:

InfulxDb

:/

docker

docker pull influxdb 安装influxdb数据库
docker pull quay.io/influxdb/chronograf:1.8.4 chronograf可视化工具(非必要,只是可以web访问,类似PHPMySQL)

docker run -d -p 8086:8086 -v /var/lib/influxdb:/var/lib/influxdb --name influxdb influxdb启动influxdb,其中-v参数表示将docker内的文件夹映射到本地,冒号前为本地路径,冒号后为docker内路径。-p表示映射端口,建议不使用默认的8086端口,比如-p 2222:8086

Windows

chronograf Windows可执行文件下载地址
influxdb Windows可执行文件下载地址

Windows运行很简单: -config (注意不是少打了一个b)
当然运行之前可以修改配置文件,主要修改字段:

bind-address = 0.0.0.0:8088 
[meta]dir = G:/Grafana/influxdb/meta[data]dir = G:/Grafana/influxdb/datawal-dir = G:/Grafana/influxdb/wal
[http]auth-enabled = true # 开启http密码验证

不过linux还是建议docker安装,Windows可以选择可执行文件,也可以docker,就看你是不是Windows10专业版了(因为Windows10专业版安装docker很简单)。

创建管理员用户

启动influxdb后,运行influxdb(windows先在cmd下cd到下载的所在目录然后输入)命令,输入一下命令即可
create user admin with password ‘admin’ with all privileges
注意修改admin账号和密码两个的值, 如果不是管理员无法操作数据库,不知道怎么处理,那就直接使用管理员吧

开启http auth验证

只需要按上面的配置文件修改就行,这里说一下如何修改docker内的文件,直接看命令( 命令中的influxdb:为docker启动时-name指定的名称,也可以是容器ID):
docker cp ./ influxdb:/etc/influxdb/
当然这个命令也支持将docker内的文件拷贝出来
docker cp influxdb:/etc/influxdb/ ./

python influxdb

influxdb的语句其实和MySQL的差不多。而且python库也封装了一些常用的命令,只需调用函数即可执行相应的功能,当然查询语句还是要自己写的。

具体方法请参考官方文档:.html

grafana

安装

如果是Windows,直接下载可执行文件安装即可(我没试过就不详细说了),下载地址:=windows

docker运行:
docker run -d -p 000:000 --name=grafana -v grafana-storage:/var/lib/grafana grafana/grafana
命令中grafana-storage为本地文件夹路径:比如也放在/var/lib/grafana

docker更新grafana:

docker pull grafana/grafana   #重新pull最新版本
docker stop my-grafana-container   # 停止已运行容器
docker rm my-grafana-container   # 删除旧容器

使用

浏览器访问IP:端口进入登录页面,IP看你运行在哪了,端口默认000。用户名密码都是admin,第一次登录会提示修改密码。

进入页面后默认大概是这样的:(开始是没有添加data source)

我们先添加一下data source(数据来源),点击左边像设置(Configuration)一样按钮,然后点击data sources,之后点击add data source。选择influxdb之后进入:

name任意,主要看http的URL是influxdb的IP和端口,然后是InfluxDB Details这一栏,需要填写database(数据库),User(用户名),password(密码),http method任意,get和post都行,我选的是post。然后点击save & test,如果显示绿的提示说明保存测试成功,如果是红的则数据库连接有误。

添加数据

grafana的准备工作就做完了,接着就需要往数据库中保存数据了。现成的工具有telegraf、collectd等。telegraf有exe可执行文件,用起来感觉还不错。而collectd主要是Linux用的,Windows虽然有可执行文件,但体验不怎么样,需要付费升级商业版。

官方下载地址:/
如果访问慢的地址:

启动: -config
注意启动之前修改配置文件,看一些主要修改字段:

[[outputs.influxdb]]urls = [http://127.0.0.1:8086]  # influxdb的链接database = telegraf    # 数据库名,不存在的话默认会自动创建username =  # influxdb配置的用户名和密码password = 

运行之后可以使用chronograf来看一下数据库里面有没有数据,也可以直接命令行进入数据库。(chronograf很简单就不多赘述了)

进入数据库的命令:influx -host 127.0.0.1 -port 8086 -username admin -password admin(注意修改后面的参数值),Windows需要下载可执行文件,下载路径:/。

添加grafana图表

既然数据库里有数据了,那么接下来我们通过grafana展示一下数据。
图表就不自己建了,我们也使用现成的(后面提一下怎么自己构建图表)。公开的图表下载地址:
=Telegraf&dataSource=influxdb&direction=asc&orderBy=name&search=Windows

如果需要其他图表可以自己更改筛选条件,在网页的左边就有选项

这里面有几个现成的图表,我们随便选择一个复制链接,比如第二个:

接着打开grafana的网页端,点击左边的好后点击import:

Grafana Dashboard这一栏中填刚才复制的地址,第二栏空着不管他,点击导入,

folder应该只有一个选项,选择他就行,telegraf选择开始添加的数据库。

接着就可以看到telegraf保存的系统状态了,不过有很多图表可能没数据,原因就需要你自己一个一个看了,可能是图表查询语句错了,也可能telegraf没有保存相应的数据。

自建图表

还是点击左边的加号,创建dashboard,

左边的add query是使用默认的Graph面板(panel),而右边则是选择面板。面板有很多,具体参考官方文档。更简单的做法是参考你前面导入的图表,看一下他们的查询语句和一些配置就知道该怎么做了,如果里面有一些选项不知道是干什么用的,点一下看看有什么变化可能就明白了。

我们直接点击add query,进入:

1、Query

填写查询语句的,Query后面是数据库的名称(也就是前面添加的data source)。下面的就是查询语句了,简单说一下:

FROM default select measurement WHERE default默认就行,当然你选择另外一个autogen也一样,这是由于influxdb数据库的原因,influxdb直接查询数据库下的某个measurement需要这样写:select * from 数据库名.名。当然更常用的是使用如下语句查询, 这样就可以省略autogen:

use 数据库名
select * from measurement名

其中measurement类似于表一样,如果数据库配置正确的话,点击select measurement 应该会出现所有的表。

第二行的SELECT很明显就是选择字段了,第二个是选择聚合函数,值得注意的是,如果不选择聚合函数,即使数据库里有数据,图表也不会显示。GROUP BY一般默认即可,当然也可以自己修改,FORMAT AS也是默认的,ALIAS BY表示取别名,当你添加了两个以上的查询语句时,用于显示Legend来区分。

2、Visualization

图表的一些设置,这个不好细说,另外我也刚接触只会皮毛就不献丑了。如果不知道某个选项什么作用,点一下看看有什么变化吧。也可以参考公开的图表怎么设置的。

、General

修改标题和描述用的

4、Alert

告警,应该是监控值有没有异常,如果有则发送邮件到指定邮箱(需提前配置发件邮箱),当然不一定是邮件还有其他类型。没用过,不知道怎么发送。而且使用了变量的图表还无法使用这个功能,会出现Template variables are not supported in alert queries,只有Graph面板能使用这个功能。

图片来自:

其他我就不介绍了,因为我也不会。最后说一点:页面右上角有一个刷新的图表,可以刷新数据,也可以选择自动刷新的时间间隔。

自建数据

前面使用了telegraf来将Windows的一些状态保存在数据库,现在我们说一下另一个神器的使用:AIDA64,至于这个有多神我就不描述了。虽然它功能十分强大,但现在只使用它的系统监控功能,先看一下AIDA的设置:

它可以将监控信息保存在文件,也可以发送到邮箱,甚至显示到桌面的任务栏等。当然这些我都没用过,我使用的是它将数据实时保存在共享内存中(在外部程序这个选项中),我们可以将所需要的数据勾选,然后通过编程语言来将共享内存中的数据同步到数据库,这里我使用的是Python。软件设置只需要在外部程序选项中勾选允许共享内存,另外可以选择性勾选需要的数据,也可以简单粗暴的全部勾选。

Python代码:

import re
import time
from datetime import datetime
from influxdb import InfluxDBClient
from ctypes import windll, c_char_p, c_inttvid = 	1245678	  # 用于grafana区分机器message = windll.kernel2.OpenFileMappingW
message.restype = c_intclient = InfluxDBClient(host=		, port=8086, username=		, password=		, database=		)handle = message(1, False, AIDA64_SensorValues)if handle:view = windll.kernel2.MapViewOfFileview.restype = c_char_pwhile True:xml = view(handle, 1, 0, 0, 256)re_ = r	<id>(.*?)</id><label>(.*?)</label><value>(.*?)</value>	data = {}data[	tvid	] = tvidfor i in re.findall(re_, xml.decode()):try:data[i[0].lower()] = int(i[2])except ValueError:try:data[i[0].lower()] = float(i[2])except ValueError:data[i[0].lower()] = i[2]d = {measurement: windows,time: datetime.utcnow().strftime(	%Y-%m-%dT%H:%M:%SZ	),tags: {	tvid	: tvid},fields: data}  if not client.write_points([d]):breaktime.sleep(4.99)else:print(0)

其他可以默认,注意修改InfluxDBClient的参数。

查看共享内存有没有数据:

from ctypes import windll, c_char_p, c_intmessage = windll.kernel2.OpenFileMappingWmessage.restype = c_inthandle = message(1, False, AIDA64_SensorValues)if handle:view = windll.kernel2.MapViewOfFileview.restype = c_char_pprint(view(handle, 1, 0, 0, 256))
else:print(0)

分享一下我用的AIDA64:

我的图表json(可以点击号 import,粘贴json导入),注意修改json中DataSource,我的是InfluxDB。有点大,放文件了:

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/shuma/857088.html

相关标签:无
上传时间: 2024-02-10 06:59:24
留言与评论(共有 15 条评论)
本站网友 证券基础知识电子书
10分钟前 发表
{ tvid
本站网友 奶粉真假
14分钟前 发表
windows
本站网友 南昌楼盘地图
6分钟前 发表
Query 填写查询语句的,Query后面是数据库的名称(也就是前面添加的data source)
本站网友 慰问环卫工人
25分钟前 发表
创建管理员用户 启动influxdb后,运行influxdb(windows先在cmd下cd到下载的所在目录然后输入)命令,输入一下命令即可 create user admin with password ‘admin’ with all privileges 注意修改admin账号和密码两个的值, 如果不是管理员无法操作数据库,不知道怎么处理,那就直接使用管理员吧 开启http auth验证 只需要按上面的配置文件修改就行,这里说一下如何修改docker内的文件,直接看命令( 命令中的influxdb
本站网友 deb
1秒前 发表
面板有很多,具体参考官方文档
本站网友 许昌美食
23分钟前 发表
xml.decode())
本站网友 杭州绿城翡翠城
10分钟前 发表
tvid}
本站网友 康宝莱减肥
19分钟前 发表
/etc/influxdb/ 当然这个命令也支持将docker内的文件拷贝出来 docker cp influxdb
本站网友 本故事纯属虚构
26分钟前 发表
面板有很多,具体参考官方文档
本站网友 39sss
27分钟前 发表
当然这些我都没用过,我使用的是它将数据实时保存在共享内存中(在外部程序这个选项中),我们可以将所需要的数据勾选,然后通过编程语言来将共享内存中的数据同步到数据库,这里我使用的是Python
本站网友 强殖装甲凯普
4分钟前 发表
000 --name=grafana -v grafana-storage
本站网友 费县吧
17分钟前 发表
具体方法请参考官方文档:.html grafana 安装 如果是Windows,直接下载可执行文件安装即可(我没试过就不详细说了),下载地址:=windows docker运行: docker run -d -p 000
本站网友 陈俊文
13分钟前 发表
具体方法请参考官方文档:.html grafana 安装 如果是Windows,直接下载可执行文件安装即可(我没试过就不详细说了),下载地址:=windows docker运行: docker run -d -p 000
本站网友 青海房产
11分钟前 发表
password=