参考https://www.cnblogs.com/-wenli/p/13654507.html
Grafana
官网地址:Grafana
官方文档:Grafana文档
Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。它主要有以下六大特点:
1、展示方式:快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式;
2、数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等;
3、通知提醒:以可视方式定义最重要指标的警报规则,Grafana将不断计算并发送通知,在数据达到阈值时通过Slack、PagerDuty等获得通知;
4、混合展示:在同一图表中混合使用不同的数据源,可以基于每个查询指定数据源,甚至自定义数据源;
5、注释:使用来自不同数据源的丰富事件注释图表,将鼠标悬停在事件上会显示完整的事件元数据和标记;
6、过滤器:Ad-hoc过滤器允许动态创建新的键/值过滤器,这些过滤器会自动应用于使用该数据源的所有查询。
快速开始
查找镜像
docker search grafana/grafana
拉取容器镜像
docker pull grafana/grafana
查看容器
docker images
启动容器
docker run -d --name grafana -p 3000:3000 grafana/grafana:master
Grafana的配置文件为:(/etc/grafana/grafana.ini),进入容器:docker exec -it grafana bash
访问
http://公网ip:3000
注意:默认用户和密码:admin:admin
prometheus
Prometheus是一个开源的服务监控系统,它通过HTTP协议从远程的机器收集数据并存储在本地的时序数据库上。
- 多维数据模型(时序列数据由metric名和一组key/value组成)
- 在多维度上灵活的查询语言(PromQl)
- 不依赖分布式存储,单主节点工作.
- 通过基于HTTP的pull方式采集时序数据
- 可以通过push gateway进行时序列数据推送(pushing)
- 可以通过服务发现或者静态配置去获取要采集的目标服务器
- 多种可视化图表及仪表盘支持
- Prometheus通过安装在远程机器上的exporter来收集监控数据,后面我们将使用到node_exporter收集系统数据。
快速开始
拉取容器镜像
docker pull prom/node-exporter docker pull prom/prometheus
启动node-exporter:这个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
访问url
http://公网ip:9100/metrics
新建目录prometheus,编辑配置文件prometheus.yml
mkdir /home/prometheus cd /home/prometheus vim prometheus.yml
global: scrape_interval: 60s evaluation_interval: 60s scrape_configs: - job_name: prometheus static_configs: - targets: ['localhost:9090'] labels: instance: prometheus - job_name: linux static_configs: - targets: ['公网ip:9100'] labels: instance: localhost
启动prometheus
docker run -d \ -p 9090:9090 \ -v /home/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus
访问url
http://公网ip:9090/graph
访问targets
http://公网ip:9090/targets
快速使用
1、添加Prometheus数据源
Add data source选择Prometheus
- Name名字写Prometheus
- 如果有type 的话选择Prometheus,因为数据都从它那里获取
- URL输入Prometheus的ip+端口
点击下面的Save & Test,如果出现绿色的,说明ok了
2、配置Grafana数据展示模板
至此Prometheus和Grafana已经打通了,接下来需要添加个图形模板以便展示数据。
Grafana里有很多的模板可以直接使用(https://grafana.com/dashboards),我这里使用的是https://grafana.com/dashboards/8919,其中8919是ID号,可以在Grafana中Import,直接输入ID号会自动找到该模板。
3.展示监控主机的ui
##############################################################
采用8919的模板展示就有数据8321的展示没有数据
https://www.cnblogs.com/-wenli/p/13654507.html
常见问题
cadvisor容器后外部无法访问映射端口
https://www.cnblogs.com/Leonardo-li/p/13536641.html
docker run -v /:/rootfs:ro -v /var/run:/var/run:rw -v /sys:/sys:ro -v /var/lib/docker:/var/lib/docker:ro -p 8080:8080 --detach=true --name=cadvisor --net=host google/cadvisor
docker run \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:rw \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--publish=8080:8080 \
--detach=true \
--name=cadvisor \
--net=host \
google/cadvisor:latest
docker run \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:ro \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--volume=/dev/disk/:/dev/disk:ro \
--publish=8080:8080 \
--detach=true \
--name=cadvisor \
--privileged \
--device=/dev/kmsg \
google/cadvisor:latest
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@2
prometheus实战成功典范
https://blog.csdn.net/weixin_46902396/article/details/115294424
https://blog.csdn.net/weixin_40274679/article/details/108546972
https://blog.csdn.net/java060515/article/details/86300357
https://blog.csdn.net/iuskye/article/details/116457525
cat <<END > /etc/docker/daemon.json
{
"registry-mirrors": [
"https://1nj0zren.mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"http://f1361db2.m.daocloud.io",
"https://registry.docker-cn.com"
]
}
END
docker run -itd --name=grafanajwwng \
--restart=always \
-p 3000:3000 \
-v $PWD/grafana-storage:/var/lib/grafana \
grafana/grafana
grafana一直重启
https://blog.csdn.net/weixin_45465395/article/details/115768125
https://blog.csdn.net/mayifan0/article/details/106543173/
拉取grafana镜像并启动
docker pull grafana/grafana
docker run -d -p 3000:3000 --restart always --name grafana grafana/grafana
docker run -itd --name=node-exporter \
--restart=always \
-p 9100:9100 \
-v "/proc:/host/proc:ro" \
-v "/sys:/host/sys:ro" \
-v "/:/rootfs:ro" \
prom/node-exporter
labels:
instance: prometheus
- job_name: linux
static_configs:
- targets: ['10.168.0.29:9100']
labels:
instance: localhost
关闭防火墙:
systemctl stop firewalld
禁止防火墙开机自启:
systemctl disable firewalld
4.3.2 关闭selinux#
永久关闭:
# 永久
sed -i 's/enforcing/disabled/' /etc/selinux/config
# 重启
reboot
临时关闭:
# 临时
setenforce 0
4.3.3 关闭swap分区#
永久关闭swap分区:
# 永久
sed -ri 's/.*swap.*/#&/' /etc/fstab
# 重启
reboot
临时关闭swap分区:
swapoff -a
prometheus反复重启
docker run -itd --name prometheus --restart=always -p 9090:9090 prom/prometheus
构建grafana+prometheus+node_exporter,配置后没有出来数据
grafana无法显示数据
https://ceshiren.com/t/topic/10039
https://www.cnblogs.com/zgqbky/p/13672343.html
https://blog.csdn.net/weixin_40391011/article/details/113177767
docker run -d --name=prometheus -p 9090:9090 -v /tmp/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
https://blog.csdn.net/java060515/article/details/86300357
采用8919的模板展示就有数据8321的展示没有数据
https://www.cnblogs.com/-wenli/p/13654507.html
https://blog.csdn.net/czz1141979570/category_7330947.html
k8s+prometheus实战
https://blog.csdn.net/qq_43076479/category_10098268.html
https://blog.csdn.net/iuskye/category_11039524.html
Prometheus完整搭建及实战各种监控
https://blog.51cto.com/anfishr/2463270
https://blog.csdn.net/liumiaocn/category_9561738.html
https://blog.csdn.net/java060515/article/details/86300357
https://blog.csdn.net/czz1141979570/category_7330947.html
https://blog.csdn.net/lixinkuan328/article/details/107780118
prometheus怎么监控虚拟机、监控虚拟机的哪些指标、怎么监控容器、监控容器的哪些指标,这些是不是通过yml配置文件实现,我们怎么去修改这
写模板,我们可以说我们在hcso的局点给用户出过相应的解决方案,然后要用户去部署监控虚拟机和容器
在prometheus中新增node节点,部署容器、容器上跑进程、部署插件做容器的监控
部署node_export
docker run -d -p 9100:9100 -v "/proc:/host/proc:ro" -v "/sys:/host/sys:ro" -v "/:/rootfs:ro" --net="host" prom/node-exporter
修改配置文件
vim /home/prometheus/prometheus.yml
在target中配置新增加的node节点的ip:port信息--targets: ['182.151.44.55:9100','171.214.3.128:9100']
部署cAdvisor成功https://lixinkuan.blog.csdn.net/article/details/107780219
https://blog.csdn.net/java060515/article/details/86300357
docker pull google/cadvisor:latest
docker run \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:rw \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--volume=/dev/disk/:/dev/disk:ro \
--publish=18104:8080\
--detach=true \
--name=cadvisor \
google/cadvisor:latest
修改prometheus的配置文件,重启prometheus服务
targets: ['182.151.44.55:9100','171.214.3.128:9100','171.214.3.128:18104']
docker restart 8d9d0ae2fd68
怎么在grafana上显示容器的监控呢?采用哪个模板呢?模板采用11558或194
https://blog.csdn.net/lixinkuan328/article/details/107780118
https://blog.csdn.net/weixin_31095703/article/details/112606536
https://blog.51cto.com/anfishr/2463270
https://www.cnblogs.com/-wenli/p/13654507.html