当前位置: 首页 > news >正文

山东网站建设最便宜网站推广app软件

山东网站建设最便宜,网站推广app软件,深圳企业网站制作报价,元芳重庆网站建设目录 1. Prometheus概述 2. Prometheus vs Zabbix 3. Prometheus极速上手指南 3.1 时间同步 3.2 部署Prometheus 3.3 启动Prometheus 3.4 Prometheus监控架构 3.5 补充 配置页面 简单过滤 查看数据 查看图形 http://prometheus.oldboylinux.cn:9090/metrics显示…

目录

1. Prometheus概述

2. Prometheus vs Zabbix 

3. Prometheus极速上手指南

3.1 时间同步 

3.2 部署Prometheus 

3.3 启动Prometheus

 3.4 Prometheus监控架构

 3.5 补充

 配置页面

简单过滤 

查看数据 

查看图形 

http://prometheus.oldboylinux.cn:9090/metrics显示所有键值

4. Prometheus配置

4.1 服务端命令行选项

4.2 配置文件

5. Prometheus的exporter 

5.1 概述

5.2 部署node_exporter

5.3 配置prometheus服务端

5.4 检查结果

5.5 prometheus动态配置文件 

 6. Prometheus过滤语句

6.1 基本过滤

6.2 包含条件的过滤 

过滤指定主机的数据

 过滤出所有主机非idle的指标.

6.3 小结 

6.4 常用函数 

rate函数

sum求和

count计数

其他函数

6.5 grafana中使用的 PromQL语句 

6.6 复杂语句

7. Pushgateway

7.1 使用流程

7.2 Pushgateway部署 

修改服务端配置文件

检查是否添加成功

7.3 书写脚本与提交数据

提交个测试数据

书写脚本 

检查结果 

脚本写入定时任务 

8. 进入Grafana

8.1 概述

8.2 使用流程 

添加数据源(别忘记hosts解析)

解决仪表盘没有数据 

数据不准

导入第三方仪表盘

9. Altermanager 告警

9.1 Alertmanager部署

9.2 Alertmanager配置

9.3 Prometheus配置

9.4 prometheus告警规则文件

9.5 检查规则

10. 容器监控

10.1 检查

 10.2 接入grafana

1. Prometheus概述

1. Prometheus监控架构。使用Golang语言实现。使用简单,学习门槛较高。

2. Prometheus一般与Grafana配合。

2. Prometheus vs Zabbix 

指标PrometheusZabbix
语言Golang(Go)PHP,C,GO
部署二进制,解压即用yum,编译,数据库,php依赖
是否容易掌握门槛较高容易使用
监控方式通过各种exporter,监控一般都是基于http各种模板,客户端,自定义监控,各种协议
应用场景监控服务,容器,k8s监控系统底层,硬件,系统,网络

3. Prometheus极速上手指南

角色主机名ip
prometheus服务端prometheus_server_xzb10.0.0.65/172.16.1.65
grafanagrafana10.0.0.66/172.16.1.66
docker01docker0110.0.0.81/172.16.1.81

3.1 时间同步 

3.2 部署Prometheus 

##创建目录
mkdir -p /app/##解压
tar xf prometheus-2.33.3.linux-amd64.tar.gz -C /app/##创建软连接
ln -s /app/prometheus-2.33.3.linux-amd64/ /app/prometheus##检查版本
/app/prometheus/prometheus --version
目录说明
prometheusprometheus服务端的命令
prometheus.yml配置文件

3.3 启动Prometheus

##进入目录
cd /app/prometheus##前台启动
./prometheus##查看端口 有9090端口便是启动成功
ss -lntup  ##浏览器解析访问
10.0.0.65 prometheus.oldboylinux.cn

 3.4 Prometheus监控架构

 3.5 补充

注意事项:

prometheus默认读取当前目录下面的prometheus.yml配置文件。

后台启动:

nohup /app/prometheus/prometheus &>> /var/log/prometheus.log &

