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可视化监控