Prometheus完整搭建及实战各种监控_诸葛钢铁云的博客-CSDN博客_prometheus监控搭建


本站和网页 https://blog.csdn.net/jj1130050965/article/details/121453290 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

Prometheus完整搭建及实战各种监控_诸葛钢铁云的博客-CSDN博客_prometheus监控搭建
Prometheus完整搭建及实战各种监控
诸葛钢铁云
于 2021-11-21 14:17:07 发布
4117
收藏
20
分类专栏:
监控
文章标签:
云计算
centos
redis
原文链接:https://blog.51cto.com/anfishr/2463270
版权
监控
专栏收录该内容
5 篇文章
1 订阅
订阅专栏
一.Prometheus介绍 Prometheus(普罗米修斯)是一个最初在SoundCloud上构建的监控系统。自2012年成为社区开源项目,拥有非常活跃的开发人员和用户社区。为强调开源及独立维护,Prometheus于2016年加入云原生云计算基金会(CNCF),成为继Kubernetes之后的第二个托管项目。https://prometheus.ioPrometheus · GitHub
作为新一代的监控框架,Prometheus 具有以下特点: • 多维数据模型:由度量名称和键值对标识的时间序列数据 • PromSQL:一种灵活的查询语言,可以利用多维数据完成复杂的查询 • 不依赖分布式存储,单个服务器节点可直接工作 • 基于HTTP的pull方式采集时间序列数据 • 推送时间序列数据通过PushGateway组件支持 • 通过服务发现或静态配置发现目标 • 多种图形模式及仪表盘支持 Prometheus适用于以机器为中心的监控以及高度动态面向服务架构的监控。
二.Prometheus部署 转载:绿色记忆:Prometheus学习笔记1.安装环境: server1:centos7.6 主节点 190.168.3.250 server2:centos7.6 节点1 190.168.3.251
为您的平台下载最新版本的Prometheus,然后解压缩并运行它:
Download | Prometheus
Getting started | Prometheus
2.二进制安装 tar xvfz prometheus-2.15.0.linux-amd64.tar.gz cd prometheus-2.15.0.linux-amd64 mv prometheus-2.15.0.linux-amd64 /usr/local/prometheus
启动 ./prometheus --config.file=prometheus.yml
为了方便,加入到服务配置文件里 vi /usr/lib/systemd/system/prometheus.service [Unit] Description=https://prometheus.io
[Service] Restart=on-failure ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml
[Install] WantedBy=multi-user.target
重启服务 systemctl daemon-reload systemctl start prometheus.service
3.容器安装Installation | Prometheus prometheus.yml通过运行以下命令将您从主机绑定: docker run -p 9090:9090 -v /tmp/prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus 或者为配置使用额外的卷: docker run -p 9090:9090 -v /prometheus-data \ prom/prometheus --config.file=/prometheus-data/prometheus.yml
4.访问webhttp://190.168.3.250:9090访问自己的状态页面 可以通过访问localhost:9090验证Prometheus自身的指标:190.168.3.250:9090/metrics
三.配置监控服务1.配置Prometheus监控本身全局配置文件简介 有关配置选项的完整,请参阅:Configuration | Prometheus Prometheus以scrape_interval规则周期性从监控目标上收集数据,然后将数据存储到本地存储上。scrape_interval可以设定全局也可以设定单个metrics。 Prometheus以evaluation_interval规则周期性对告警规则做计算,然后更新告警状态。evaluation_interval只有设定在全局。
global:全局配置 alerting:告警配置 rule_files:告警规则 scrape_configs:配置数据源,称为target,每个target用job_name命名。又分为静态配置和服务发现
global: 默认抓取周期,可用单位ms、smhdwy #设置每15s采集数据一次,默认1分钟 [ scrape_interval: <duration> | default = 1m ] 默认抓取超时 [ scrape_timeout: <duration> | default = 10s ] 估算规则的默认周期 # 每15秒计算一次规则。默认1分钟 [ evaluation_interval: <duration> | default = 1m ] 和外部系统(例如AlertManager)通信时为时间序列或者警情(Alert)强制添加的标签列表 external_labels: [ <labelname>: <labelvalue> ... ]
规则文件列表 rule_files: [ - <filepath_glob> ... ]
抓取配置列表 scrape_configs: [ - <scrape_config> ... ]
Alertmanager相关配置 alerting: alert_relabel_configs: [ - <relabel_config> ... ] alertmanagers: [ - <alertmanager_config> ... ]
远程读写特性相关的配置 remote_write: [ - <remote_write> ... ] remote_read: [ - <remote_read> ... ]
vi prometheus.yml 下面就是拉取自身服务采样点数据配置 scrape_configs: 别监控指标,job名称会增加到拉取到的所有采样点上,同时还有一个instance目标服务的host:port标签也会增加到采样点上
job_name: 'prometheus' 覆盖global的采样点,拉取时间间隔5s scrape_interval: 5s static_configs:
targets: ['localhost:9090']
最下面,静态配置监控本机,采集本机9090端口数据
注:每次修改配置完成,用promtool检测配置文件是否正确 [root@server1 prometheus]# ./promtool check config prometheus.yml
重启服务可以用kill -hup 进程id 自动加载新配置文件
查看targets可以看到节点正常 也可以在这里搜寻收集来的数据
2.配置服务发现监控linux主机及相关服务 在server2 190.168.3.251上安装node_exporter 使用文档:Monitoring Linux host metrics with the Node Exporter | Prometheus GitHub:https://github.com/prometheus/node_exporter exporter列表:Exporters and integrations | Prometheus
在server2安装节点采集器,mysql服务,nginx服务 tar zxf node_exporter-0.17.0.linux-amd64.tar.gz mv node_exporter-0.17.0.linux-amd64 /usr/local/node_exporter cd /usr/local/node_exporter/ ./node_exporter --help
服务发现,我们这里使用file_sd_configs,写监控配置文件,服务发现node节点
mkdir sd_config创建服务发现目录
写采集地址targets [root@server1 prometheus]# vi sd_config/node.yml
方便管理服务,将宿主机节点监控采集node_exporter加入到服务配置文件里,
vi /usr/lib/systemd/system/node_exporter.service [Unit] Description=https://prometheus.io
[Service] Restart=on-failure ExecStart=/usr/local/node_exporter/node_exporter
[Install] WantedBy=multi-user.target
如果要监控节点的系统服务,需要在后面添加名单参数 --collector.systemd.unit-whitelist=".+" 从systemd中循环正则匹配单元 --collector.systemd.unit-whitelist="(docker|sshd|nginx).service" 白名单,收集目标
/usr/bin/node_exporter --collector.systemd --collector.systemd.unit-whitelist=(docker|sshd|nginx).service
在http://190.168.3.250:9090/graph已经能看到节点采集到的宿主机信息,已经可以看到监控到了服务,值为1就是服务正常
补充: 也可以将之前190.168.3.250上监控本机的9090的静态采集改成文件服务发现的形式
[root@server1 prometheus]# vi sd_config/test.yml ,其中的加上了标签,添加采集地址,可以在targets里使用标签查找
四.使用grafana前端展示数据并监控docker服务
1.cAdvisor采集容器信息 使用cAdvisor(Container Advisor)用于收集正在运行的容器资源使用和性能信息。 docker run \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:ro \ --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:ro \ --volume=/dev/disk/:/dev/disk:ro \ --publish=8080:8080 \ --detach=true \ --name=cadvisor \
登录后复制
http://190.168.3.250:8080/访问web端口,已经采集到了容器的数据
2.Grafana
Download Grafana | Grafana Labs
Grafana是一个开源的度量分析和可视化系统,Grafana支持查询普罗米修斯。自Grafana 2.5.0(2015-10-28)以来,包含了Prometheus的Grafana数据源。
在官网上下载https://grafana.com/grafana/download?platform=docker, 下载最新的rpm包,yum安装,启动服务 我们这里用的是docker版的 docker run -d --name=grafana -p 3000:3000 grafana/grafana
跑起来后,190.168.3.250:3000访问web接口 密码账号都是admin,第一次登陆需要修改密码 添加数据源 已经有一个Prometheus数据源
3.添加监控宿主机模板
输入9276,导入 修改名字和数据库 完成,查看最后模板效果
4.查看docker监控 添加新job,修改采集配置文件prometheus.yml [root@server1 prometheus]# vi prometheus.yml 检查配置文件后,重启主服务 ./promtool check config prometheus.yml
同样方法在Grafana下载模板,导入193 也可以在https://grafana.com/dashboards/下载别的模板
五.监控mysql服务
mysql_exporter:用于收集MySQL性能信息。
下载https://github.com/prometheus/mysqld_exporter 监控模板https://grafana.com/dashboards/7362
我们在server2 190.168.3.251上配置,需要下载mysqld_exporter数据库采集和安装mariadb
登录mysql为exporter创建账号,以便可以采集数据: mysql> CREATE USER 'exporter'@'localhost' IDENTIFIED BY '123456'; mysql> GRANT PROCESS, REPLICATION CLIENT, SELECT ON . TO 'exporter'@'localhost';
vi .my.cnf ,添加用户隐藏的数据库账号,prometheus监控mysql需要用这个账号采集
在server1 190.168.3.250修改采集配置文件 [root@server1 prometheus]# vi prometheus.yml
检查配置文件并重启服务,systemctl restart prometheus.service
[root@server2 mysql_exporter]# ./mysqld_exporter --config.my-cnf=.my.cnf
也可以写进系统服务 vi /usr/lib/systemd/system/mysqld_exporter.service
[Unit] Description=https://prometheus.io
[Service] Restart=on-failure ExecStart=/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf
[Install] WantedBy=multi-user.target
systemctl daemon-reload
数据库信息已经采集到了http://190.168.3.251:9104/metrics
导入模板后7362后
六.邮件告警1.告警介绍 在Prometheus平台中,警报由独立的组件Alertmanager处理。通常情况下,我们首先告诉Prometheus Alertmanager所在的位置,然后在Prometheus配置中创建警报规则,最后配置Alertmanager来处理警报并发送给接收者(邮件,webhook、slack等)。
地址1:Download | Prometheus 地址2:Releases · prometheus/alertmanager · GitHub 设置告警和通知的主要步骤如下: 第一步 部署Alertmanager 第二步 配置Prometheus与Alertmanager通信 第三步 在Prometheus中创建告警规则
2.配置Prometheus与Alertmanager通信 需要在官网下载以上的报警包
修改告警媒介,使用邮箱发送 [root@server1 alertmanager-0.16.0.linux-amd64]# vi alertmanager.yml注意:上面的验证密码不是邮箱密码,是授权码
修改完检查配置文件alertmanager.yml是否正确,然后重启服务 ./alertmanager --config.file alertmanager.yml systemctl restart prometheus.service
修改prometheus连接告警模块,并设定告警规则 [root@server1 prometheus]# vi prometheus.yml
[root@server1 prometheus]# vi rules/test.yml 参照官网告警上写的
groups:
name: example # 报警规则组名称 rules:
alert: InstanceDown expr: up == 0 for: 1m #持续时间 , 表示持续一分钟获取不到信息,则触发报警 labels: severity: page # 自定义标签 annotations: summary: "Instance {{ $labels.instance }} down" # 自定义摘要 description: "{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 5 minutes." # 自定义具体描述
3.测试邮箱告警 我们把server2 上的mysql监控关闭,测试告警http://190.168.3.250:9090/alerts,已经触发
我们看邮箱,收到报警
七.Prometheus完整搭建分类监控钉钉报警1.安装环境 服务端:190.168.3.240 安装目录:/data 同步所有主机时间:ntpdate ntp1.aliyun.com
Download | Prometheus 下载最新版的组件 prometheus-2.17.1.linux-amd64.tar.gz alertmanager-0.20.0.linux-amd64.tar.gz prometheus-webhook-dingtalk-1.4.0.linux-amd64.tar.gz
grafana官网上下载最新版的grafana-6.7.2-1.x86_64.rpm
2.安装服务端 解压 cd /data tar zxf prometheus-2.17.1.linux-amd64.tar.gz mv prometheus-2.17.1.linux-amd64 prometheus
建立报警规则文件夹rules 建立服务发现节点的文件夹sd_config
vi prometheus.yml
my global config
global:
my global config
global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
scrape_timeout is set to the global default (10s).
Alertmanager configuration
alerting: alertmanagers:
static_configs:
targets: ['localhost:9093'] - alertmanager:9093
Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
- "first_rules.yml"
- "second_rules.yml"
/data/prometheus/rules/*.yml
A scrape configuration containing exactly one endpoint to scrape:
Here it's Prometheus itself.
scrape_configs:
The job name is added as a label job=<job_name> to any timeseries scraped from this config.
job_name: 'prometheus' metrics_path defaults to '/metrics' scheme defaults to 'http'. static_configs:
targets: ['localhost:9090'] job_name: 'aliyun' file_sd_configs:
files: ['/data/prometheus/sd_config/aliyun.yml'] refresh_interval: 5s job_name: 'dev' file_sd_configs:
files: ['/data/prometheus/sd_config/dev.yml'] refresh_interval: 5s job_name: 'mysql' file_sd_configs:
files: ['/data/prometheus/sd_config/mysql.yml'] refresh_interval: 5sjob_name: 'kong' file_sd_configs:
files: ['/data/prometheus/sd_config/kong.yml'] refresh_interval: 5s
3.编写节点服务发现规则sd_config
刚才我们已经在主配置文件prometheus.yml里已经写了不同的job,下面在sd_config文件夹下写上不同job的具体内容及节点标签
阿里云节点:
targets: ['...:9100'] labels: instance: node-...
测试环境节点: [root@localhost sd_config]# cat dev.yml
targets: ['190.168.0.15:9100'] labels: instance: node-190.168.0.15 targets: ['190.168.3.0:9100'] labels: instance: node-190.168.3.0 targets: ['190.168.3.228:9100'] labels: instance: node-190.168.3.228 targets: ['190.168.0.14:9100'] labels: instance: node-190.168.0.14 targets: ['190.168.0.17:9100'] labels: instance: node-190.168.0.17 targets: ['190.168.0.18:9100'] labels: instance: node-190.168.0.18
测试api网关kong节点: [root@localhost sd_config]# cat kong.yml
targets: ['190.168.3.228:8001'] labels: instance: kong-190.168.3.228
mysql数据库节点: [root@localhost sd_config]# cat mysql.yml
targets: ['190.168.0.14:9104'] labels: instance: mysql-190.168.0.14 targets: ['190.168.0.17:9104'] labels: instance: mysql-190.168.0.17 targets: ['190.168.0.18:9104'] labels: instance: mysql-190.168.0.18
4.编写报警规则 建立报警规则文件夹rules,在里面写上不同的告警规则,里面有cpu报警,磁盘报警,内存报警,节点状态报警
名词解释: name: 告警名称 expr:表达式 for: 持续时间
[root@localhost rules]# cat cpu.yml groups:
name: cpu_rule rules:
alert: "CPU使用率过高" expr: round(100 - ((avg by (instance,job)(irate(node_cpu_seconds_total{mode="idle",instance!~'bac-.'}[5m]))) 100)) > 90 for: 2m labels: severity: warning annotations: summary: "{{$labels.instance}}:CPU使用率大于90%" description: "{{$labels.instance}}:当前使用率{{ $value }}%"
[root@localhost rules]# cat disk.yml groups:
name: disk_rule rules:
alert: "磁盘使用率过高" expr: round(100-100*(node_filesystem_avail_bytes{fstype=~"ext4|xfs"} / node_filesystem_size_bytes{fstype=~"ext4|xfs"})) > 85 for: 2m labels: severity: warning annotations: summary: "磁盘使用率过高大于85%" description: "当前磁盘{{$labels.mountpoint}} 使用率{{ $value }}%"
[root@localhost rules]# cat memory.yml groups:
name: memory_rule rules:
alert: "内存使用率过高" expr: round(100- node_memory_MemAvailable_bytes/node_memory_MemTotal_bytes*100) > 90 for: 2m labels: severity: warning annotations: summary: "内存使用率过高大于90%" description: "当前使用率{{ $value }}%"
[root@localhost rules]# cat node.yml groups:
name: node_rule rules:
alert: 节点状态 expr: up == 0 for: 2m labels: status: warning annotations: summary: "{{$labels.instance}}:服务器节点关闭" description: "{{$labels.instance}}:服务器节点关闭"
5.写完后检查配置文件是否正确 [root@localhost prometheus]# ./promtool check config prometheus.yml
6.编写prometheus启动服务和安装grafana vi /usr/lib/systemd/system/prometheus.service [Unit] Description=https://prometheus.io
[Service] Restart=on-failure ExecStart=/data/prometheus/prometheus --config.file=/data/prometheus/prometheus.yml
[Install] WantedBy=multi-user.target
systemctl daemon-reload systemctl start prometheus.service systemctl enable prometheus.service
安装grafana yum install -y grafana-6.7.2-1.x86_64.rpm systemctl start grafana-server.service systemctl enable grafana-server.service
启动服务
7.安装alertmanager告警模块 cd /data tar zxf prometheus-2.17.1.linux-amd64.tar.gz mv prometheus-2.17.1.linux-amd64 prometheus
我们备份下配置文件,写一个启动脚本 名词解释: 当一个新的报警分组被创建后,需要等待至少group_wait时间来初始化通知,这种方式可以确保您能有足够的时间为同一分组来获取多个警报,然后一起触发这个报警信息。 group_wait: 30s
当第一个报警发送后,等待'group_interval'时间来发送新的一组报警信息。 group_interval: 5m
如果一个报警信息已经发送成功了,等待'repeat_interval'时间来重新发送他们 repeat_interval: 5m
[root@localhost alertmanager]# cat alertmanager.yml global: resolve_timeout: 5m route: receiver: webhook group_wait: 30s group_interval: 5m repeat_interval: 2h group_by: [alertname] routes:
receiver: webhook group_wait: 10s receivers:
name: webhook webhook_configs:url: http://localhost:8060/dingtalk/ops_dingding/send send_resolved: true
发送到本机钉钉的webhook
检测配置文件是否正确 [root@localhost alertmanager]# ./amtool check-config alertmanager.yml
启动脚本启动服务 [root@localhost alertmanager]# cat start.sh #!/bin/bash nohup ./alertmanager --config.file=alertmanager.yml --cluster.advertise-address=0.0.0.0:9093 2>&1 1>altermanager.log &
netstat -antple | grep 9093
8.将钉钉接入 Prometheus AlertManager WebHook 插件下载地址:GitHub - timonwong/prometheus-webhook-dingtalk: DingTalk integration for Prometheus Alertmanager cd /data tar zxf prometheus-webhook-dingtalk-1.4.0.linux-amd64.tar.gz mv prometheus-webhook-dingtalk-1.4.0.linux-amd64 prometheus-webhook-dingtalk
启动脚本启动服务 [root@localhost prometheus-webhook-dingtalk]# cat start.sh #!/bin/bash nohup ./prometheus-webhook-dingtalk --ding.profile="ops_dingding=https://oapi.dingtalk.com/robot/send?access_token=039b3fd212f6c45f12c3dc1fdbf8584b033cb7dc2afb61c0cb7091d95f2c68e4" 2>&1 1>dingding.log &
netstat -antple | grep 8060
9.创建钉钉机器人
测试钉钉webhook机器人
启动服务 [root@localhost prometheus-webhook-dingtalk]# cat start.sh #!/bin/bash nohup ./prometheus-webhook-dingtalk --ding.profile="ops_dingding=https://oapi.dingtalk.com/robot/send?access_token=**" 2>&1 1>dingding.log &
netstat -antple | grep 8060
10.安装各个节点的node_exporter 在190.168.0.15上举例安装node_exporter cd /data tar zxf node_exporter-0.18.1.linux-amd64.tar.gz mv node_exporter-0.18.1.linux-amd64 node_exporter cd node_exporter
添加到服务里面 vi /usr/lib/systemd/system/node_exporter.service [Unit] Description=https://prometheus.io
[Service] Restart=on-failure ExecStart=/data/node_exporter/node_exporter
[Install] WantedBy=multi-user.target
systemctl daemon-reload systemctl start node_exporter.service systemctl enable node_exporter.service
netstat -antple | grep 9100
剩下5个节点按照sd_config节点发现的dev配置依次按照190.168.0.15的节点添加方法全部安装node_exporter并启动
11.安装mysqld_exporter节点采集 这里拿190.168.0.14举例安装mysqld_exporter cd /data tar zxf mysqld_exporter-0.12.1.linux-amd64.tar.gz mv mysqld_exporter-0.12.1.linux-amd64 mysqld_exporter
mysqld_exporter采集账户
登录数据库创建用户exporter CREATE USER 'exporter'@'localhost' IDENTIFIED BY '123456'; GRANT PROCESS, REPLICATION CLIENT, SELECT ON . TO 'exporter'@'localhost';
将mysqld_exporter添加到服务管理里 vi /usr/lib/systemd/system/mysqld_exporter.service [Unit] Description=https://prometheus.io
[Service] Restart=on-failure ExecStart=/data/mysqld_exporter/mysqld_exporter --config.my-cnf=/data/mysqld_exporter/.my.cnf
[Install] WantedBy=multi-user.target
systemctl daemon-reload systemctl start mysqld_exporter.service systemctl enable mysqld_exporter.service
netstat -antple | grep 9104
剩下2个节点按照sd_config节点发现的mysql配置依次按照190.168.0.14的节点添加方法全部安装mysqld_exporter并启动
12.线上阿里云节点的node_exporter和测试环境dev的方法一样
13.登录prometheus自带web界面http://190.168.3.240:9090/ 查看状态目标
查看告警规则
查看服务发现
查看测试expr界面
14.登录grafana的web界面 190.168.3.240:3000 账号密码admin,进入后修改密码
添加prometheus数据源
15.添加node监控模板 模板可以到grafana官方网站下载,选好模板,进去将id复制下来Dashboards | Grafana Labs
导入模板
我们这里的监控主机参数用的是9276模板
查看模板结果
16.添加mysqld_exporter监控模板 同样方法导入7362模板 查看模板结果
17.测试钉钉报警
18.自己编写模板 写一个测试环境所有主机cpu,内存,数据盘总览
查看cpu表达式(1-((sum(increase(node_cpu_seconds_total{mode="idle",job="dev"}[1m])) by (instance)) /(sum(increase(node_cpu_seconds_total[1m])) by (instance)))) * 100
选择图形和百分比
查看内存表达式round((node_memory_MemTotal_bytes{job="dev"}-(node_memory_MemFree_bytes+node_memory_Buffers_bytes+node_memory_Cached_bytes))/node_memory_MemTotal_bytes * 100)
查看数据盘表达式round(100-100*(node_filesystem_avail_bytes{job="dev",fstype=~"ext4|xfs",mountpoint="/data"} / node_filesystem_size_bytes{job="dev",fstype=~"ext4|xfs",mountpoint="/data"}))
监控rule参考prometheus linux系统告警规则 实例 - Elvin-vip - 博客园
测试expr 网卡 irate(node_network_receive_bytes_total{instance=~'$node',device=~'$nic'}[5m])8 irate(node_network_receive_bytes_total{instance=~'$node',device!~'tap.|veth.|br.|docker.|virbr|lo'}[30m])8 irate(node_network_transmit_bytes_total{instance=~'$node',device!~'tap.|veth.|br.|docker.|virbr|lo'}[30m])*8
cpu使用率 100 - (avg(irate(node_cpu_seconds_total{instance=~"$node",mode="idle"}[1m])) * 100)
(1-((sum(increase(node_cpu_seconds_total{mode="idle"}[1m])) by (instance)) /(sum(increase(node_cpu_seconds_total[1m])) by (instance)))) 100 (1-((sum(increase(node_cpu_seconds_total{mode="idle",job="dev"}[1m])) by (instance)) /(sum(increase(node_cpu_seconds_total[1m])) by (instance)))) 100
内存 ((node_memory_MemTotal_bytes{instance=~"$node"} - node_memory_MemFree_bytes{instance=~"$node"} - node_memory_Buffers_bytes{instance=~"$node"} - node_memory_Cached_bytes{instance=~"$node"}) / (node_memory_MemTotal_bytes{instance=~"$node"} )) * 100
八.后续跟进rabbitmq,redis,web,容器和小米数据库代理gaea的监控展示1.查看主配置文件,节点为服务发现 vi prometheus.yml
job_name: 'rabbitmq' file_sd_configs:
files: ['/data/prometheus/sd_config/rabbitmq.yml'] refresh_interval: 5s job_name: 'docker' file_sd_configs:
files: ['/data/prometheus/sd_config/docker.yml'] refresh_interval: 5s job_name: 'redis' file_sd_configs:
files: ['/data/prometheus/sd_config/redis.yml'] refresh_interval: 5s job_name: 'web' metrics_path: /probe params: module: [http_2xx] file_sd_configs:
files: ['/data/prometheus/sd_config/web.yml'] refresh_interval: 5s relabel_configs:
source_labels: [address] target_label: __param_targetsource_labels: [__param_target] target_label: instancetarget_label: address replacement: 190.168.3.240:9115job_name: 'gaea_proxy' metrics_path: '/api/metric/metrics' file_sd_configs:
files: ['/data/prometheus/sd_config/gaea_proxy.yml'] refresh_interval: 5s basic_auth: username: *** password: **
2.服务发现节点连接配置文件 我们看下一下rabbitmq,redis,web,容器和小米数据库代理gaea的节点发现配置 因为线上在用,地址就不方便展示了
3.rule配置展示 [root@localhost rules]# cat container_cpu.yml groups:
name: countainer_cpu_rule rules:
alert: "容器CPU使用率过高" expr: round(sum by(name,instance) (rate(container_cpu_usage_seconds_total{image!=""}[5m]))*100) > 260 for: 2m labels: severity: warning annotations: summary: "{{$labels.name}}:容器CPU使用率大于260%" description: "{{$labels.name}}:当前使用率{{ $value }}%"
[root@localhost rules]# cat web.yml groups:
name: web_rule rules:
alert: "web页面异常" expr: probe_http_status_code != 200 for: 2m labels: severity: warning annotations: summary: "{{$labels.instance}}:web页面异常" description: "{{$labels.instance}}:当前状态值{{ $value }}"
4.节点组件安装 (1)rabbitmq节点需要安装rabbitmq_exporter
直接启动 RABBIT_USER=* RABBIT_PASSWORD=** OUTPUT_FORMAT=JSON PUBLISH_PORT=9099 RABBIT_URL=http://localhost:15672 nohup ./rabbitmq_exporter &
(2)redis节点需要安装redis_exporter
直接启动 nohup ./redis_exporter -redis.addr 127.0.0.1:** -redis.password *** &
(3)web监控需要安装blackbox_exporter 配置文件
直接启动 nohup ./blackbox_exporter --config.file=./blackbox.yml &
(4)小米数据库代理gaea是go语言写的,原生自带prometheus监控,需要开启 我们只要写好上述的服务发现即可
5.grafana模版展示 模版都进行了修改 (1)rabbitmq 模版id 10982
(2)redis 模版id 763
(3)web监控 模版id 9965
(4)小米数据库代理gaea
诸葛钢铁云
关注
关注
点赞
20
收藏
评论
Prometheus完整搭建及实战各种监控
一.Prometheus介绍Prometheus(普罗米修斯)是一个最初在SoundCloud上构建的监控系统。自2012年成为社区开源项目,拥有非常活跃的开发人员和用户社区。为强调开源及独立维护,Prometheus于2016年加入云原生云计算基金会(CNCF),成为继Kubernetes之后的第二个托管项目。https://prometheus.ioPrometheus · GitHub作为新一代的监控框架,Prometheus 具有以下特点:• 多维数据模型:由度量名称和键值对标识的时间序列数
复制链接
扫一扫
专栏目录
prometheus企业级监控实战
09-01
<p>本课程 Prometheus采用目前为止最新的软件进行演示,<span style="font-size: 18px;">学习Prometheus主要功能,例如标签、服务发现、PromQL、强大的告警功能,定制告警模板等知识点,然后配合官方提供的组件,进行讲解并且运用于实际</span>然后基于每个组件进行详细讲解,结合示例,最后打造一个完整的企业自定义监控解决方案</p>
prometheus搭建监控实操
最新发布
阳某的博客
12-02
289
prometheus搭建实操手册
评论 1
您还未登录,请先
登录
后发表或查看评论
Prometheus实战
qq_26749473的博客
06-28
201
Prometheus 是一个监控系统,由很多组件组成。
Prometheus:负责向*_node抓取数据,配置报警规则,通知Alertmanager发送告警信息。
Alertmanager :实现报警功能。接受Prometheus发送的信息,以email或者http报警通知。
node:获取本地计算机,或者mysql,(生产监控信息提供者,给 Prometheus组件拉取)。
redis_exporter 拉取redis的信息
node_exporter 拉取 linux主机的信息,cup、内存、硬盘、网
prometheus搭建监控系统
方方园园的博客
03-04
413
参考 https://www.codercto.com/a/35819.html
docker run -d -p 9090:9090
-v /docker/prometheus/:/etc/prometheus/
prom/prometheus
访问
http://localhost:9090/
http://localhost:9090/metrics
可以看很多指标
官方api文档地址h...
prometheus学习
哇哦~
11-18
385
类似于直方图,但它还会计算百分位数。直方图可以很好地展现时间序列数据,尤其适用于数据的可视化(如应用程序延迟等)。通常来说,单个指标对我们价值很小,往往需要联合并可视化多个指标,这其中需要应用一些数学变换。例如,我们可能会将统计函数应用于指标或指标组,一些可能应用的常见函数包括:·计数:计算特定时间间隔内的观察点数。·求和:将特定时间间隔内所有观察点的值累计相加。·平均值:提供特定时间间隔内所有值的平均值。·中间数:数值的几何中点,正好50%的数值位于它前面,而另外50%则位于它后面。
prometheus + node_exporter + grafana监控平台搭建
w342164796的博客
03-23
1329
最近由于工作上的安排,我们产品的运维工作也落到了我头上,接手发现很多运维工作方式比较原始,尤其时在监控方面的欠缺,使得我们处于很被动的局面,所以想着搭建一套监控系统;在做监控平台选型时,比来比去决定还是用prometheus来搭建我们的监控平台,基于我们做这个决定的原因主要有如下几点:
社区活跃,很多人都在用
prometheus属于一站式监控告警平台,依赖少,功能齐全。
prometheus支...
从零搭建prometheus监控系统(Linux)
weixin_42976232的博客
11-27
915
前提:已经安装好虚拟机,虚拟机防火墙关闭:systemctl stop firewalld
已经下载好需要的软件;如下图:
把这些软件用工具导入到虚拟机的内存中,平常都安装在home目录下,所以,如图:
先忽略上面解压的文件夹,那是解压后的产物。
然年利用xshell等连接工具链接虚拟机 ,进入到该文件夹目录下,进行命令:cd /home/prosoft
进入到该文件夹下解...
prometheus监控示例
weixin_34050427的博客
04-01
5001
prometheus架构图
prometheus 各组件介绍
Prometheus Server: 使用pull方式采集监控数据,在该组件上配置监控数据的采集和告警规则。
Client Library: 客户端库,为需要监控的服务生成相应的 metrics 并暴露给 prometheus server。当 prometheus server 来 pull 时,直接返回实时状...
监控之星-普罗米修斯Prometheus搭建
stqer的博客
07-28
1336
prometheus的配置文件采用的是yml文件,yml文件书写的要求如下大小写敏感使用缩进表示层级关系缩进时不允许使用Tab键,只允许使用空格。缩进的空格数目不重要,只要相同层级的元素左侧对齐即可。.............................................
Prometheus 配置文件详解
m0_59586152的博客
05-31
1354
Prometheus 配置文件详解
官方文档:https://prometheus.io/docs/prometheus/latest/configuration/configuration/
指标说明
1、Prometheus以scrape_interval规则周期性从监控目标上收集数据,然后将数据存储到本地存储上。2、scrape_interval可以设定全局也可以设定单个metrics。3、Prometheus以evaluation_interval规则周期性对告警规则做计算,然后更新告警状态。4
prometheus scrape_configs 完整模板 和 参数详解
Sunshine8430的博客
04-09
2725
prometheus scrape_configs 完整模板 和 参数详解scarpe_configs完整模板模板参数详解参考链接
scarpe_configs完整模板
scrape_config是用来配置Prometheus数据拉取的
模板
# The job name assigned to scraped metrics by default.
job_name: <job_name>
# How frequently to scrape targets from this job.
Prometheus监控实战系列三:配置介绍
西岸Alex
11-13
1773
Prometheus使用名为prometheus.yml的配置文件进行设置,通过在启动时指定相关的文件,对配置内容进行加载。
该配置文件分为四个模块:global(全局配置)、alerting(告警配置)、rule_files(规则配置)、scrape_configs(目标拉取配置),本文将分别对其进行讲解介绍。
一. global
用于定义prometheus的全局配置。
global:
scrape_interval: 15s
evaluation_interval: 15.
Prometheus+Grafana监控系统搭建
weixin_38920945的博客
12-26
646
博文大纲:一、prometheus简介二、Prometheus组成及架构三、部署prometheus1)环境准备2)部署prometheus3)配置Peometheus监控实现报警一、prometheus简介Prometheus是一套开源的系统监控报警框架。它以给定的时间间隔从已配置的目标收集指标,评估规则表达式,显示结果,并在发现某些情况为...
实战 Prometheus 搭建监控系统
朱小厮的博客
09-04
686
点击上方“朱小厮的博客”,选择“设为星标”后台回复"书",获取后台回复“k8s”,可领取k8s资料
Prometheus 是一款基于时序数据库的开源监控告警系统,说起 Pr...
Prometheus 报警规则参考
weixin_45203131的博客
07-15
745
prometheus的报警规则案例参考[编辑器原因导致判断符号显示不正确]。
规则是通过文件方式来定义的,这些规则加载目录可以通过prometheus.yaml 配置文件进行定义,比如:
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
- "rule/*.yml"
# - "first_rules.yml"
# - "se
云服务器搭建 Prometheus 与实战(上)
java060515的专栏
01-14
853
1.前言
背景
衡量一个公司技术成熟与否的重要因素是一个公司的运维系统的水准,运维系统的核心便是监控与报警,诸多初创公司或传统行业区别于成熟大厂的主要方面便是难以建立快速有效的监控与质量体系抑或是他们本身便不够重视。今天我们要讨论的便是一款优秀的监控报警框架。
Prometheus
Prometheus 是什么?简而言之,Prometheus 是一款基于 Google 内部 Borgmon 监控系...
prometheus整体搭建详细步骤
果冻小玩纸的博客
03-06
3172
一.安装go环境
wget https://dl.google.com/go/go1.12.linux-amd64.tar.gz // 可以自行安装其他版本
tar -C /usr/local/ -xvf go1.12.linux-amd64.tar.gz
vim /etc/profile //配置环境变量
source /etc/profile //刷新配置
go ver...
Prometheus 监控基础
CCjedweat的博客
02-08
395
Prometheus 监控基础
监控系统基础
监控系统发展史
SNMP监控时代
第一代主要是监控网络流量和网络设置为主的时代,在那个时代主要是通过SNMP协议监控交换机、路由器、网关、操作系统等,通过互联网日益增长的需求,这种简单的通过SNMP协议实现的监控手段并不能满足现有需求,因此这种监控手段逐渐被替代。
当今的监控系统
当今比较流行的监控系统有Prometheus、Zabbix、Nagios、Cacti、Ganglia,它们都有几个基本特点就是对操作系统的监控数据采集、存储及展示。
未来的监控
搭建普罗米修斯Prometheus监控系统
qq_41596565的博客
12-31
2223
一、普罗米修斯监控概述
1、什么是普罗米修斯监控
Prometheus(由go语言(golang)开发)是一套开源的监控&报警&时间序列数据库的组合。适合监控docker容器。因为K8S的流行带动了Prometheus的发展。
2、官方网站
https://prometheus.io/docs/introduction/overview/
二、时间序列数据
1、什么是时间序列数据
时间序列数据(TimeSeries Data):按照时间顺序记录系统、设备状态变化的数据被称为时序数据。应用场景
使用github.com/prometheus/client_golang/prometheus包的注意事项
qq_38020553的博客
11-10
105
duplicate metrics collector registration attempted
.panic: a previously registered descriptor with the same fully-qualified name as Desc{fqName: "name", help: "", constLabels: {k2="v2"}, variableLabels: []} has different label names or a different help str
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:编程工作室
设计师:CSDN官方博客
返回首页
诸葛钢铁云
CSDN认证博客专家
CSDN认证企业博客
码龄7年
暂无认证
49
原创
23万+
周排名
1万+
总排名
20万+
访问
等级
1704
积分
200
粉丝
79
获赞
32
评论
955
收藏
私信
关注
热门文章
109 个实用 shell 脚本
17145
zabbix基础详解
5330
awk详解
4976
Prometheus完整搭建及实战各种监控
4115
认识网络、几种常用的网络拓扑图
3990
分类专栏
运维架构
17篇
大数据
6篇
解决方案
19篇
实战
20篇
虚拟网络
9篇
K8S
121篇
存储
18篇
Redis
8篇
kafka
4篇
监控
5篇
Ansible
9篇
数通和物理网络基础
24篇
LVS和HAProxy和keeplive
14篇
KVM
2篇
Nginx
20篇
安全
7篇
Jenkins
1篇
openstack
74篇
Docker
103篇
Python和shell脚本
19篇
Linux
74篇
Mysql
25篇
DNS
2篇
数据结构与算法
7篇
Unix网络编程
9篇
最新评论
Hadoop+Hbase分布式集群架构“完全篇”
supeader:
非常详细,按照教程可以配置成功
学院校园网设计方案
酱汁泡泡:
snmp v3才有网络管理安全功能吧(探讨一下)
学院校园网设计方案
m0_73640948:
有图吗
109 个实用 shell 脚本
Quanxu GAO:
扫二维码 地址过期了兄弟
zabbix基础详解
callmezs123:
666,终于找到一篇zabbix入门的文章了,适合新人阅读,刚好我们最近也在攥写这方面的文章,可以交流一下。forum.lwops.cn
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
大数据学习
python url json request 字符串
redash二次开发和制作镜像
2022
11月
2篇
10月
1篇
09月
1篇
08月
11篇
07月
5篇
06月
8篇
04月
2篇
03月
2篇
02月
12篇
01月
45篇
2021年245篇
2020年247篇
目录
目录
分类专栏
运维架构
17篇
大数据
6篇
解决方案
19篇
实战
20篇
虚拟网络
9篇
K8S
121篇
存储
18篇
Redis
8篇
kafka
4篇
监控
5篇
Ansible
9篇
数通和物理网络基础
24篇
LVS和HAProxy和keeplive
14篇
KVM
2篇
Nginx
20篇
安全
7篇
Jenkins
1篇
openstack
74篇
Docker
103篇
Python和shell脚本
19篇
Linux
74篇
Mysql
25篇
DNS
2篇
数据结构与算法
7篇
Unix网络编程
9篇
目录
评论 1
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值