96、 prometheus二进制

一、prometheus

prometheus

1,二进制

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

开源的系统监控和告警。

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

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

1.1、prometheus组件

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

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

需要部署在每个节点上。

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

在这里插入图片描述

1.2、promtheus的特点:

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

2、内置时间序列----TSDB

3、promql

4、http协议拉取数据

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

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

1.2.1、TSDB:

1、存储量级非常大

2、涉及读很少,大部分写入操作

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

4、高并发性能很强大

Alertmanager:

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

(面试)Prometheus和zabbix的区别:

1、指标采集的方式

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

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

2、数据存储:

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

Prometheus自带内置的时序数据库,(TSDB)-----只支持存储时间序列大的值。

3、查询性能:

zabbix查询功能较弱

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

4、告警功能

都是内置告警功能,一样都是邮件,电话等等。

prometheus不能打电话。

5、监控的内容

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

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

监控pod缺点:反应太慢。兼容性比较差

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

promql

二、安装Prometheus

主节点三个压缩包
-rw-r--r--. 1 root root  10181045 9月  18 10:01 node_exporter-1.5.0.linux-amd64.tar.gz
-rw-r--r--. 1 root root  91189594 9月  18 10:02 prometheus-2.45.0.linux-amd64.tar.gz
-rw-r--r--. 1 root root  55051732 9月  18 10:02 grafana-enterprise-7.5.11-1.x86_64.rpm
从节点一个node_exporter压缩包
-rw-r--r--. 1 root root  10181045 9月  18 10:01 node_exporter-1.5.0.linux-amd64.tar.gz

[root@master01 opt]# tar -xf prometheus-2.45.0.linux-amd64.tar.gz 
[root@master01 opt]# mv prometheus-2.45.0.linux-amd64 prometheus
[root@master01 opt]# ll


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
tcp6       0      0 :::9090                 :::*                    LISTEN      97254/prometheus 


[root@master01 opt]# cd prometheus/
[root@master01 prometheus]# ls
console_libraries  data     NOTICE      prometheus.yml
consoles           LICENSE  prometheus  promtool
[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.168.81:9100
          - 192.168.168.82:9100
          - 192.168.168.83:9100
      labels:
        service: kubernetes





-----------------三台主机-------------
[root@master01 prometheus]# cd /opt/
[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/
[root@master01 node_exporter-1.5.0]# ls
LICENSE  NOTICE



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
[root@master01 node_exporter-1.5.0]# netstat -antp | grep 9100
tcp6       0      0 :::9100                 :::*                    LISTEN      109986/node_exporte

[root@node01 node_exporter-1.5.0]# systemctl daemon-reload 
[root@node01 node_exporter-1.5.0]# systemctl restart node_exporter
[root@node01 node_exporter-1.5.0]# netstat -antp | grep 9100
tcp6       0      0 :::9100                 :::*                    LISTEN      129341/node_exporte 

[root@node02 node_exporter-1.5.0]# systemctl daemon-reload 
[root@node02 node_exporter-1.5.0]# systemctl restart node_exporter
[root@node02 node_exporter-1.5.0]# netstat -antp | grep 9100
tcp6       0      0 :::9100                 :::*                    LISTEN      110382/node_exporte 


[root@master01 node_exporter-1.5.0]# systemctl restart node_exporter
[root@master01 node_exporter-1.5.0]# netstat -antp | grep 9100
tcp6       0      0 :::9100                 :::*                    LISTEN      109986/node_exporte 
[root@master01 node_exporter-1.5.0]# systemctl restart prometheus.service 
[root@master01 node_exporter-1.5.0]# netstat -antp | grep 9100
tcp6       0      0 :::9100                 :::*                    LISTEN      109986/node_exporte 
[root@master01 node_exporter-1.5.0]# netstat -antp | grep 9090
tcp        0      0 127.0.0.1:34240         127.0.0.1:9090          TIME_WAIT   -                   
tcp6       0      0 :::9090                 :::*                    LISTEN      117770/prometheus   
[root@master01 node_exporter-1.5.0]# yum -y install ntpdate


安装完成浏览192.168.168.81:9090

在这里插入图片描述

在这里插入图片描述

时间不同步导致的

[root@master01 node_exporter-1.5.0]# yum -y install ntpdate

在这里插入图片描述

安装grafana

[root@master01 node_exporter-1.5.0]# cd /opt/
[root@master01 opt]# rpm -ivh grafana-enterprise-7.5.11-1.x86_64.rpm 
警告:grafana-enterprise-7.5.11-1.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 24098cb6: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:grafana-enterprise-7.5.11-1      ################################# [100%]
### NOT starting on installation, please execute the following statements to configure grafana to start automatically using systemd
 sudo /bin/systemctl daemon-reload
 sudo /bin/systemctl enable grafana-server.service
### You can start grafana-server by executing
 sudo /bin/systemctl start grafana-server.service
POSTTRANS: Running script
[root@master01 opt]# systemctl daemon-reload 
[root@master01 opt]# systemctl restart grafana-server.service 
[root@master01 opt]# netstat -antp | grep 3000
tcp6       0      0 :::3000                 :::*                    LISTEN      2017/grafana-server 



浏览器访问http://192.168.168.81:3000/

在这里插入图片描述

密码admin

在这里插入图片描述

官网

https://grafana.com/grafana/dashboards
##下载监控模板

在这里插入图片描述

第一种导入模板方式

在这里插入图片描述

在这里插入图片描述

第二种导入模板方式

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

指定prometheus的数据库

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

导入模板1860

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

12633模板

在这里插入图片描述

应用模板展示

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值