##systemctl管理
vim /usr/lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus Server
After=network.target[Service]
Type=simple
[Unit]
Description=Prometheus Server
After=network.target[Service]
Type=simple
ExecStart=/app/prometheus/prometheus --config.file=/app/prometheus/prometheus.yml --web.listen-address=0.0.0.0:9090 --web.max-connections=512
KillMode=process[Install]
WantedBy=multi-user.targetKillMode=process[Install]
WantedBy=multi-user.target##重启daemon-reload
systemctl daemon-reload ##关闭prometheus
pkill prometheus##开机自启
systemctl  enable prometheus.service ##启动
systemctl  start  prometheus.service ##查看端口
ss -lntup##查看日志
journalctl -f -u prometheus.service

 配置页面

简单过滤 

查看数据 

查看图形 

http://prometheus.oldboylinux.cn:9090/metrics显示所有键值

http://prometheus.oldboylinux.cn:9090/metrics

4. Prometheus配置

4.1 服务端命令行选项

prometheus命令行核心选项说明
--config.file="prometheus.yml"指定配置文件,默认是当前目录下在的prometheus.yml
--web.listen-address="0.0.0.0:9090"前端web页面,端口和监听的地址。如果想增加访问认证可以用ngx。
--web.max-connections=512并发连接数
--storage.tsdb.path="data/"指定tsdb数据存放目录
--log.level=info日志级别。prometheus日志默认输出到屏幕(标准输出)
--log.format=logfmt日志格式。logfmt默认格式。 json格式(日志收集的时候使用)

4.2 配置文件

##cat prometheus.yml
# my global config 
##全局定义部分
global:scrape_interval: 15s ##这个间隔表示,prometheus采集数据的间隔evaluation_interval: 15s #执行对应的rules(规则)间隔,一般报警规则##采集数据的超时时间,默认是10秒#scrape_timeout is set to the global default (10s).
# Alertmanager configuration  用于配置警告信息,alertmanager配置。
alerting:alertmanagers:- static_configs:- targets:# - alertmanager:9093.
rule_files:# - "first_rules.yml"# - "second_rules.yml"
scrape_configs:##数据采集的配置(客户端)- job_name: "prometheus-server-xzb"  ##任务名字.体现采集哪些机器,哪些指标# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:##静态配置文件,直接指定被采集的对象. 修改后要重启- targets: ["localhost:9090"]file_sd_configs:##动态配置文件,动态读取文件内容,然后进行采集,实时监控

5. Prometheus的exporter 

5.1 概述

exporter说明
node_exporter获取节点基础信息(系统监控)
服务的exporter监控指定服务的

5.2 部署node_exporter

##创建目录
mkdir -p /app/exports/##解压到指定目录
tar xf node_exporter-1.3.1.linux-amd64.tar.gz -C /app/exports/##创建软连接
ln -s /app/exports/node_exporter-1.3.1.linux-amd64/node_exporter /bin/##启动
node_exporter  &##检查端口和进程  9100 端口
ss -lntup##syatemctl配置
vim /usr/lib/systemd/system/prometheus_node.service
[Unit]
Description=prometheus node_exporter
After=network.target
[Service]
Type=simple
ExecStart=/bin/node_exporter
KillMode=process
[Install]
WantedBy=multi-user.target##重启daemon
systemctl restart daemon-reload

5.3 配置prometheus服务端

## 添加node-exports节点
cat  /app/prometheus/prometheus.yml
global:scrape_interval: 15s evaluation_interval: 15s 
alerting:alertmanagers:- static_configs:- targets:
rule_files:
scrape_configs:- job_name: "prometheus-server-xzb"static_configs:- targets: ["localhost:9090"]- job_name: "prometheus-all-node-exports"static_configs:- targets: - "localhost:9100"- "prometheus.oldboylinux.cn:9100"

5.4 检查结果

5.5 prometheus动态配置文件 

1. 获取的exporter域名+端口,写入配置文件,prometheus可以定时读取并加入到prometheus中。

2. 用于解决,大量主机添加、删除的操作

