docker run -it --name centos -v $HOME:/tmp -p 8080:8080 centos
docker inspect container #查看已启动容器启动命令
docker container prune #删除退出的容器
docker ps -a --no-trunc #查看容器启动参数
反查dockerfile
方法一:
docker history --format {{.CreatedBy}} --no-trunc=true 0e0218889c33|sed "s?/bin/sh\ -c\ \#(nop)\ ??g"|sed "s?/bin/sh\ -c?RUN?g" | tac
方法二:
apt-get install npm #管理前端包工具
npm install npx
npx dockerfile-from-image node:8 > dockerfile #解析dockerfile
#使用宿主机网络,并将容器名称修改为prometheus,-d后台运行
docker run -d -p 9090:9090 --name prometheus --net=host prom/prometheus
#将容器里文件拷贝出来到root目录
docker cp prometheus:/etc/prometheus/prometheus.yml /root/
#修改后挂载加进去
docker run -d -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml -p 9090:9090 --name prometheus --net=host prom/prometheus
docker logs contianid #查看日志
docker search java #从docker hub中搜索java镜像,可以查看版本
9100 node-export
9090 prometheus
3000 grafana
docker run -d --name=node-exporter -p 9100:9100 prom/node-exporter
密码:admin,admin;配置文件/etc/grafana
docker run -d --name=grafana -p 3000:3000 grafana/grafana
#将容器里文件拷贝出来到root目录
docker cp prometheus:/etc/prometheus/prometheus.yml /root/
#修改后挂载加进去
docker run -d -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml -p 9090:9090 --name prometheus --net=host prom/prometheus
docker run --restart=always
如果已经启动了则可以使用如下命令:
docker update --restart=always <CONTAINER ID>
配置帮助
global:
#默认情况下抓取目标的频率.
[ scrape_interval: <duration> | default = 1m ]
# 抓取超时时间.
[ scrape_timeout: <duration> | default = 10s ]
# 评估规则的频率.
[ evaluation_interval: <duration> | default = 1m ]
# 与外部系统通信时添加到任何时间序列或警报的标签
#(联合,远程存储,Alertma# nager).
external_labels:
[ <labelname>: <labelvalue> ... ]
# 规则文件指定了一个globs列表.
# 从所有匹配的文件中读取规则和警报.
rule_files:
[ - <filepath_glob> ... ]
# 抓取配置列表.
scrape_configs:
[ - <scrape_config> ... ]
# 警报指定与Alertmanager相关的设置.
alerting:
alert_relabel_configs:
[ - <relabel_config> ... ]
alertmanagers:
[ - <alertmanager_config> ... ]
# 与远程写入功能相关的设置.
remote_write:
[ - <remote_write> ... ]
# 与远程读取功能相关的设置.
remote_read:
[ - <remote_read> ... ]
具体配置
root@ubuntu:~# cat prometheus.yml
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global ‘evaluation_interval‘.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it‘s Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
# metrics_path defaults to ‘/metrics‘
# scheme defaults to ‘http‘.
- job_name: prometheus
static_configs:
- targets: [‘192.168.191.128:9090‘]
labels:
instance: prometheus
- job_name: ‘consul‘ #prometheus与consul配置段
consul_sd_configs:
- server: ‘192.168.191.128:8500‘
services: [ ]
- job_name: node-exporter
static_configs:
- targets: [‘192.168.191.128:9100‘]
labels:
instance: node-exporter
在prometheus.yaml配置文件最后增加
- job_name: ‘node-discorvery‘ #发现规则名称
file_sd_configs: #选择适配器
- files:
- /usr/local/prometheus/*.json #匹配文件
在对应目录/usr/local/prometheus/*.json添加,容器启动时需要挂载进去
[
{
"targets": [ "10.10.2.99:9100"],
"labels": {
"job": "linux-bj",
"idc": "bj-jiuxianqiao"
}
},
{
"targets": [ "10.10.2.62:9100","10.10.1.35:9100"],
"labels": {
"job": "linux-gx",
"idc": "gz-daxuecheng"
}
}
]
# Alertmanager configuration #告警配置
alerting:
alertmanagers:
- static_configs: #告警规则,也可以基于动态的方式进行告警。
- targets:
# - alertmanager:9093
指定后端的存储的写入api地址。
指定后端的存储的读取api地址。
node_cpu_seconds_total{cpu="0"}
- alinode 官方镜像分析并提取 Dockerfile | Web技术试炼地
- hub.docker.com针对docker中的grafana,提供的官方帮助文档
docker+prom+grafana+altermanager
原文:https://www.cnblogs.com/jinmuqq222/p/14196563.html