InfulxDb+grafana监控Windows运行状态
看一下效果图:
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运行状态相关推荐
- metrics类型 普罗米修斯_使用普罗米修斯和Grafana监控Flink运行状态
Pushgateway pushgateway 是一个Prometheus 生态中重要工具,因为Prometheus采用Pull模式,可能由于一些原因,Prometheus无法直接拉取各个target ...
- 用Spotlight on windows 实时监控Windows服务器性能
用Spotlight on windows 实时监控Windows服务器性能 2010-02-03 10:30:25| 分类: else | 标签: |字号大中小 订阅 用Spotlight on ...
- prometheus+grafana监控以及企业微信告警
prometheus+grafana监控以及企业微信告警(单机二进制部署) 一.下载部署包,更改其中两个包名称,放到/data下 1.安装包以及解压步骤 grafana-enterprise-8.4. ...
- 监控Windows服务器
1. 监控内容 windows服务器的内部参数包括以下 a. 内存使用状况 b. CPU负载 c. 磁盘使用状况 d. 服务状态 e. 运行的进程 2. 监控原理 在windows服务器内安装NSCl ...
- 运维监控系列(8)-Prometheus+Grafana监控常用微服务中间件Nacos、Seata、Rocketmq
Nacos Nacos官方文档 Nacos支持通过暴露metrics数据接入第三方监控系统监控Nacos运行状态,目前支持prometheus.elastic search和influxdb. 1. ...
- prometheus监控windows系统
prometheus监控windows系统 本文主要介绍如何使用prometheus监控windows系统,以及在搭建监控时遇到的问题. 环境:windows 文章目录 prometheus监控win ...
- Prometheus + Grafana 监控和告警
文章目录 0,数据接入和告警流程 1,Prometheus 1.1 Prometheus 主程序 1.1.1 修改配置文件:prometheus.yml 1.1.2 验证配置是否正确,然后启动服务(w ...
- zabbix监控windows(03,08)
监控windows主机: 下载zabbix_agents_2.2.3.win.zip (zabbix官网下载) 解压文件,把对应的文件(32位或者64位)考到C盘根目录(对应目录就OK)并带配置文件: ...
- grafana 监控mysql_Prometheus+Grafana监控MySQL性能
今天来写一篇监控MySQL数据库的的监控方案:Prometheus+Grafana监控mysql性能 1.监控方案介绍 祖传老图修一修: 解释一波:①mysqld_exporter用来收集数据库的性能 ...
最新文章
- ESP32移植wolfssl方法
- 2025年全球结构化布线市场预计将达到165亿美元
- SAP Hybris Enterprise Commerce Platform ECP架构综述
- 浙江省2021年英语高考成绩查询,浙江高考成绩查询、志愿填报时间公布!
- 使shell用结构化命令
- 《那些年啊,那些事——一个程序员的奋斗史》——54
- 【图像隐写】基于matlab高斯模型JPEG图像隐写【含Matlab源码 367期】
- 五金冲压模具设计分享pressCAD外挂使用小窍门
- html如何实现左右布局,前端中的左右布局实现
- 如何轻松愉快的搞定产品经理面试
- Kafka 2.8.0 学习
- 职业规划 思维导图
- 社群运营和用户运营的区别
- android 原生分享文件,Android原生文件分享
- sql使用WITH ROLLUP分组统计并求总数
- GAMES101 梳理 / 个人向图形学笔记
- linux内存不足导致tomcat宕机
- 推荐算法架构2:粗排
- OC开发之——OC简介(1)
- Ubuntu v20.04 Detailed installation tutorial
热门文章
- SQL语句中发送微信消息
- 怎样把照片中的头像扶正_心理学:一个男人的微信头像,往往暴露了“人品”,你是哪一种?...
- 如何查看CPU指令集
- 信道检测手机软件 ios_微瑞“云检测”软件推出苹果iOS系统版啦!
- 一个优秀的品牌名至少应做到这四个联想
- TXT文本大数据比较导出工具
- SegmentFault 隐藏技能之发家致富篇:回答赞赏 讲座佣金
- Android App赞赏功能,微信公众号赞赏功能升级为“喜欢作者” 安卓/iOS都可以用...
- 轻松打造免开发智能电水壶
- 记录uniapp使用华为云obs上传图片视频