1.1 Prometheus是什么?Prometheus(普罗米修斯)是一个最初在SoundCloud上构建的监控系统。自2012年成为社区开源项目,拥有非常活跃的开发人员和用户社区。为强调开源及独立维护,Prometheus于2016年加入云原生云计算基金会(CNCF),成为继Kubernetes之后的第二个托管项目。

Prometheus - Monitoring system & time series database
作为新一代的监控框架,Prometheus 具有以下特点:
• 多维数据模型:由度量名称和键值对标识的时间序列数据
• PromSQL:一种灵活的查询语言,可以利用多维数据完成复杂的查询
• 不依赖分布式存储,单个服务器节点可直接工作
• 基于HTTP的pull方式采集时间序列数据
• 推送时间序列数据通过PushGateway组件支持
• 通过服务发现或静态配置发现目标
• 多种图形模式及仪表盘支持
Prometheus适用于以机器为中心的监控以及高度动态面向服务架构的监控。
Grafana是一个开源的度量分析和可视化系统。
Grafana支持查询普罗米修斯。自Grafana 2.5.0(2015-10-28)以来,包含了Prometheus的Grafana数据源。

Download Grafana | Grafana Labs
从Grafana.com导入预先构建的仪表板。
Grafana.com维护着一组共享仪表板 ,可以下载并与Grafana的独立实例一起使用。

https://grafana.com/dashboards/9276
简单来说:Grafana提供了比Prometheus更加友好美观的展示界面
| 组件 | 说明 |
| prometheus-2.41.0.windows-amd64 | 监控server端,用于汇总展示各收集器的资源情况(界面丑) |
| grafana-enterprise-8.2.2.windows-amd64 | 度量分析可视化系统,仪表盘多,替换prometheus默认展示界面 |
Prometheus下载地址:https://prometheus.io/download/
grafana下载: https://grafana.com/grafana/download?platform=windows
Promethe+Grafana :https://pan.baidu.com/s/1s03HZ9AlMNbWQKc9-QisUw?pwd=bk1k




在prometheus.yaml中配置了 【- targets: ["127.0.0.1:9090"]】之后,就可以读取一些默认的指标信息。这里的 State 是 “UP” 表示该组件是否正常启动,因为这是读取Prometheus本身,只要能进入该界面,就必定是 “UP” 。后续如果添加了对 Exporeter(比如:windows-exporter)的配置,那么从这个 State 可以看到对应的 exporter 是否被 Prometheus 正常监听到。
待定
相对于Granfan,prometheus的默认界面比较单一,可看到的关键资源信息不多,下面使用Grafana展示具体资源状况。
在全英文路径下解压 grafana-enterprise-8.2.2.windows-amd64.zip ,双击bin目录下grafana-server.exe,任务栏会新增一个命令行窗户(不要关闭)。
浏览器打开 http://127.0.0.1:3000(默认账号密码都是admin),远程访问用 ip:3000 :

(1)点击设置(小齿轮),选择Data Source

(2)点击 Add data source,选择 Prometheus


(3)全部使用默认配置, 这里一定要将localhost改为127.0.0.1,下拉, 点击Save & test

官方下载地址:https://github.com/prometheus-community/windows_exporter/releases
百度云网盘:https://pan.baidu.com/s/1KXedfMPOs84CsbxXRCxKhQ?pwd=38i6
(1)用管理员身份运行 windows_exporter-0.20.0-amd64.msi ,运行成功后服务中可以看到windows_exporter服务
(2)将服务状态修改为 “自动(延迟启动)”

(3)浏览器访问http://127.0.0.1:9182/metrics,看到如下界面成功

(4) 在prometheus端配置windows_exporter采集器地址,在prometheus.yml 中添加如下内容 (注意缩进)
- job_name: "192.168.126.1:windows-exporter"
static_configs:
- targets: ["192.168.126.1:9182"]
(5)重启prometheus端,打开http://127.0.0.1:9090/targets,windows状态为up即成功