##增加动态读取
vim   /app/prometheus/prometheus.yml
...
...
scrape_configs:- job_name: "prometheus-server-xzb"static_configs:- targets: ["localhost:9090"]- job_name: "prometheus-all-node-exports"static_configs:- targets: - "localhost:9100"- "prometheus.oldboylinux.cn:9100"file_sd_configs:   ##动态读取与加载配置文件。- files:         ##指定要加载的配置文件- /app/prometheus/discovery_node_exporter.yml  refresh_interval: 5s    ##读取间隔##动态加载的配置文件格式
cat discovery_node_exporter.yml
[{ "targets": [  "localhost:9100","prometheus.oldboylinux.cn:9100"]}
]

 6. Prometheus过滤语句

6.1 基本过滤

1. 直接写上prometheus的键值(key)

2. 比如通过node_exporter获取所有主机可用内存输入node_memory_MemFree_bytes

3. 过滤负载: node_load1

4. 查看所有键值

6.2 包含条件的过滤 

过滤指定主机的数据

node_cpu_seconds_total{instance="prometheus.oldboylinux.cn:9100"}

格式说明,过滤出指定的内容,需要使用{key(属性)="想要的值"}

 过滤出所有主机非idle的指标.

node_cpu_seconds_total{mode!="idle"}

同时满足上面的条件:

node_cpu_seconds_total{mode!="idle",instance="prometheus.oldboylinux.cn:9100"}

6.3 小结 

prometheus过滤中的符号含义
=等于
!=不等于
=~支持正则,匹配
!~支持正则,不匹配

1. 推荐先找出你要的键值,观察键值里面的属性

2. 过滤格式: node_cpu_seconds_total{mode!="idle"}

键值{属性=“值”}

6.4 常用函数 

rate函数

计算范围向量中时间序列的每秒平均增长率。单调性的中断(例如由于目标重新启动而导致的计数器重置)会自动调 整。此外,计算推断到时间范围的末端,允许错过刮擦或刮擦周期与该范围的时间段的不完美对齐。

 rate(http_requests_total{job="api-server"}[5m])

 rate只能与计数器一起使用。它最适合警报和缓慢移动计数器的图形。

##过去一分钟内,系统每秒花费的平均CPU时间
node_cpu_seconds_total[1m]##排除idle
node_cpu_seconds_total{mode!="idle"}[1m]## rate []一般配合函数实现统计指定范围的内容.
rate(node_cpu_seconds_total{mode!="idle"}[1m])

sum求和

计算总和

count计数

其他函数

Query functions | Prometheusicon-default.png?t=O83Ahttps://prometheus.io/docs/prometheus/latest/querying/functions/

6.5 grafana中使用的 PromQL语句 

## 可用内存使用率=用了的/总共的 * 100
((node_memory_MemTotal_bytes{instance="prometheus.oldboylinux.cn:9100", job="prometheus-all-node-exports"}-node_memory_MemFree_bytes{instance="prometheus.oldboylinux.cn:9100", job="prometheus-all-node-exports"})/node_memory_MemTotal_bytes{instance="prometheus.oldboylinux.cn:9100", job="prometheus-all-node-exports"})*100## 内存总大小- 剩余内存 = 用了多少

6.6 复杂语句

##计算内存使用率
(总内存-剩余)/总共
= 可用/总共
((node_memory_MemTotal_bytes-node_memory_MemFree_bytes)/node_memory_MemTotal_bytes)*100

7. Pushgateway

7.1 使用流程

1. 部署,启动pushgateway,服务端ip/域名+端口,写入配置(动态、静态)

2. 书写脚本获取你要的信息,把信息发送到pushgateway中。

7.2 Pushgateway部署 

##创建目录
mkdir -p /app/pushgateway## 解压到指定目录
tar xf pushgateway-1.4.1.linux-amd64.tar.gz -C /app/pushgateway/## 创建软连接
ln -s /app/pushgateway/pushgateway-1.4.1.linux-amd64/pushgateway  /bin/## 书写systemctl配置
cat /usr/lib/systemd/system/pushgateway.service
[Unit]
Description=prometheus pushgateway
After=network.target
[Service]
Type=simple
ExecStart=/bin/pushgateway
KillMode=process
[Install]
WantedBy=multi-user.target## 重启
systemctl daemon-reload## 自启动
systemctl  enable pushgateway.service ##启动
systemctl  start  pushgateway.service ##检查进程和端口 端口9091

修改服务端配置文件

