自学内容网 自学内容网

prometheus

prometheus

1、二进制

2、部署在k8s集群当中,pod形式部署

开源的系统监控和告警。

在k8s分布式的容器化管理系统当中,一般都是搭配prometheus来进行监控

服务器监控系统(监控主机),自带数据库,时序数据库:提供了数据模型和采集的指标项,存储,查询接口。

promql语句,如何采集和统计。

nodeexporter:在k8s集群当中部署在node节点上,用来收集节点上的数据(主机指标,pod的使用情况)。

需要部署在每个节点上。

pushgateway:把数据上传到prometheus,然后再根据promql语句来进行分类的展示

prometheus的特点:

1、多维的数据模型,按照顺序记录,记录设备状态的变化,为每个数据指定一个样本:服务器的指标,应用性能的监控。网络数据。

2、内置时间序列 数据库——TSDB

3、promql

4、http协议拉取1数据

5、自带服务自动发现功能。

6、grafana插件可以更人性化的展示指标数据

TSDB:

1、存储的量级非常大

2、大部分都是写入操作

3、写入操作是按照时序进行添加的

4、高并发性能很强大

Alertmanager:

告警管理,是一个独立的模块,需要独立的配置,电子邮件,钉钉,企业微信。

prometheus和zabbix的区别:

1、指标采集的方式

zabbix分为服务端和客户端,agent都是部署在客户端,然后把数据发送给服务端。tcp协议通信 (ip+端口)

prometheus根据客户端进行收集,服务端和客户端进行交互,pull的方式获取监控指标。基于http协议

2、数据存储

zabbix使用外部数据库存储数据,mysql prostgreSQL oracle。关系型数据库

prometheus自带内置的时序数据库(TSDB)————只支持存储时间序列的值

3、查询性能

zabbix查询功能较弱

prometheus的查询功能更强大,速度更快

4、告警功能

都是内置告警功能,都可以邮件,电话(prometheus没有打电话功能)等等。

5、监控的内容

zabbix主要是为了监控设备(服务器的状态)cpu——内存——硬盘——网络流量——自定义的监控项(非虚拟化部署的程序。)

zabbix的时间更长,更成熟,使用监控方面要求不高,只需要对服务设备监控的场景。

prometheus:专门为k8s定制的监控软件,对容器产品兼容度更好。定制化程度更高。更适用于微服务场景。

promql

grafana-enterprise-7.5.11-1.x86_64.rpm
node_exporter-1.5.0.linux-amd64.tar.gz
prometheus-2.45.0.linux-amd64.tar.gz
​
——————————————————————————————————————————————————————————————
#node_exporter在node节点和master节点上都导入
#grafana-enterprise和prometheus这两个只再master上导入
​
​
​
[root@master01 opt]# tar -xf prometheus-2.45.0.linux-amd64.tar.gz
[root@master01 opt]# mv prometheus-2.45.0.linux-amd64 prometheus
​
cat > /usr/lib/systemd/system/prometheus.service <<'EOF'
[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io
After=network.target
 
[Service]
Type=simple
ExecStart=/opt/prometheus/prometheus \
--config.file=/opt/prometheus/prometheus.yml \
--storage.tsdb.path=/opt/prometheus/data/ \
--storage.tsdb.retention=15d \
--web.enable-lifecycle
  
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
 
[Install]
WantedBy=multi-user.target
EOF
[root@master01 opt]# systemctl daemon-reload 
[root@master01 opt]# systemctl restart prometheus.service
[root@master01 opt]# netstat -antp | grep 9090
tcp        0      0 127.0.0.1:50402         127.0.0.1:9090          ESTABLISHED 105741/prometheus   
tcp6       0      0 :::9090                 :::*                    LISTEN      105741/prometheus   
tcp6       0      0 127.0.0.1:9090          127.0.0.1:50402         ESTABLISHED 105741/prometheus 
​
​
[root@master01 prometheus]# vim prometheus.yml
# my global config
global:
#全局的配置,对所有生效
  scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
#采集主机监控数据的间隔时间,15s采集一次
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
#触发告警的时间间隔,间隔时间是15s
  # scrape_timeout is set to the global default (10s).
  scrape_timeout: 10s
#数据采集的超时时间,10s
​
# Alertmanager configuration
alerting:
#告警的实例配置
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093
​
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
#加载告警的规则
  # - "first_rules.yml"
  # - "second_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: nodes
    metrics_path: "/metrics"
#采集数据的默认路径
    static_configs:
    - targets:
      - 192.168.60.110:9100
      - 192.168.60.120:9100
      - 192.168.60.130:9100
      labels:
        service: kubernetes
——————————————————————————三台一起操作——————————————————————————
[root@master01 opt]# tar -xf node_exporter-1.5.0.linux-amd64.tar.gz 
[root@master01 opt]# mv node_exporter-1.5.0.linux-amd64 node_exporter-1.5.0
[root@master01 opt]# cd node_exporter-1.5.0/
[root@master01 node_exporter-1.5.0]# ls
LICENSE  node_exporter  NOTICE
[root@master01 node_exporter-1.5.0]# mv node_exporter /usr/local/bin/
​
cat > /usr/lib/systemd/system/node_exporter.service <<'EOF'
[Unit]
Description=node_exporter
Documentation=https://prometheus.io/
After=network.target
 
[Service]
Type=simple
ExecStart=/usr/local/bin/node_exporter \
--collector.ntp \
--collector.mountstats \
--collector.systemd \
--collector.tcpstat
 
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
 
[Install]
WantedBy=multi-user.target
EOF
[root@master01 node_exporter-1.5.0]# systemctl restart node_exporter.service
[root@master01 node_exporter-1.5.0]# netstat -antp | grep 9100
​
#在浏览器访问192.168.60.110:9090

[root@master01 opt]# rpm -ivh grafana-enterprise-7.5.11-1.x86_64.rpm 
[root@master01 opt]# systemctl restart grafana-server.service 
[root@master01 opt]# netstat -antp | grep 3000
tcp6       0      0 :::3000                 :::*                    LISTEN      128768/grafana-serv 
​
#在浏览器访问192.168.60.110:3000

https://grafana.com/grafana/dashboards 
#在这个网站找模板

12633和8171是可以使用的

原文地址:https://blog.csdn.net/m0_71178834/article/details/142328816

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!