(1)打开Dashboards-Manage

(2)点击 import

(3)仪表盘模板导入

仪表盘有两种导入的方式,一种是选择上传 json 文件,该文件是仪表盘json文件,一次上传一个,选择模板后,点击import。另一种是根据 dashboard ID 上传,在 "Load" 按钮前面输入官方提供的 dashboard ID ,然后点击 "Load" 按钮。
当前导入的是 windows-exporter 的dashboard ,选择用 dashboard ID进行import:

这里我输入了 10467,它是 windows-exporter的 dashboard ID,然后点击 “Load”
(4)选择数据来源,也就是选择 Prometheus 实例

进入当前页面,在底部的 prometheus 下拉框选择 Prometheus 实例,点击 import 完成。
(5)打开Dashboards,可以看到已经添加了的 [windows资源监控] 仪表盘,打开详情如下:

官方下载地址:Releases · kbudde/rabbitmq_exporter · GitHub
百度云网盘:https://pan.baidu.com/s/1KXedfMPOs84CsbxXRCxKhQ?pwd=38i6
解压下载的安装包 rabbitmq_exporter_1.0.0-RC19_windows_amd64.tar.gz 到全英文路径下
启动 rabbitmq_exporter ,在命令行执行 rabbitmq_exporter.exe 文件。

(1)修改Prometheus配置文件,在 prometheus.yml 中添加如下内容:
- job_name: "192.168.1.126:rabbitmq-exporter"
static_configs:
- targets: ["192.168.1.126:9419"]
(2)重启Prometheus
稍等一会,访问http://127.0.0.1:9090/targets,发现node_exporter已经添加进去。

(3)查看监控指标数据

rabbitmq 基于erlang组件安装,所以有部分 go_ 开头 的指标信息,其余 rabbitmq_ 开头的指标数据则是 rabbitmq 自己的。
去地址:Dashboards | Grafana Labs查找rabbitmq_exporter模板。
这里使用:RabbitMQ Metrics from rabbitmq_exporter,ID 号为:10120。

在 Dashboards manager 使用 dashboard ID 进行 import 加载仪表盘,效果如下:

官方下载地址:Releases · mysqld_exporter · GitHub
百度云网盘:https://pan.baidu.com/s/1KXedfMPOs84CsbxXRCxKhQ?pwd=38i6
解压下载的安装包 mysqld_exporter-0.14.0.windows-amd64.zip 到全英文路径下

启动 mysql_exporter ,在命令行执行 mysql_exporter.exe 文件。

进入mysql_exporter目录,cmd命令行执行:
mysqld_exporter.exe --config.my-cnf=.my.cnf
(1)修改Prometheus配置文件,在 prometheus.yml 中添加如下内容:
- job_name: 'mysql'
static_configs:
- targets: ['192.168.1.106:9104']
(2)重启Prometheus
稍等一会,访问http://127.0.0.1:9090/targets,发现mysql_exporter已经添加进去。

(3)查看监控指标数据

去地址:Dashboards | Grafana Labs查找rabbitmq_exporter模板。
这里使用:MySQL Exporter Quickstart and Dashboard ,ID 号为:14057。

在 Dashboards manager 使用 dashboard ID 进行 import 加载仪表盘
官方下载地址:https://github.com/prometheus/node_exporter/releases
百度云网盘:https://pan.baidu.com/s/1Xn-mTCo4DqENRlEgo2dRjg?pwd=bl7x
将安装包 node_exporter-0.18.1.linux-amd64.tar.gz 上传至服务器。
tar zvxf node_exporter-0.18.1.linux-amd64.tar.gz
mv node_exporter-0.18.1.linux-amd64 /usr/local/node_exporter
vim /usr/lib/systemd/system/node_exporter.service
添加内容:
[Unit]
Description=node_exporter
Documentation=https://github.com/prometheus/node_exporter
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/node_exporter/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target
重置系统服务并将node_exporter开机自启、启动 node_exporter服务
systemctl daemon-reload
systemctl enable node_exporter
systemctl start node_exporter

