Prometheus安装部署
文章目录
- 1.Prometheus(普罗米修斯)安装部署
- 1.1部署环境准备
- 1.2部署prometheus
- 1.3主机数据展示
- 2.Grafana安装部署
- 2.1部署Grafana
- 2.2配置Grafana数据源
- 2.2配置Grafana仪表板
- 3.AlertManager安装部署
- 3.1部署alertmanager
- 3.2告警邮件发送配置
- 3.3测试邮件告警效果
- 3.4自定义邮件告警模板
- 3.5钉钉接收告警配置
- 3.6测试钉钉接收告警效果
- 4.Redis服务监控
- 4.1部署redis_exporter
- 4.2 prometheus添加监控目标
- 4.3添加Redis Grafana模板
- 5.Rabbitmq服务监控
- 5.1部署rabbitmq_exporter
- 5.2 prometheus添加监控目标
- 5.3添加Rabbitmq Grafana模板
- 6.mysql服务监控
- 6.1部署mysqld_exporter
- 6.2 prometheus添加监控目标
- 6.3添加mysql Grafana模板
- 7.Linux主机监控
- 7.1部署node_exporter
- 7.2 prometheus添加监控目标
- 7.3添加Linux Grafana模板
1.Prometheus(普罗米修斯)安装部署
Prometheus是一个开源的系统监控和报警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF托管的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,同时也支持多种exporter采集数据,还支持pushgateway进行数据上, Prometheus性能足够支撑上万台规模的集群。
官网:https://prometheus.io/
1.1部署环境准备
部署环境信息:
操作系统版本:Cetnos7.9
IP地址 | 主机名 | 身份 |
---|---|---|
192.168.0.123 | prometheus | prometheus服务器 |
192.168.0.124 | grafana | grafana服务器 |
192.168.0.125 | client | 被监控客户端 |
关闭防火墙:
3台主机都执行以下命令:
systemctl stop firewalld
关闭防火墙
systemctl disable firewalld
开机禁止防火墙启动
关闭selinux:
3台主机都执行命令:setenforce 0
然后将/etc/selinux/config里的参数SELINUX=enforcing修改为SELINUX=disabled,永久关闭selinux
修改主机名:
3台主机各自修改成对应主机名:hostnamectl set-hostname hostname
1.2部署prometheus
下载安装包:
地址:https://prometheus.io/download/
上传安装包:
将prometheus-2.40.1.linux-amd64.tar.gz安装包上传至192.168.0.123服务器
解压并启动prometheus:
以下命令按顺序执行,解压安装包 -> 修改文件夹名字 -> 启动prometheus
tar xf prometheus-2.40.1.linux-amd64.tar.gz -C /usr/local/ mv /usr/local/prometheus-2.40.1.linux-amd64/ /usr/local/prometheus/usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
检查prometheus监听是否正常,默认端口9090
netstat -an |grep 9090
1.3主机数据展示
通过http://192.168.0.123:9090/访问prometheus
默认可以查看到已监控本机
菜单Status -> Targets
通过浏览器访问http://192.168.0.123:9090/metrics可以查看监控数据
在WEB界面首页可以通过关键字搜索查询监控项
2.Grafana安装部署
Grafana是一个开源的度量分析和可视化工具,可以通过将采集的数据分析,查询,然后进行可视化的展示,并能实现报警
官网:https://grafana.com/
2.1部署Grafana
下载安装包:
地址:
https://dl.grafana.com/enterprise/release/grafana-enterprise-9.2.4-1.x86_64.rpm
上传安装包:
将grafana-enterprise-9.2.4-1.x86_64.rpm安装包上传至192.168.0.124服务器
安装grafana:
进入安装包所在目录,执行命令rpm -ivh grafana-enterprise-9.2.4-1.x86_64.rpm
完成grafana安装
注意!安装过程有可能会提示缺少依赖包,如果报错则需要先配置yum源将相关依赖包安装上再继续安装grafana-enterprise-9.2.4-1.x86_64.rpm
yum install fontconfig
yum install urw-fonts
rpm -ivh grafana-enterprise-9.2.4-1.x86_64.rpm
启动grafana:
执行命令:
systemctl start grafana-server
启动grafana服务
systemctl enable grafana-server
开机自动启动grafana
检查grafana监听是否正常,默认端口3000
netstat -an |grep 3000
2.2配置Grafana数据源
通过浏览器访问 http://192.168.0.124:3000/就到了登录界面,使用默认的admin用户,admin密码登陆。登录后需要修改默认密码
登录后把prometheus服务器收集的数据作为一个数据源添加到grafana,让grafana可以得到prometheus的数据
(1)从左侧导航栏找到Data sources菜单
(2)进入菜单后点击增加数据源,数据源选择prometheus
(3)进入prometheus配置后有两个必填的配置,分别是数据源名称和prometheus的访问地址,prometheus的ip和端口。配置完成后在页面最下方点击Save & test保存
2.2配置Grafana仪表板
配置完数据源后,grafana接收到prometheus的数据需要使用仪表板展示,仪表板可自定义或导入模板,grafana官网也有非常多类型的模板供下载
(1)从左侧导航栏找到新建仪表板,选择添加一个面板
(2)进入新建面板后选择prometheus数据源,需要展示的数据项在Metric里选择,配置完成后可在面板看到数据展示
(3)导入模板方式,从左侧导航栏找到导入,导入模板可本地上传或者直接从官网下载导入(输入模板的ID或完整的链接,但需要有互联网),以下就是模板的完整链接,标红的为模板ID。
https://grafana.com/grafana/dashboards/7362-mysql-overview/?tab=revisions
使用两种方式的其中一种导入模板后就会出现以下界面,这里演示模板名称和文件夹都为默认,数据源就选择2.2章节配置的prometheus,然后导入
从左侧导航栏找到Browse,进入后即可找到刚刚导入的模板
点击该模板可以查看仪表板效果,因为本章节仅演示模板导入,没有配置对应数据源,所以仪表板有没有数据展示
仪表板模板可以在以下地址下载
https://grafana.com/grafana/dashboards/
3.AlertManager安装部署
3.1部署alertmanager
Alertmanager是一个独立的告警模块,接收Prometheus等客户端发来的警报,之后通过分组、删除重复等处理,并将它们通过路由发送给正确的接收器;告警方式可以按照不同的规则发送给不同的模块负责人,Alertmanager支持Email, Slack,等告警方式, 也可以通过webhook接入钉钉等国内IM工具。
下载安装包:
地址:https://prometheus.io/download/#alertmanager
按操作系统类型选择需要的安装包
上传安装包:
将alertmanager-0.24.0.linux-amd64.tar.gz安装包上传至192.168.0.123服务器
安装alertmanager:
进入安装包所在目录,执行以下命令完成alertmanager部署
tar zxf alertmanager-0.24.0.linux-amd64.tar.gz -C /usr/local/
mv /usr/local/alertmanager-0.24.0.linux-amd64/ /usr/local/alertmanager
3.2告警邮件发送配置
编辑alertamanger配置文件:
vim /usr/local/alertmanager/alertmanager.yml
global:smtp_smarthost: 'smtp.xxx.com:25' #告警邮件发送者SMTP地址smtp_from: 'xxx@163.com' #发件者邮箱smtp_auth_username: 'xxx@163.com' #邮箱账号smtp_auth_password: 'password' #邮箱专用授权码,不是邮箱登陆密码smtp_require_tls: false #关闭tls授权
route: #定义告警路由规则,可以定义多个receiver和group实现告警分组group_by: ['rabbitmq_alerts'] #根据告警规则组名进行分组group_wait: 30s #分组内第一个告警等待时间,30s内如有第二个告警会合并成一个group_interval: 5m #发送新告警的间隔时间repeat_interval: 10m #重复告警间隔发送时间receiver: 163 #默认接收者routes: #子路由,不满足子路由的都走默认路由- match: #普通匹配severity: critical #告警等级receiver: brilliance #匹配critical告警的接收者- match_re: #正则匹配severity: ^(warning|critical)$ #告警等级receiver: qq #匹配warning或critical告警的接收者
receivers: #定义三个接受者,和上面三个路由对应
- name: 'outlook' #和上面route部分中的receiver一致email_configs: #接收器为email,除此还有其他接收器可以使用- to: 'xxx@outlook.com.cn' #告警邮件发送对象send_resolved: true #接收告警恢复邮件
- name: '163'email_configs:- to: 'xxx@163.com'
- name: 'qq'email_configs:- to: 'xxx@qq.com'
修改完成后使用amtool检查alertmanager.yml是否存在语法错误,显示SUCCESS表示无误
/usr/local/alertmanager/amtool check-config /usr/local/alertmanager/alertmanager.yml
启动alertmanager服务
执行命令启动alertmanager
/usr/local/alertmanager/alertmanager --config.file /usr/local/alertmanager/alertmanager.yml &
检查alertmanager监听是否正常,默认端口9093
netstat -anp |grep 9093
编辑prometheus配置文件:
增加和修改prometheus.yml的alertmanager部分,让alertmanger能与Prometheus通信,其它原有配置不动
vim /usr/local/prometheus/prometheus.yml
alerting:alertmanagers:- static_configs:- targets:- 192.168.0.123:9093 #修改成alertmanager服务器的ip和端口
rule_files: #指定告警规则的配置路径
- "rules/*.yml"
scrape_configs: #接收alertmanager的数据- job_name: 'alertmanager' static_configs: - targets: ['192.168.0.123:9093']
编辑具体告警规则配置文件:
在/usr/local/prometheus/路径建立rules文件夹
mkdir -p /usr/local/prometheus/rules
新建具体告警规则配置文件,这里以rabbitmq策略作为例子
vim /usr/local/prometheus/rules/rabbitmq_alert.yml
groups:
- name: rabbitmq_alerts #告警分组,一个组下的告警会整合在一个邮件中rules:- alert: Rabbitmq服务状态监测 #定义告警事件名
expr: rabbitmq_up{job='rabbitmq'} != 1 #告警触发的条件
for:1m #事件持续时长,0的话代表一满足就触发labels:severity: critical #定义了一个标签用于告警分组annotations: #邮件中的显示内容,可以引用变量summary: "Instance {{ $labels.instance }} critical alert" #summary概要信息description: "Instance: {{ $labels.instance }} is Down! 请尽快处理告警" #description详细信息
配置完成后重启prometheus
ps -ef |grep prometheus |grep -v grep |awk '{print $2}' |xargs kill -9 #杀死进程/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml & #启动服务
3.3测试邮件告警效果
在3.2章节当中配置了一条告警策略为rabbitmq服务没启动即触发告警,下面就关闭rabbitmq服务后检查是否能够收到告警邮件
关停192.168.0.125的rabbitmq服务
systemctl stop rabbitmq-server
在Grafana可以看到rabbitmq服务状态已经为down
打开邮件看到已成功接收到告警邮件,红框部分就是告警规则中的自定义内容
启动192.168.0.125的rabbitmq服务
systemctl start rabbitmq-server
当服务恢复后可以接收到告警恢复的邮件
3.4自定义邮件告警模板
配置邮件模板:
首先在Alertmanager主目录下创建一个templates文件夹,用户存放模板文件,然后创建一个email.tmpl文件,写入以下内容
mkdir -p /usr/local/alertmanager/templates
vim /usr/local/alertmanager/templates/email.tmpl
{{ define "email.html" }}
{{- if gt (len .Alerts.Firing) 0 -}}
{{- range $index, $alert := .Alerts -}}
======== 异常告警 ======== <br>
告警名称:{{ $alert.Labels.alertname }} <br>
告警级别:{{ $alert.Labels.severity }} 级 <br>
告警机器:{{ $alert.Labels.instance }} {{ $alert.Labels.device }} <br>
告警主题:{{ $alert.Annotations.summary }} <br>
告警详情:{{ $alert.Annotations.description }} <br>
告警时间:{{ ($alert.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }} <br>
========== END ==========
{{- end }}
{{- end }}
{{- if gt (len .Alerts.Resolved) 0 -}}
{{- range $index, $alert := .Alerts -}}
======== 告警恢复 ======== <br>
告警名称:{{ $alert.Labels.alertname }} <br>
告警级别:{{ $alert.Labels.severity }} 级 <br>
告警机器:{{ $alert.Labels.instance }} {{ $alert.Labels.device }} <br>
告警主题:{{ $alert.Annotations.summary }} <br>
告警详情:{{ $alert.Annotations.description }} <br>
告警时间:{{ ($alert.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }} <br>
恢复时间:{{ ($alert.EndsAt.Add 28800e9).Format "2006-01-02 15:04:05" }} <br>
========== END ==========
{{- end }}
{{- end }}
{{- end }}
在alertmanager.yml中添加模板扫描,及邮件使用模板
vim /usr/local/alertmanager/alertmanager.yml
templates: #配置自定义模板位置- 'templates/*.tmpl'
receivers:
- name: 'brilliance'email_configs:- to: 'xxx@brilliance.com.cn'html: '{{ template "email.html" . }}' #为接收者指定邮件使用模板
send_resolved: true
测试模板告警效果:
关停192.168.0.125的rabbitmq服务,测试告警内容显示效果
systemctl stop rabbitmq-server
启动192.168.0.125的rabbitmq服务,测试告警恢复内容显示效果
systemctl start rabbitmq-server
3.5钉钉接收告警配置
创建钉钉机器人:
【电脑端钉钉 】-【群聊】-【群设置】-【智能群助手】-【添加更多】-【添加机器人】-【自定义】-【添加】,编辑机器人名称和选择添加的群组,勾选加签,将生成的秘钥复制出来。
生成一个Webhook,将地址复制出来
部署prometheus-webhook-dingtalk:
alertmanager的webhook集成了钉钉报警,所以他是本来就有的。但是钉钉对格式要求很严格,一会还需要使用插件进行格式转换。prometheus-webhook-dingtalk是Prometheus AlertManager WebHooks生成钉钉通知工具。
下载安装包:
地址:https://github.com/timonwong/prometheus-webhook-dingtalk/releases/
按操作系统类型选择需要的安装包
上传安装包:
将prometheus-webhook-dingtalk-2.1.0.linux-amd64.tar安装包上传至192.168.0.123服务器
安装prometheus-webhook-dingtalk:
进入安装包所在目录,执行以下命令完成prometheus-webhook-dingtalk部署
tar zxvf prometheus-webhook-dingtalk-2.1.0.linux-amd64.tar.gz -C /usr/local/mv /usr/local/prometheus-webhook-dingtalk-2.1.0.linux-amd64/ /usr/local/prometheus-webhook-dingtalk
修改prometheus-webhook-dingtalk配置:
新建/usr/local/prometheus-webhook-dingtalk/config.yml,添加以下配置
vim /usr/local/prometheus-webhook-dingtalk/config.yml
targets:ding_webhook:# 钉钉webhook地址url: https://oapi.dingtalk.com/robot/send?access_token=a8axxxxxxxxxxx# 创建机器人时获取到的加签秘钥secret: SEC8bd85xxxxxxxxxxxxx
编辑alertmanager.yml配置文件,添加路由和接受者配置,注意url填写钉钉插件提供的webhook地址,而不是钉钉直接提供的那个webhook。
vim /usr/local/alertmanager/alertmanager.yml
route:#设置默认接收人receiver: 'webhook'#组告警等待时间。也就是告警产生后等待10s,如果有同组告警一起发出group_wait: 10s#两组告警的间隔时间group_interval: 10s#重复告警的间隔时间,减少相同微信告警的发送频率repeat_interval: 30s#采用哪个标签来作为分组依据group_by: [alertname]routes:- receiver: webhook#配置告警消息接受者信息,例如常用的 email、wechat、slack、webhook 等消息通知方式
receivers:
- name: 'webhook'webhook_configs:#钉钉插件提供的webhook地址- url: http://192.168.0.123:8060/dingtalk/ding_webhook/send#警报被解决之后是否通知send_resolved: true
启动prometheus-webhook-dingtalk服务:
/usr/local/prometheus-webhook-dingtalk/prometheus-webhook-dingtalk --config.file=/usr/local/prometheus-webhook-dingtalk/config.yml &
检查prometheus-webhook-dingtalk监听是否正常,默认端口8060
netstat -anp |grep 8060
3.6测试钉钉接收告警效果
同样使用3.2章节当中配置的rabbitmq告警策略触发告警,下面就关闭rabbitmq服务后检查钉钉是否能够收到告警信息
关停192.168.0.125的rabbitmq服务
systemctl stop rabbitmq-server
在钉钉成功接收到告警信息
启动192.168.0.125的rabbitmq服务
systemctl start rabbitmq-server
服务恢复后钉钉收到告警恢复信息
4.Redis服务监控
4.1部署redis_exporter
redis_exporter是用于redis指标的Prometheus导出器。用来监控redis服务,并且使用prometheus收集数据,最后再通过grafana展示相关告警数据。redis_exporter部署在哪台服务器上都是可以的,因为之后会在启动redis_exporter的时候配置所要监控的redis的连接地址。这里直接将redis_exporter部署在安装了Redis Server的服务器(192.168.0.125)上。
下载安装包:
地址:https://github.com/oliver006/redis_exporter/releases/
按操作系统类型选择需要的安装包
上传安装包:
将redis_exporter-v1.45.0.linux-amd64.tar.gz安装包上传至192.168.0.125服务器
安装redis_exporter:
进入安装包所在目录,执行以下命令完成redis_exporter部署
tar -zxf redis_exporter-v1.45.0.linux-amd64.tar.gz
解压安装包
mv redis_exporter-v1.45.0.linux-amd64 /usr/local/redis_exporter
改名和变更路径
启动redis_exporter:
可以通过./redis_exporter --help
命令查看各个参数的含义,比较常用的参数如下 :
-redis.addr string:Redis实例的地址,可以使一个或者多个,多个节点使用逗号分隔,默认为 “redis://localhost:6379”
-redis.password string:Redis实例的密码
-web.listen-address string:服务监听的地址,默认为 0.0.0.0:9121
执行以下命令启动redis_exporter服务
/usr/local/redis_exporter/redis_exporter -redis.addr 192.168.0.125:6379 -redis.password password &
检查grafana监听是否正常,默认端口9121
netstat -anp |grep 9121
4.2 prometheus添加监控目标
需要把redis_exporter监控添加到prometheus服务器(192.168.0.123)中
vim /usr/local/prometheus/prometheus.yml
编辑prometheus配置文件并添加以下配置
- job_name: 'redis'static_configs:- targets: ['192.168.0.125:9121'] #redis_exporter的ip+端口
修改配置后重启prometheus
ps -ef |grep prometheus |grep -v grep |awk '{print $2}' |xargs kill -9
杀死进程
/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml &
启动服务
重启后可以看到prometheus已与redis_exporter建立了连接
netstat -anp |grep 9121
在prometheus页面可以看到新添加的redis监控目标
4.3添加Redis Grafana模板
在Grafana的官方网站上可以找到比较好用的Redis的仪表板模板,直接用模板地址导入即可。
(1)导入redis仪表板模板,这里使用本地上传方式
模板名称和文件夹都为默认,数据源就选择prometheus,然后导入
(2)导入模板后就可以看到仪表板的效果,采集到的redis数据也能正常展示
5.Rabbitmq服务监控
5.1部署rabbitmq_exporter
Rebbitmq_Exporter是RabbitMQ指标的Prometheus导出器。数据由prometheus抓取。
下载安装包:
地址:https://github.com/kbudde/rabbitmq_exporter/releases
按操作系统类型选择需要的安装包
上传安装包:
将redis_exporter-v1.45.0.linux-amd64.tar.gz安装包上传至192.168.0.125服务器
安装rabbitmq_exporter:
进入安装包所在目录,执行以下命令完成rabbitmq_exporter部署
tar zxf rabbitmq_exporter_1.0.0-RC19_linux_amd64.tar.gz -C /usr/local
启动rabbitmq_exporter:
执行以下命令启动rabbitmq_exporter服务
cd /usr/localRABBIT_USER=root RABBIT_PASSWORD=123456 OUTPUT_FORMAT=JSON PUBLISH_PORT=9099 RABBIT_URL=http://192.168.0.125:15672 nohup ./rabbitmq_exporter &
服务启动常用参数如下:
RABBIT_USER=username #用户名
RABBIT_PASSWORD=password #密码
OUTPUT_FORMAT=JSON PUBLISH_PORT=9099 #rabbitmq_exporter服务端口
RABBIT_URL=http://192.168.0.125:15672 #rabbitmq的UI地址
5.2 prometheus添加监控目标
需要把rabbitmq_exporter监控添加到prometheus服务器(192.168.0.123)中
vim /usr/local/prometheus/prometheus.yml
编辑prometheus配置文件并添加以下配置
- job_name: 'rabbitmq'static_configs:- targets: ['192.168.0.125:9099'] #rabbitmq_exporter的ip+端口
修改配置后重启prometheus
ps -ef |grep prometheus |grep -v grep |awk '{print $2}' |xargs kill -9
杀死进程
/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml &
启动服务
重启后可以看到prometheus已与redis_exporter建立了连接
netstat -anp |grep 9099
在prometheus页面可以看到新添加的rabbitmq监控目标
5.3添加Rabbitmq Grafana模板
在Grafana的官方网站上可以找到比较好用的Rabbit mq的仪表板模板,直接用模板地址导入即可。
(1)导入rabbitmq仪表板模板,这里使用本地上传方式
模板名称和文件夹都为默认,数据源就选择prometheus,然后导入
(2)导入模板后就可以看到仪表板的效果,采集到的rabbitmq数据也能正常展示
6.mysql服务监控
6.1部署mysqld_exporter
主要监控Mysql数据库的稳定性、吞吐量、连接情况、缓冲池使用情况、查询性能等各项指标,是我们压测时常常需要监控的一些指标。
下载安装包:
地址:https://prometheus.io/download/#mysqld_exporter
按操作系统类型选择需要的安装包
上传安装包:
将mysqld_exporter-0.14.0.linux-amd64.tar.gz安装包上传至192.168.0.125服务器
安装mysqld_exporter:
进入安装包所在目录,执行以下命令完成redis_exporter部署
tar zxvf mysqld_exporter-0.14.0.linux-amd64.tar.gz -C /usr/local/
解压安装包
mv /usr/local/mysqld_exporter-0.14.0.linux-amd64/ /usr/local/mysqld_exporter
改名和变更路径
创建一个mysql配置文件,写上连接的用户名与密码(和上面的授权的用户名和密码要对应)
vim /usr/local/mysqld_exporter/.my.cnf
[client]
user=mysql_monitor
password=123456
启动mysqld_exporter:
执行以下命令启动mysqld_exporter服务
/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf &
检查grafana监听是否正常,默认端口9104
netstat -anp |grep 9104
6.2 prometheus添加监控目标
需要把mysqld_exporter监控添加到prometheus服务器(192.168.0.123)中
vim /usr/local/prometheus/prometheus.yml
编辑prometheus配置文件并添加以下配置
- job_name: 'mysql'static_configs:- targets: ['192.168.0.125:9104'] #mysqld_exporter的ip+端口
修改配置后重启prometheus
#ps -ef |grep prometheus |grep -v grep |awk '{print $2}' |xargs kill -9
杀死进程
#/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml &
启动服务
重启后可以看到prometheus已与mysqld_exporter建立了连接
netstat -anp |grep 9104
在prometheus页面可以看到新添加的mysql监控目标
6.3添加mysql Grafana模板
在Grafana的官方网站上可以找到比较好用的mysql的仪表板模板,直接用模板地址导入即可。
(1)导入mysql仪表板模板,这里使用本地上传方式
模板名称和文件夹都为默认,数据源就选择prometheus,然后导入
(2)导入模板后就可以看到仪表板的效果,采集到的mysql数据也能正常展示
7.Linux主机监控
7.1部署node_exporter
下载安装包:
地址:https://prometheus.io/download/#node_exporter
上传安装包:
将node_exporter-1.4.0.linux-amd64.tar.gz安装包上传至192.168.0.125服务器
安装node_exporter:
进入安装包所在目录,执行以下命令完成node_exporter部署
tar -zxf tar zxvf node_exporter-1.4.0.linux-amd64.tar.gz
解压安装
包
mv /usr/local/node_exporter-1.4.0.linux-amd64/ /usr/local/node_exporter
改名和变更路径
启动node_exporter:
/usr/local/node_exporter/node_exporter &
检查node_exporter监听是否正常,默认端口9100
netstat -anp |grep 9100
7.2 prometheus添加监控目标
需要把node_exporter监控添加到prometheus服务器(192.168.0.123)中
vim /usr/local/prometheus/prometheus.yml 编辑prometheus
配置文件并添加以下配置
- job_name: 'linux'static_configs:- targets: ['192.168.0.125:9100'] #node_exporter的ip+端口
修改配置后重启prometheus
ps -ef |grep prometheus |grep -v grep |awk '{print $2}' |xargs kill -9
杀死进程
/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml &
启动服务
重启后可以看到prometheus已与node_exporter建立了连接
netstat -anp |grep 9100
7.3添加Linux Grafana模板
在Grafana的官方网站上可以找到比较好用的linux的仪表板模板,直接用模板地址导入即可。
(1)导入rabbitmq仪表板模板,这里使用本地上传方式
模板名称和文件夹都为默认,数据源就选择prometheus,然后导入
(2)导入模板后就可以看到仪表板的效果,采集到的linux数据也能正常展示
相关文章:
Prometheus安装部署
文章目录 1.Prometheus(普罗米修斯)安装部署1.1部署环境准备1.2部署prometheus1.3主机数据展示 2.Grafana安装部署2.1部署Grafana2.2配置Grafana数据源2.2配置Grafana仪表板 3.AlertManager安装部署3.1部署alertmanager3.2告警邮件发送配置3.3测试邮件告警效果3.4自定义邮件告警…...
算法(查找算法---二分查找/索引查找/哈希表查找)
二、查找算法 什么是查找算法: 在一个数据序列中,查找某个数据是否存在或存在的位置,在实际开发过程中使用的频率非常高,例如对数据常见的操作有增、删、改、查,增加数据时需要查询新增加的数据是否重复,…...
SQL labs-SQL注入(二)
环境搭建参考 SQL注入(一) 一,SQL labs-less2。 http://192.168.61.206:8001/Less-2/?id-1 union select 1,2,group_concat(username , password) from users-- 与第一关没什么太大的不同,唯一区别就是闭合方式为数字型。 二…...
go 语言踏出第一步
1、下载Go语言安装包:在官方网站(https://golang.org/dl/)上下载适合你操作系统的Go语言安装包。选择一个tar.gz格式的包。 2、解压安装包:打开终端,进入下载目录,并使用以下命令解压安装包: ta…...
SpringBoot-21 SpringBoot微服务的发布与部署(3种方式)
基于 SpringBoot 的微服务开发完成之后,现在到了把它们发布并部署到相应的环境去运行的时候了。 SpringBoot 框架只提供了一套基于可执行 jar 包(executable jar)格式的标准发布形式,但并没有对部署做过多的界定,而且为…...
在occluded Person Re-ID中,选择clip还是ViT作为backbone?
在遮挡行人再识别(Occluded Person Re-Identification, Occluded Person Re-ID)任务中,使用CLIP(Contrastive Language-Image Pre-Training)作为backbone和使用Vision Transformer(ViT)作为back…...
Linuxnat网络配置
📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️宝剑锋从磨砺出,梅花香自苦寒来 ☁️运维工程师的职责:监…...
77.WEB渗透测试-信息收集-框架组件识别利用(1)
免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:76.WEB渗透测试-信息收集- WAF、框架组件识别(16) javaÿ…...
ExcelJS:轻松实现Excel文件的读取、操作与写入
文章目录 发现宝藏1. 简介2. 安装3. 创建工作簿4. 设置工作簿属性5. 添加工作表6.删除工作表7.访问工作表8. 列操作9. 行操作10. 单元格操作 发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝…...
Java 多线程技术详解
文章目录 Java 多线程技术详解目录引言多线程的概念为什么使用多线程?多线程的特征多线程的挑战 多线程的实现方式3.1 继承 Thread 类示例代码: 3.2 实现 Runnable 接口示例代码: 3.3 使用 Executor 框架示例代码: 3.4 使用 Calla…...
一份简单实用的MATLAB M语言编码风格指南
MATLAB M语言编码风格指南 1. 文件命名2. 函数命名3. 注释4. 变量命名5. 布局、注释和文档6. 代码结构7. 错误处理8. 性能优化9. 格式化输出 MATLAB M文件的编码规范对于确保代码的可读性、可维护性和一致性非常重要。下面是一份MATLAB M语言编码规范的建议,可以作为…...
ubuntu 环境下soc 使用qemu
构建vexpress-a9的linux内核 安装依赖的软件 sudo apt install u-boot-tools sudo apt install gcc-arm-linux-gnueabi sudo apt install g-arm-linux-gnueabi sudo apt install gcc#编译内核 下载 linux-5.10.14 linux-5.10.148.tar.gz 配置 sudo tar -xvf linux-5.10.1…...
Centos安装、迁移gitlab
Centos安装迁移gitlab 一、下载安装二、配置rb修改,起服务。三、访问web,个人偏好设置。四、数据迁移1、查看当前GitLab版本2、备份旧服务器的文件3、将上述备份文件拷贝到新服务器同一目录下,恢复GitLab4、停止新gitlab数据连接服务5、恢复备…...
【Python机器学习】朴素贝叶斯——使用Python进行文本分类
目录 准备文本:从文本中构建词向量 训练算法:从词向量计算概率 测试算法:根据现实情况修改分类器 准备数据:文档词袋模型 要从文本中获取特征,需要先拆分文本。这里的特征是来自文本的词条,一个词条是字…...
【linux】Shell脚本三剑客之grep和egrep命令的详细用法攻略
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…...
Spring条件装配:灵活配置你的应用
文章目录 摘要1. 条件装配概述1.1 什么是条件装配1.2 为什么需要条件装配 2. 使用Conditional注解2.1 Conditional注解简介2.2 编写自定义条件类2.3 应用Conditional注解 3. 内置的条件注解3.1 ConditionalOnClass3.2 ConditionalOnMissingBean3.3 ConditionalOnProperty 4. 使…...
【前端 08】简单学习js字符串
JavaScript中的String对象详解 在JavaScript中,字符串(String)是一种非常基础且常用的数据类型,用于表示文本数据。虽然JavaScript中的字符串是原始数据类型,但它们的行为类似于对象,因为JavaScript为字符…...
【LLM】-07-提示工程-聊天机器人
目录 1、给定身份 1.1、基础代码 1.2、聊天机器人 2、构建上下文 3、订餐机器人 3.1、窗口可视化 3.2、构建机器人 3.3、创建JSON摘要 利用会话形式,与具有个性化特性(或专门为特定任务或行为设计)的聊天机器人进行深度对话。 在 Ch…...
AvaloniaUI的学习
相关网站 github:https://github.com/AvaloniaUI/Avalonia 官方中文文档:https://docs.avaloniaui.net/zh-Hans/docs/welcome IDE选择 VS2022VSCodeRider 以上三种我都尝试过,体验Rider最好。VS2022的提示功能不好,VSCode太慢,…...
刷题——快速排序
【全网最清晰快速排序,看完快排思想和代码全部通透,不通透你打我!-哔哩哔哩】 https://b23.tv/8GxEKIk 代码详解如上 #include <iostream> using namespace std;int getPort(int* a, int low, int high) {int port a[low];while(low…...
VPN,实时数据显示,多线程,pip,venv
VPN和翻墙在本质上是不同的。想要真正实现翻墙,需要选择部署在墙外的VPN服务。VPN也能隐藏用户的真实IP地址 要实现Python对网页数据的定时实时采集和输出,可以使用Python的定时任务调度模块。其中一个常用的库是APScheduler。您可以编写一个函数&#…...
自然语言处理(NLP)
自然语言处理(NLP)是计算机科学与人工智能领域的一个重要研究方向,它致力于让计算机能够理解、分析、处理和生成人类语言。在NLP领域,存在着许多常见的任务,这些任务通常对应着不同的算法和技术。以下将详细列举几个NL…...
Spring Boot集成Spire.doc实现对word的操作
1.什么是spire.doc? Spire.Doc for Java 是一款专业的 Java Word 组件,开发人员使用它可以轻松地将 Word 文档创建、读取、编辑、转换和打印等功能集成到自己的 Java 应用程序中。作为一款完全独立的组件,Spire.Doc for Java 的运行环境无需安装 Micro…...
在Spring Boot中优化if-else语句
在Spring Boot中,优化if-else语句是提升代码质量、增强可读性和可维护性的重要手段。过多的if-else语句不仅会使代码变得复杂难懂,还可能导致代码难以扩展和维护。以下将介绍七种在Spring Boot中优化if-else语句的实战方法,每种方法都将结合示…...
【Django】开源前端库bootstrap,常用
文章目录 下载bootstrap源文件到本地项目引入bootstrap文件 官网:https://www.bootcss.com/V4版本入口:https://v4.bootcss.com/V5版本入口:https://v5.bootcss.com/ 这里使用成熟的V4版本,中文文档地址:https://v4.b…...
2024后端开发面试题总结
一、前言 上一篇离职贴发布之后仿佛登上了热门,就连曾经阿里的师兄都看到了我的分享,这波流量真是受宠若惊! 回到正题,文章火之后,一些同学急切想要让我分享一下面试内容,回忆了几个晚上顺便总结一下&#…...
opencascade AIS_Manipulator源码学习
前言 AIS_Manipulator 是 OpenCASCADE 库中的一个类,用于在3D空间中对其他交互对象或一组对象进行局部变换。该类提供了直观的操控方式,使用户可以通过鼠标进行平移、缩放和旋转等操作。 详细功能 交互对象类,通过鼠标操控另一个交互对象…...
Hadoop、Hive、HBase、数据集成、Scala阶段测试
姓名: 总分:Hadoop、Hive、HBase、数据集成、Scala阶段测试 一、选择题(共20道,每道0.5分) 1、下面哪个程序负责HDFS数据存储( C ) A. NameNode B. Jobtracher C. DataNode D. Sec…...
go语言day19 使用git上传包文件到github Gin框架入门
git分布式版本控制系统_git切换head指针-CSDN博客 获取请求参数并和struct结构体绑定_哔哩哔哩_bilibili (gin框架) GO: 引入GIn框架_go 引入 gin-CSDN博客 使用git上传包文件 1)创建一个github账户,进入Repositories个人仓…...
Ubuntu升级软件或系统
Ubuntu升级软件或系统 升级Ubuntu系统通常是一个相对简单的过程,但在进行操作之前,请务必备份重要数据以防万一。下面是升级Ubuntu系统的一般步骤: 使用软件更新工具升级系统 打开终端: 按下 Ctrl Alt T 组合键打开终端。 更…...
【Redis】Centos7 安装 redis(详细教程)
查看当前 Redis 版本: 当前的 redis 版本太老了,选择安装 Redis5。 一、使用 yum 安装 1、首先安装 scl 源 yum install centos-release-scl-rh 由于我之前已经安装过了,所以加载速度比较快,且显示已经安装成功,是最…...
Hakuin:一款自动化SQL盲注(BSQLI)安全检测工具
关于Hakuin Hakuin是一款功能强大的SQL盲注漏洞安全检测工具,该工具专门针对BSQLi设计,可以帮助广大研究人员优化BSQLi测试用例,并以自动化的形式完成针对目标Web应用程序的漏洞扫描与检测任务。 该工具允许用户以轻松高效的形式对目标Web应…...
在 Postman 中设置全局 token
目录 问题描述解决方案 问题描述 在使用 Postman 进行接口测试时,经常会遇到在 Header 中添加 token 的情况。当接口数量较多时,需要为每个接口进行设置,而且当 token 失效时需要重新获取并设置,这样一来效率较低。 解决方案 下…...
Linux C编程:打造一个插件系统
title: ‘Linux C编程:打造一个插件系统’ date: 2017-03-07 21:16:36 tags: linux C layout: post comments: true 运行环境:linux 使用语言:c 或者c 插件,很多人用过,比如游戏插件,编辑器插件这些, 最著…...
基于毫米波生物感知雷达+STM32设计的独居老人居家监护系统(微信小程序)(192)
基于毫米波生物感知雷达设计的独居老人居家监护系统(微信小程序)(192) 文章目录 一、前言1.1 项目介绍【1】项目功能介绍【2】项目硬件模块组成1.2 设计思路【1】整体设计思路【2】60G毫米波生物感知雷达原理【3】ESP8266模块配置【4】供电方式1.3 项目开发背景【1】选题的意义…...
C++——类和对象(下)
目录 一、再探构造函数 1.基本定义以及用法 2.必须在初始化列表初始化的成员变量 3.成员变量声明位置的缺省值(C11) 4.成员变量初始化顺序 二、隐式类型转换 三、static成员 四、友元 五、内部类 六、匿名对象 七、日期类实现 一、再探构造函数…...
Android中集成前端页面探索(Capacitor 或 Cordova 插件)待完善......
探索目标:Android中集成前端页面 之前使用的webview加载html页面,使用bridge的方式进行原生安卓和html页面的通信的方式,探索capacitor-android插件是如何操作的 capacitor-android用途 Capacitor 是一个用于构建现代跨平台应用程序的开源框…...
玩转CSS:用ul li +JS 模拟select,避坑浏览器不兼容。
玩转CSS:用ul li JS 模拟select,避坑浏览器不兼容。 在前端的工作中,经常会遇到 selcet控件,但我们用css来写它的样式时候,总是不那么令人满意,各种浏览器不兼容啊有没有? 那么,我…...
介绍下PolarDB
业务中用的是阿里云自研的PolarDB,分析下PolarDB的架构。 认识PolarDB 介绍 PolarDB是阿里云自研的,兼容MySQL、PostageSQL以及支持MPP的PolarDB-X的高可用、高扩展性的数据库。 架构 部署 云起实验室 - 阿里云开发者社区 - 阿里云 (aliyun.com) 数…...
基于微信小程序+SpringBoot+Vue的儿童预防接种预约系统(带1w+文档)
基于微信小程序SpringBootVue的儿童预防接种预约系统(带1w文档) 基于微信小程序SpringBootVue的儿童预防接种预约系统(带1w文档) 开发合适的儿童预防接种预约微信小程序,可以方便管理人员对儿童预防接种预约微信小程序的管理,提高信息管理工作效率及查询…...
go语言day15 goroutine
Golang-100-Days/Day16-20(Go语言基础进阶)/day17_Go语言并发Goroutine.md at master rubyhan1314/Golang-100-Days GitHub 第2讲-调度器的由来和分析_哔哩哔哩_bilibili 一个进程最多可以创建多少个线程?-CSDN博客 引入协程 go语言中内置了协程goroutine&#…...
Mindspore框架循环神经网络RNN模型实现情感分类|(六)模型加载和推理(情感分类模型资源下载)
Mindspore框架循环神经网络RNN模型实现情感分类 Mindspore框架循环神经网络RNN模型实现情感分类|(一)IMDB影评数据集准备 Mindspore框架循环神经网络RNN模型实现情感分类|(二)预训练词向量 Mindspore框架循环神经网络RNN模型实现…...
System类
System类常见方法 ① exit 退出当前程序 public static void main(String[] args) {System.out.println("ok1");//0表示状态,即正常退出System.exit(0);System.out.println("ok2");} ② arraycopy 复制数组元素 复制的数组元素个数必须<原数…...
【前端 02】新浪新闻项目-初步使用CSS来排版
在今天的博文中,我们将围绕“新浪新闻”项目,深入探讨HTML和CSS在网页制作中的基础应用。通过具体实例,我们将学习如何设置图片、标题、超链接以及文本排版,同时了解CSS的引入方式和选择器优先级,以及视频和音频标签的…...
HarmonyOS和OpenHarmony区别联系
前言 相信我们在刚开始接触鸿蒙开发的时候经常看到HarmonyOS和OpenHarmony频繁的出现在文章和文档之中,那么这两个名词分别是什么意思,他们之间又有什么联系呢?本文将通过现有的文章和网站内容并与Google的AOSP和Android做对比,带…...
llama模型,nano
目录 llama模型 Llama模型性能评测 nano模型是什么 Gemini Nano模型 参数量 MMLU、GPQA、HumanEval 1. MMLU(Massive Multi-task Language Understanding) 2. GPQA(Grade School Physics Question Answering) 3. HumanEval llama模型 Large Language Model AI Ll…...
ElasticSearch的应用场景和优势
ElasticSearch是一个开源的分布式搜索和分析引擎,它以其高性能、可扩展性和实时性在多个领域得到了广泛应用。以下是ElasticSearch的主要应用场景和优势: 应用场景 实时搜索: ElasticSearch以其快速、可扩展和实时的特性,成为实…...
git 、shell脚本
git 文件版本控制 安装git yum -y install git 创建仓库 将文件提交到暂存 git add . #将暂存区域的文件提交仓库 git commit -m "说明" #推送到远程仓库 git push #获取远程仓库的更新 git pull #克隆远程仓库 git clone #分支,提高代码的灵活性 #检查分…...
阿里云服务器 篇六:GitHub镜像网站
文章目录 系列文章搭建镜像网站的2种方式使用 Web 抓取工具 (Spider 技术)使用 Web 代理服务器使用 nginx 搭建GitHub镜像网站基础环境搭建添加对 github.com 的转发配置添加对 raw.githubusercontent.com 的转发配置配置更改注意事项(可选)缓存优化为新增设的二级域名配置DN…...
强化学习学习(三)收敛性证明与DDPG
文章目录 证明收敛? Deep RL with Q-FunctionsDouble Q-Learning理论上的解法实际上的解法 DDPG: Q-Learning with continuous actionsAdvanced tips for Q-Learning 证明收敛? 对于Value迭代:不动点证明的思路 首先定义一个算子 B : B V ma…...