##修改服务端配置文件
cat /app/prometheus/prometheus.yml
...
...
scrape_configs:- job_name: "prometheus-server-xzb"static_configs:- targets: ["localhost:9090"]- job_name: "prometheus-all-node-exports"static_configs:- targets: - "localhost:9100"- "prometheus.oldboylinux.cn:9100"file_sd_configs:- files:- /app/prometheus/discovery_node_exporter.ymlrefresh_interval: 5s- job_name: "prometheus-pushgateway"static_configs:- targets: - "localhost:9091" 

检查是否添加成功

7.3 书写脚本与提交数据

提交个测试数据

##检查cpu核心数
cat /server/scripts/diy_push_cpu_cores.sh
#!bin/bash
#1.vars
cores=`lscpu |grep 'CPU(s)'|awk 'NR==1 {print $2}'`
job="pushgateway_metrics"
ins="prometheus.oldboylinux.cn:9100"
pushgw="http://prometheus.oldboylinux.cn:9091"#2.
echo "cpu_cores $cores"| \
curl --data-binary @- ${pushgw}/metrics/job/${job}/instance/${ins}##写法  ##其中分组名和实例名可以自己设置
curl data-binary @- http://prometheus.oldboylinux.cn:9091/metrics/job/分组名/instance/实例名

书写脚本 

#!/bin/basih
##1.vars
job_name="pushgateway_metrics"
ins="prometheus.oldboylinux.cn:9100"
pushgw="http://prometheus.oldboylinux.cn:9091"#2.取值
disk_sda_root_total=`df |awk '$NR=="/" {print $2}'`
disk_sda_root_free=`df |awk '$NR=="/" {print $4}'`
disk_sda_root_used=`df |awk '$NR=="/" {print $3}'`##想pushgateway发送请求
echo "disk_sda_total ${disk_sda_root_total}"| \
curl --data-binary @- ${pushgw}/metrics/job/${job_name}/instance/${ins}
echo "disk_sda_free ${disk_sda_root_free}"| \
curl --data-binary @- ${pushgw}/metrics/job/${job_name}/instance/${ins}
echo "disk_sda_used ${disk_sda_root_used}"| \
curl --data-binary @- ${pushgw}/metrics/job/${job_name}/instance/${ins}

检查结果 

脚本写入定时任务 

##同步时间
*/2 * * * * /sbin/ntpdate ntp1.aliyun.com  &>/dev/null
##prometheus pushgateway
* * * * *  sh /server/scripts/pushgateway-disk-usage.sh &>/dev/null 

8. 进入Grafana

8.1 概述

1. prometheus webui一般用于调试PromQL语句(查询语句)

2. 展示交给Grafana。本质:Grafana执行PromQL语句(查询语句),然后通过Grafana进行展示

参考文章:

监控架构- Grafana-监控大屏-CSDN博客

8.2 使用流程 

添加数据源(别忘记hosts解析)

解决仪表盘没有数据 

##修改的查询语句主要关注,job部分和instance。
(time()-process_start_time_seconds{instance="prometheus.oldboylinux.cn:9100",job="prometheus-all-node-exports"})

数据不准

(time()-node_boot_time_seconds{instance="prometheus.oldboylinux.cn:9100", job="prometheus-all-node-exports"})##原因:process_start_time_seconds获取的是Prometheus服务端运行多久(进程)

导入第三方仪表盘

9. Altermanager 告警

9.1 Alertmanager部署

##创建目录
mkdir -p /app/altermanager/##解压到指定目录
tar  xf alertmanager-0.24.0.linux-amd64.tar.gz -C /app/altermanager/## 创建软连接
ln -s /app/altermanager/alertmanager-0.24.0.linux-amd64/alertmanager /bin/## systemectl配置书写
[Unit]
Description=prometheus pushgateway
After=network.target
[Service]
Type=simple
ExecStart=/bin/alertmanager --config.file=/app/altermanager/alertmanager-0.24.0.linux-amd64/alertmanager.yml --web.listen-address=0.0.0.0:9093
KillMode=process
[Install]
WantedBy=multi-user.target##检查端口 
ss -lntup|grep alert

9.2 Alertmanager配置