(1)修改Prometheus配置文件,在 prometheus.yml 中添加如下内容:
- job_name: "192.168.126.138:node-exporter"
static_configs:
- targets: ["192.168.126.138:9100"]
(2)重启Prometheus
稍等一会,访问http://127.0.0.1:9090/targets,发现node_exporter已经添加进去。

去地址:Dashboards | Grafana Labs查找node_exporter模板。
这里使用:Node Exporter for Prometheus Dashboard based on 11074,ID 号为:15172。

在 Dashboards manager 使用 dashboard ID 进行 import 加载仪表盘,效果如下:

官方下载地址:https://github.com/iamseth/oracledb_exporter/releases
百度云网盘:https://pan.baidu.com/s/1Xn-mTCo4DqENRlEgo2dRjg?pwd=bl7x
将安装包 node_exporter-0.18.1.linux-amd64.tar.gz 上传至服务器。
tar -zxvf oracledb_exporter.0.2.9-ora18.5.linux-amd64.tar.gz
mv oracledb_exporter.0.2.9-ora18.5.linux-amd64 /usr/local/oracle_exporter
增加一个TNS_ADMIN环境变量
vim ~/.bash_profile
我这里的配置是
# oracle环境变量
export ORACLE_SID=orcl
export ORACLE_HOME=/data/oracle/product/11.2.0/db_1
# oracledb_exporter环境变量
export PATH=$PATH:$ORACLE_HOME/bin
# export DATA_SOURCE_NAME=用户名/密码
export DATA_SOURCE_NAME=system/oracle
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
修改bash_profile完成后,执行
source ~/.bash_profile
检查 oracle安装路径的 $ORACLE_HOME/lib 目录下 是否有 libclntsh.so.18.1 文件,如果缺少该文件,启动 oracle_exporter 会失败。
进入 oracle 安装目录的 /lib 文件夹下,创建 libclntsh.so.18.1 的软连接:
ln -s libclntsh.so.18.1 libclntsh.so
当然我们启动oracledb_exporter最好以不挂断、后台运行的方式启动
nohup ./oracledb_exporter &
(1)修改Prometheus配置文件,在 prometheus.yml 中添加如下内容:
- job_name: "192.168.126.138:oracle-exporter"
static_configs:
- targets: ["192.168.126.138:9161"]
(2)重启Prometheus
稍等一会,访问http://127.0.0.1:9090/targets,发现oracledb_exporter已经添加进去。
去地址:Dashboards | Grafana Labs查找oracledb_exporter模板。
这里使用:Node Exporter for Prometheus Dashboard based on 11074,ID 号为:15172。
在 Dashboards manager 使用 dashboard ID 进行 import 加载仪表盘,效果如下:
填写 dashboards ID后,点击 “Load” 加载仪表盘。
选择 Prometheus 实例。
nginx 需要安装 nginx-module-vts 创建,该插件在 nginx 安装时进行加入到编译参数中。
(1)安装依赖模块
yum install ‐y pcre pcre‐devel
yum install ‐y zlib zlib‐devel
yum install ‐y openssl openssl‐devel
(2)下载 nginx
#下载 Nginx
wget http://nginx.org/download/nginx-1.17.7.tar.gz
(3)解压安装 nginx
tar -zxvf nginx-1.17.1.tar.gz
(4)下载 vts 模块
下载链接:https://github.com/vozlt/nginx-module-vts/archive/v0.1.18.tar.gz
百度云网盘:https://pan.baidu.com/s/1Xn-mTCo4DqENRlEgo2dRjg?pwd=bl7x
(5)解压 v0.1.18.tar.gz 到 /usr/local/nginx 目录下

