普罗米修斯是一套开源的监控系统,可以监控啥呢?如下:
linux服务器
开源软件,如redis、mysql
你自己写的项目
一、安装go语言环境
官网地址:https://golang.org
下载:wget https://dl.google.com/go/go1.11.2.linux-amd64.tar.gz
下载完毕后,解压 tar -zxvf go1.11.2.linux-amd64.tar.gz
配置环境变量:
vim /etc/profile
在最后添加
export GOHOME=/opt/go/go
export PATH=$PATH:$GOHOME/bin
source /etc/profile
验证是否安装成功:go version
二、安装prometheus
官网地址:https://prometheus.io/
下载:
wget https://github.com/prometheus/prometheus/releases/download/v2.34.0/prometheus-2.34.0.linux-amd64.tar.gz
解压:
tar -zxvf prometheus-2.34.0.linux-amd64.tar.gz
启动:
./prometheus --config.file=prometheus.yml &
启动后界面:
三、安装grafana
下载:
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-8.4.4-1.x86_64.rpm
安装:
yum install grafana-enterprise-8.4.4-1.x86_64.rpm
启动:
service grafana-server start
启动后界面:
添加prometheus数据源
四、一些常用的监控
现在我们已经安装好了基本的组件,接下来我们就要用普罗米修斯来监控我们需要监控的东西。
1、监控linux服务器:
在被监控的机器上安装node-exporter,
wegt https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
启动 ./node-exporter &
并修改prometheus的配置文件新增如下:
- job_name: "linux_monitor"
static_configs:
- targets: ["localhost:9100"]
并重新启动。
在grafana上新建一个仪表盘,选择模板id和数据源,
grafana已经为我们准备好了很多可以直接导入的模板,地址:https://grafana.com/grafana/dashboards/
效果图如下:
2、监控SpringCloud项目立体监控
在我们开发过程中,服务可能不止一个,我么用springcloud来把它管理起来,那么服务会经常进行删减,如果对每个服务分别监控,那会有不小的工作量来经常修改普罗米修斯的配置,我们希望能够利用eureka来自动进行服务实例监控的添加。
项目里引入依赖:
<!-- prometheus monitor-->
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<version>1.3.0</version>
</dependency>
开放actuator的监控端点,在配置文件添加:
# management config
management.metrics.tags.application=${spring.application.name}
management.endpoint.health.show-details=always
management.endpoint.shutdown.enabled=false
management.endpoints.web.exposure.include=*
然后再配置普罗米修斯的配置时,增加如下配置:
- job_name: "eureka"
metrics_path: '/actuator/prometheus'
eureka_sd_configs:
- server: http://106.12.144.243:8761/eureka
在grafana里添加一个仪表盘,模板ID:12900
监控效果如下:
可以切换服务,实例;可以看到服务占用的cpu,负载,内存,jvm,线程等信息。
总结
普罗米修斯是一个功能强大,开源免费的监控系统,配合grafana的展示及告警功能,能够满足我们日常的服务、服务器、自应用的监控工作。