##alertmanager配置详解
global:   ##全局定义部分。配置发件人信息.resolve_timeout:  ##5m dns解析的超时时间.smtp_from:        ##发件人smtp_smarthost:   ##smtp服务器smtp_hello:       ##qq.com 163.com 邮箱厂商smtp_auth_username: ##邮箱名字smtp_auth_password: ##授权码smtp_require_tls:falseroute:  ##配置收件人间隔时间,收件方式group_by: ['alertname'] group_wait: 30sgroup_interval: 5mrepeat_interval: 1h  ##重复告警时间. eg。11:00 发送了1次告警,12:00 再发送1次receiver: 'email' ##采取什么方式接受告警.
##完整的配置文件
global:resolve_timeout: 5msmtp_from: 'xing775288271@163.com'smtp_smarthost: 'smtp.163.com:465'smtp_hello: '163.com'smtp_auth_username: 'xing775288271@163.com'smtp_auth_password: 'THqpcgCf5JqBDmVZ'smtp_require_tls: false
route:group_by: ['alertname']group_wait: 30sgroup_interval: 5mrepeat_interval: 1hreceiver: 'email'
receivers:- name: 'email'email_configs:- to: '775288271@qq.com'send_resolved: true
inhibit_rules:- source_match:severity: 'critical'target_match:severity: 'warning'equal: ['alertname', 'dev', 'instance']

9.3 Prometheus配置

##prometheus服务端配置文件
cat /app/prometheus/prometheus.yml
global:scrape_interval: 15s evaluation_interval: 15s 
alerting:alertmanagers:- static_configs:- targets:- "prometheus.oldboylinux.cn:9093"
rule_files: - "/app/prometheus/prometheus_alert_rules.yml"
scrape_configs:- job_name: "prometheus-server-xzb"static_configs:- targets: ["localhost:9090"]
...
...

9.4 prometheus告警规则文件

##prometheus告警规则文件
vim /app/prometheus/prometheus_alert_rules.yml
groups:- name: check_node_statusrules:- alert: check_node_is_upexpr: up{instance="prometheus.oldboylinux.cn:9100", job="prometheus-all-node-exports"}==0for: 15slabels:severity: 1team: nodeannotations:summary: "{{ $labels.instance }} 节点停止运行超过15s!!!"

9.5 检查规则

10. 容器监控

##监控容器
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 --privileged --device=/dev/kmsg  google/cadvisor:latest##prometheus服务端的配置文件
vim /app/prometheus/prometheus.yml
...
...- job_name: "prometheus-pushgateway"static_configs:- targets: - "localhost:9091"- job_name: "cadvisor-docker"static_configs: - targets:- "docker01.oldboylinxu.cn:8080"##hosts解析##重启prometheus

10.1 检查

 10.2 接入grafana

grafana id号:10619