(6)编译安装 nginx
进入Nginx目录
执行命令 ./configure 是用来生成Makefile,为下一步的编译做准备 --add-module=后面跟上插件的下载地址
./configure --prefix=/usr/local/nginx --with-http_ssl_module --add-module=/opt/nginx-1.17.7/nginx-module-vts-0.1.18/
#编译不安装
make & make install
进入 /usr/local/nginx/conf 目录下,修改nginx.conf配置文件添加一下信息
http {
vhost_traffic_status_zone;
vhost_traffic_status_filter_by_host on;
server {
# vhost_traffic_status off;
location /status {
vhost_traffic_status_display;
vhost_traffic_status_display_format html;
}
}
}
打开vhost过滤
vhost_traffic_status_filter_by_host on;
开启此功能,在Nginx配置有多个server_name的情况下,会根据不同的server_name进行流量的统计,否则默认会把流量全部计算到第一个server_name上。
在不想统计流量的server区域禁用vhost_traffic_status,配置示例:
server {
...
vhost_traffic_status off;
...
}
假如nginx没有规范配置server_name或者无需进行监控的server上,那么建议在此vhost上禁用统计监控功能。否则会出现“127.0.0.1”,hostname等的域名监控信息。
完整配置:
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
vhost_traffic_status_zone;
vhost_traffic_status_filter_by_host on;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location /status {
vhost_traffic_status_display;
vhost_traffic_status_display_format html;
}
}
}
测试配置文件
[root@linkhot04 sbin]# ./nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
启动nginx ,访问 status
./nginx
访问状态接口
http://192.168.126.138/status

官方下载地址:Releases · hnlq715/nginx-vts-exporter · GitHub
百度云网盘:https://pan.baidu.com/s/1Xn-mTCo4DqENRlEgo2dRjg?pwd=bl7x
将安装包 node_exporter-0.18.1.linux-amd64.tar.gz 上传至服务器。
tar -zxvf nginx-vts-exporter-0.10.3.linux-amd64.tar.gz
mv nginx-vts-exporter-0.10.3.linux-amd64 /usr/local/nginx_vts_exporter
nohup ./nginx-vts-exporter -nginx.scrape_uri=http://192.168.126.138/status/format/json &
参看采集指标

(1)修改Prometheus配置文件,在 prometheus.yml 中添加如下内容:
- job_name: "192.168.126.138:nginx-exporter"
static_configs:
- targets: ["192.168.126.138:9931"]
(2)重启Prometheus
稍等一会,访问http://127.0.0.1:9090/targets,发现oracledb_exporter已经添加进去。
去地址:Dashboards | Grafana Labs查找oracledb_exporter模板。
这里使用:Nginx VTS Stats,ID 号为:2949。

在 Dashboards manager 使用 dashboard ID 进行 import 加载仪表盘,效果如下:
填写 dashboards ID后,点击 “Load” 加载仪表盘。
选择 Prometheus 实例。

我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0
这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub
我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain
导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵
之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m
这篇文章是继上一篇文章“Observability:从零开始创建Java微服务并监控它(一)”的续篇。在上一篇文章中,我们讲述了如何创建一个Javaweb应用,并使用Filebeat来收集应用所生成的日志。在今天的文章中,我来详述如何收集应用的指标,使用APM来监控应用并监督web服务的在线情况。源码可以在地址 https://github.com/liu-xiao-guo/java_observability 进行下载。摄入指标指标被视为可以随时更改的时间点值。当前请求的数量可以改变任何毫秒。你可能有1000个请求的峰值,然后一切都回到一个请求。这也意味着这些指标可能不准确,你还想提取最小/
C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.
深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal
需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc
我试图在rails中了解rubygems是如何变得可以自动使用的,而不是在使用required的文件中gem? 最佳答案 这是通过bundler/setup完成的:http://bundler.io/v1.3/bundler_setup.html.它在您的config/boot.rb文件中是必需的。简而言之,它首先将环境变量设置为指向您的Gemfile:ENV['BUNDLE_GEMFILE']||=File.expand_path('../../Gemfile',__FILE__)然后它通过要求bundler/setup将所有ge