Centos 7.x Docker安装grafana和prometheus
一、Centos7.x安装docker
执行如下命令:
yum install -y docker-io |
|---|
二、Docker安装node-exporter
执行如下命令:
docker pull prom/node-exporter |
|---|
效果:

三、Docker安装prometheus
执行如下命令:
docker pull prom/prometheus |
|---|
效果:

四、Docker安装grafana
执行如下命令:
docker pull grafana/grafana |
|---|
效果:

五、启动Node-exporter
执行命令:
docker run -d -p 9100:9100 \> -v "/proc:/host/proc:ro" \> -v "/sys:/host/sys:ro" \> -v "/:/rootfs:ro" \> --net="host" \> prom/node-exporter |
|---|
效果如下:

查看Node-exporter是否启动成功
执行如下命令:
netstat -anpt |
|---|
效果:

访问URL来验证
URL:http://172.16.90.250:9100/metrics
展示效果如下图:

六、启动prometheus
新建prometheus文件夹,修改prometheus.yml文件
执行如下命令:
mkdir /opt/Prometheuscd /opt/prometheus/ |
|---|
编辑prometheus.yml文件
执行如下命令:
vim prometheus.yml |
|---|
贴入如下内容:
global: scrape_interval: 60s evaluation_interval: 60sscrape_configs: - job_name: application-instance-name metrics_path: /actuator/prometheus static_configs: - targets: ['172.16.113.41:31986'] # application instance ip:port labels: instance: application_instance_name_jvm |
|---|
启动prometheus,执行如下命令:
# 默认9090端口 对外挂载的端口是19091docker rm -f prometheus && docker run -d -p 19091:9090 -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml --name prometheus prom/prometheus |
|---|
效果:

查看prometheus容器是否启动成功命令:
docker ps -a | grep prometheus |
|---|
启动效果:

启动成功效果如下:


点击连接可以看到JVM的信息

七、启动grafana
新建空文件夹grafana-storage,用来存储数据
执行如下命令:
mkdir /opt/grafana-storage |
|---|
设置权限(grafana用户会在该目录中写入文件),执行如下命令
chmod 777 -R /opt/grafana-storage |
|---|
启动grafana,执行如下命令
docker run -d \> -p 3000:3000 \> --name=grafana \> -v /opt/grafana-storage:/var/lib/grafana \> grafana/grafana |
|---|
效果如下:

访问URL:http://172.16.90.250:3000/login
效果如下图所示:

默认用户名和密码都是admin,首次登录需要修改,目前是adminadmin/adminadmin
登录以后的效果:

选择数据源prometheus


设置prometheus信息

lName:默认写prometheus
lURL:prometheus的ip+port
lTimeout:表示请求超时时间
lAccess:默认Server
lAuth:目前没有使用Spring Security
lScrape interval代表轮询时间间隔,默认15s,可以配置修改
点击save & test,出现如下画面表示设置成功

添加JVM grafana模板
https://grafana.com/grafana/dashboards/
DataSource选择prometheus,找一个适合自己的模板

我们选择第一个JVM(micrometer)

在grafana中import进去ID

最终效果如图所示:

八、实现原理
在SpringBoot工程中使用spring-boot-actor,以http的方式将jvm等状态数据输出,Prometheus通过配置读取接口数据方式,将jvm等状态数据进行存储,最后在Grafana中配置Prometheus数据源,设计相关图表,通过Prometheus SQL读取存储的状态数据返回到页面渲染图标,实现运行在k8s中的springboot应用jvm可视化监控