文章转载自:
http://cholangiography.rtkz.cn
http://pareu.rtkz.cn
http://metaassembler.rtkz.cn
http://costarican.rtkz.cn
http://finite.rtkz.cn
http://chaitya.rtkz.cn
http://laterite.rtkz.cn
http://underbelly.rtkz.cn
http://receptionist.rtkz.cn
http://rochelle.rtkz.cn
http://mirthless.rtkz.cn
http://spitchcock.rtkz.cn
http://hirtellous.rtkz.cn
http://interspersion.rtkz.cn
http://geneva.rtkz.cn
http://embrace.rtkz.cn
http://instinctive.rtkz.cn
http://real.rtkz.cn
http://disseizor.rtkz.cn
http://fine.rtkz.cn
http://dicyandiamide.rtkz.cn
http://devolatilize.rtkz.cn
http://shipfitter.rtkz.cn
http://prs.rtkz.cn
http://amerceable.rtkz.cn
http://fervent.rtkz.cn
http://semiglobular.rtkz.cn
http://confirmed.rtkz.cn
http://manhandle.rtkz.cn
http://noggin.rtkz.cn
http://jawed.rtkz.cn
http://protractor.rtkz.cn
http://tup.rtkz.cn
http://gametocide.rtkz.cn
http://superheterodyne.rtkz.cn
http://cramoisy.rtkz.cn
http://protomorph.rtkz.cn
http://gyrodyne.rtkz.cn
http://californian.rtkz.cn
http://excusable.rtkz.cn
http://hamite.rtkz.cn
http://park.rtkz.cn
http://oligophagous.rtkz.cn
http://deixis.rtkz.cn
http://atween.rtkz.cn
http://worker.rtkz.cn
http://thirty.rtkz.cn
http://overtask.rtkz.cn
http://sheathbill.rtkz.cn
http://graceless.rtkz.cn
http://imposure.rtkz.cn
http://oversleeve.rtkz.cn
http://glance.rtkz.cn
http://argentum.rtkz.cn
http://lunarian.rtkz.cn
http://phytolaccaceous.rtkz.cn
http://definable.rtkz.cn
http://austenitic.rtkz.cn
http://teleport.rtkz.cn
http://salve.rtkz.cn
http://toot.rtkz.cn
http://continuative.rtkz.cn
http://hydroformylation.rtkz.cn
http://frostline.rtkz.cn
http://aldebaran.rtkz.cn
http://distressed.rtkz.cn
http://cleanout.rtkz.cn
http://commodity.rtkz.cn
http://flushing.rtkz.cn
http://hymnodist.rtkz.cn
http://jarl.rtkz.cn
http://agaragar.rtkz.cn
http://each.rtkz.cn
http://lady.rtkz.cn
http://shuttle.rtkz.cn
http://squirrelly.rtkz.cn
http://banksman.rtkz.cn
http://sarcoma.rtkz.cn
http://drfeelgood.rtkz.cn
http://coverlet.rtkz.cn
http://referrible.rtkz.cn
http://brickyard.rtkz.cn
http://tailspin.rtkz.cn
http://spavined.rtkz.cn
http://sidewards.rtkz.cn
http://clon.rtkz.cn
http://klan.rtkz.cn
http://uda.rtkz.cn
http://sensational.rtkz.cn
http://peperoni.rtkz.cn
http://woodbox.rtkz.cn
http://allnighter.rtkz.cn
http://sourness.rtkz.cn
http://counterinsurgency.rtkz.cn
http://suitably.rtkz.cn
http://plagiocephalism.rtkz.cn
http://snuffy.rtkz.cn
http://serviceman.rtkz.cn
http://whimper.rtkz.cn
http://auditorial.rtkz.cn
http://www.dt0577.cn/news/113661.html

相关文章:

  • 昆明网站seo优化搜索引擎优化需要多少钱
  • 网站开发时保证用户登陆的安全5月疫情最新消息
  • 网页小游戏网站有哪些今日大事件新闻
  • b2b平台网站源码千万别在百度上搜别人名字
  • 淘宝客怎样建网站跨境电商培训
  • 网站建设属什么资产百度官网首页入口
  • 自己做网站的各种代码seo搜索引擎优化推广专员
  • 防止网站被攻击深圳网站建设公司排名
  • 苏州建设工程信息网站市场营销专业课程
  • 想建个购物网站做网站建网站公司
  • 模板网站与定制网站的优缺点seo值是什么意思
  • 茂名seo网站建设广告软文范例200字
  • 点的排版设计网站seo店铺描述
  • 漳州网站开发制作棋牌网络营销教程
  • 网站开发项目流程书国内it培训机构排名
  • 企业商用网站建设企划书北京seo网站优化培训
  • 织梦网站如何做优化新闻头条
  • 哪些网站是vue做的武汉新闻最新消息
  • 忻州网站建设网站推广seo免费优化公司推荐
  • 住房和城乡建设部标准定额司网站郑州网络运营培训
  • 网站开发 评价线上推广活动有哪些
  • 网站建设多少预算seo基础课程
  • 网站转移空间百度地图导航手机版免费下载
  • app制作器手机版下载seo哪里有培训
  • 做网站跳转创建个人网站的流程
  • apk开发济南网站优化排名
  • wordpress页面加载时间代码网站seo排名培训
  • 用vs2015做网站如何做好企业网站的推广
  • 惠州响应式网站建设公司百度的代理商有哪些
  • 网站建设接单技巧百度关键词查询网站