看一下效果图:

InfulxDb

官方网站:https://portal.influxdata.com/downloads/

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运行很简单:influxd.exe -config influxdb.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)命令,输入一下命令即可
create user admin with password ‘admin’ with all privileges
注意修改admin账号和密码两个的值, 如果不是管理员无法操作数据库,不知道怎么处理,那就直接使用管理员吧

开启http auth验证

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

python influxdb

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

具体方法请参考官方文档:https://influxdb-python.readthedocs.io/en/latest/include-readme.html

grafana

安装

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

docker运行:
docker run -d -p 3000:3000 --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看你运行在哪了,端口默认3000。用户名密码都是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虽然有可执行文件,但体验不怎么样,需要付费升级商业版。

官方下载地址:https://portal.influxdata.com/downloads/
如果访问慢的地址:https://lanzous.com/icdvnhg

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

[[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需要下载可执行文件influx.exe,下载路径:https://portal.influxdata.com/downloads/。

添加grafana图表

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

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

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

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

Grafana.com 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.measurement名。当然更常用的是使用如下语句查询, 这样就可以省略autogen:

use 数据库名
select * from measurement名

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

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

2、Visualization

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

3、General

修改标题和描述用的

4、Alert

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

图片来自:https://www.jianshu.com/p/2b230390f37e

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

自建数据

前面使用了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 = '12345678'  # 用于grafana区分机器message = windll.kernel32.OpenFileMappingW
message.restype = c_intclient = InfluxDBClient(host='', port=8086, username='', password='', database='')handle = message(1, False, "AIDA64_SensorValues")if handle:view = windll.kernel32.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.kernel32.OpenFileMappingWmessage.restype = c_inthandle = message(1, False, "AIDA64_SensorValues")if handle:view = windll.kernel32.MapViewOfFileview.restype = c_char_pprint(view(handle, 1, 0, 0, 256))
else:print(0)

分享一下我用的AIDA64:https://lanzous.com/icdysif

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

InfulxDb+grafana监控Windows运行状态相关推荐

  1. metrics类型 普罗米修斯_使用普罗米修斯和Grafana监控Flink运行状态

    Pushgateway pushgateway 是一个Prometheus 生态中重要工具,因为Prometheus采用Pull模式,可能由于一些原因,Prometheus无法直接拉取各个target ...

  2. 用Spotlight on windows 实时监控Windows服务器性能

    用Spotlight on windows 实时监控Windows服务器性能 2010-02-03 10:30:25|  分类: else |  标签: |字号大中小 订阅 用Spotlight on ...

  3. prometheus+grafana监控以及企业微信告警

    prometheus+grafana监控以及企业微信告警(单机二进制部署) 一.下载部署包,更改其中两个包名称,放到/data下 1.安装包以及解压步骤 grafana-enterprise-8.4. ...

  4. 监控Windows服务器

    1. 监控内容 windows服务器的内部参数包括以下 a. 内存使用状况 b. CPU负载 c. 磁盘使用状况 d. 服务状态 e. 运行的进程 2. 监控原理 在windows服务器内安装NSCl ...

  5. 运维监控系列(8)-Prometheus+Grafana监控常用微服务中间件Nacos、Seata、Rocketmq

    Nacos Nacos官方文档 Nacos支持通过暴露metrics数据接入第三方监控系统监控Nacos运行状态,目前支持prometheus.elastic search和influxdb. 1. ...

  6. prometheus监控windows系统

    prometheus监控windows系统 本文主要介绍如何使用prometheus监控windows系统,以及在搭建监控时遇到的问题. 环境:windows 文章目录 prometheus监控win ...

  7. Prometheus + Grafana 监控和告警

    文章目录 0,数据接入和告警流程 1,Prometheus 1.1 Prometheus 主程序 1.1.1 修改配置文件:prometheus.yml 1.1.2 验证配置是否正确,然后启动服务(w ...

  8. zabbix监控windows(03,08)

    监控windows主机: 下载zabbix_agents_2.2.3.win.zip (zabbix官网下载) 解压文件,把对应的文件(32位或者64位)考到C盘根目录(对应目录就OK)并带配置文件: ...

  9. grafana 监控mysql_Prometheus+Grafana监控MySQL性能

    今天来写一篇监控MySQL数据库的的监控方案:Prometheus+Grafana监控mysql性能 1.监控方案介绍 祖传老图修一修: 解释一波:①mysqld_exporter用来收集数据库的性能 ...

最新文章

  1. ESP32移植wolfssl方法
  2. 2025年全球结构化布线市场预计将达到165亿美元
  3. SAP Hybris Enterprise Commerce Platform ECP架构综述
  4. 浙江省2021年英语高考成绩查询,浙江高考成绩查询、志愿填报时间公布!
  5. 使shell用结构化命令
  6. 《那些年啊,那些事——一个程序员的奋斗史》——54
  7. 【图像隐写】基于matlab高斯模型JPEG图像隐写【含Matlab源码 367期】
  8. 五金冲压模具设计分享pressCAD外挂使用小窍门
  9. html如何实现左右布局,前端中的左右布局实现
  10. 如何轻松愉快的搞定产品经理面试
  11. Kafka 2.8.0 学习
  12. 职业规划 思维导图
  13. 社群运营和用户运营的区别
  14. android 原生分享文件,Android原生文件分享
  15. sql使用WITH ROLLUP分组统计并求总数
  16. GAMES101 梳理 / 个人向图形学笔记
  17. linux内存不足导致tomcat宕机
  18. 推荐算法架构2:粗排
  19. OC开发之——OC简介(1)
  20. Ubuntu v20.04 Detailed installation tutorial

热门文章

  1. SQL语句中发送微信消息
  2. 怎样把照片中的头像扶正_心理学:一个男人的微信头像,往往暴露了“人品”,你是哪一种?...
  3. 如何查看CPU指令集
  4. 信道检测手机软件 ios_微瑞“云检测”软件推出苹果iOS系统版啦!
  5. 一个优秀的品牌名至少应做到这四个联想
  6. TXT文本大数据比较导出工具
  7. SegmentFault 隐藏技能之发家致富篇:回答赞赏 讲座佣金
  8. Android App赞赏功能,微信公众号赞赏功能升级为“喜欢作者” 安卓/iOS都可以用...
  9. 轻松打造免开发智能电水壶
  10. 记录uniapp使用华为云obs上传图片视频