当前位置: 代码迷 >> 综合 >> 监控神器-Prometheus(服务端搭建)
  详细解决方案

监控神器-Prometheus(服务端搭建)

热度:100   发布时间:2023-11-20 01:11:34.0

优势

  1. 易于管理
  2. 轻易获取服务内部状态
  3. 高效灵活的查询语句
  4. 支持本地和远程存储
  5. 采用http协议,默认pull模式拉取数据,也可以通过中间网关push数据
  6. 支持自动发现
  7. 可扩展
  8. 易集成(客户端分为不同语言的SDK和不同用途的exporter两种)

Prometheus运行流程 

    prometheus根据配置定时去拉取各个节点的数据,默认使用的拉取方式是pull,也可以使用pushgateway提供的push方式获取各个监控节点的数据。将获取到的数据存入TSDB,一款时序型数据库。此时prometheus已经获取到了监控数据,可以使用内置的PromQL进行查询。它的报警功能使用Alertmanager提供,Alertmanager是prometheus的告警管理和发送报警的一个组件。prometheus原生的图标功能过于简单,可将prometheus数据接入grafana,由grafana进行统一管理。 

搭建GO语言环境

下载go安装包

wget https://dl.google.com/go/go1.12.3.linux-amd64.tar.gz

其他安装包可在此挑选: https://golang.google.cn/dl/

解压&配置

tar -C /usr/local -zxvf  go1.12.3.linux-amd64.tar.gz

修改配置文件

vim /etc/profile

在末尾新增两行

export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin

刷新配置

source /etc/profile

检测是否安装成功

go version

安装Grafana

获取安装包

下载地址:https://grafana.com/grafana/download

在Linux联网环境下可以直接获取

wget https://dl.grafana.com/oss/release/grafana-6.3.5-1.x86_64.rpm
sudo yum localinstall grafana-6.3.5-1.x86_64.rpm

接着把Grafana加入到系统服务,将服务启动

sudo /sbin/chkconfig --add grafana-server
sudo service grafana-server start

安装Prometheus

下载地址: https://prometheus.io/download/

解压

tar  -vxf prometheus-2.12.0.linux-amd64.tar.gz  -C /usr/local/

制作软连接

ln  -sv  /usr/local/prometheus-2.12.0.linux-amd64/  /usr/local/prometheus

进入目录后执行命令

./prometheus 

node_exporter安装

tar xvf node_exporter-0.18.1.linux-amd64.tar.gz -C  /usr/local/
cd /usr/local/node_exporter-0.18.1.linux-amd64/ 
nohup ./node_exporter >/dev/null 2>&1 &

修改 prometheus.yml

cd /usr/local/prometheus
vim prometheus.yml
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: ['IP:9090']- job_name: 'server'static_configs:- targets: ['IP:9100']

重启!! !

 

如果需要配置监控对象则配置(prometheus.yml)!!!!

配置文件大致可以分为四部分:

  • global:全局配置,其中scrape_interval表示抓取一次数据的间隔时间,evaluation_interval表示进行告警规则检测的间隔时间;
  • alerting:告警管理器(Alertmanager)的配置,目前还没有安装Alertmanager;
  • rule_files:告警规则有哪些;
  • scrape_configs:抓取监控信息的目标。一个job_name就是一个目标,其targets就是采集信息的IP和端口。这里默认监控了Prometheus自己,可以通过修改这里来修改Prometheus的监控端口。Prometheus的每个exporter都会是一个目标,它们可以上报不同的监控信息,比如机器状态,或者mysql性能等等,不同语言sdk也会是一个目标,它们会上报你自定义的业务监控信息。

 整合Grafana

到设置页面配置Prometheus的连接信息

 例子:计算出整个CPU的工作状态

(((count(count(node_cpu_seconds_total) by (cpu))) - avg(sum by (mode)(irate(node_cpu_seconds_total{mode='idle'}[5m])))) * 100) / count(count(node_cpu_seconds_total) by (cpu))

访问该地址:https://grafana.com/grafana/dashboards

使用官方推荐仪表盘!

推荐:https://www.jianshu.com/p/413fd42ae660