备注:
此Blog仅仅为了个人记录命令而建!!!
一、监控系统Prometheus
prometheus.yml:
global:
# How frequently to scrape targets by default.
scrape_interval: 15s
# How frequently to evaluate rules.
evaluation_interval: 15s
# Rule files specifies a list of globs. Rules and alerts are read from
# all matching files.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A list of scrape configurations.
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets:['localhost:9090']
# Alerting specifies settings related to the Alertmanager.
alerting:
alertmanagers:
- targets:
# - alertmanager:9093
docker run -d --name=pro -p 9090:9090 -v /data/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
二、cAdvisor
cAdvisor(Container Advisor)是Google开源,用于收集一台机器上所有运行的容器信息(cAdvisor只进行查看,并不做数据的保存,所以需要将cAdvisor的数据加载到Prometheus中)
docker run -d \
--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 \
--restart=always \
google/cadvisor:latest
查看服务器的8080端口:
三、node-exporter
node-expoter是prometheus开源的,能够提取到机器的信息
docker run -d -p 9100:9100 \
-v "/proc:/host/proc:ro" \
-v "/sys:/host/sys:ro" \
-v "/:/rootfs:ro" \
--net="host" \
prom/node-exporter
修改配置文件prometheus.yml,增加了cAdvisor和node-expoter配置,修改如下(删除了部分注释),然后重启prometheus容器!!!
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['192.168.172.128:9090']
labels:
instance: prometheus
- job_name: docker
static_configs:
- targets: ['192.168.172.128:8080']
labels:
instance: localhost
- job_name: linux
static_configs:
- targets: ['192.168.172.128:9100']
labels:
instance: localhost
四、Grafana
grafana是跨平台的开源试题分析和可视化工具,可以通过将采集的数据查询然后做可视化的展示。
启动Grafana容器
docker run -d --name=grafana --restart=always -p 3001:3000 grafana/grafana
备注:
进入到服务器的3001端口(原本是3000端口,因为服务器在占用3000端口,所以修改成3001)
默认的用户名与密码都是admin,首次进入需要修改密码
备注:
Docker主机监控模板:193
Linux主机监控模板:9276 8919 12227
五、Mongo
docker run -d --name mongo -p 27017:27017 -v $PWD/db:/data/db mongo
docker exec -it mongo mongo admin
创建用户:
$ docker exec -it mongo mongo admin
# 创建一个名为 admin,密码为 123456 的用户。
> db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
# 尝试使用上面创建的用户信息进行连接。
> db.auth('admin', '123456')
docker run -d --name mongodb_exporter -p 9104:9104 eses/mongodb_exporter --mongodb.uri mongodb://admin:123456@192.168.172.128:27017
查看一下:
[root@tw data]# docker logs f39a67d62b32 ### Warning: the exporter is in beta/experimental state and field names are very ### likely to change in the future and features may change or get removed! ### See: https://github.com/percona/mongodb_exporter for updates mongodb_exporter version: unknown, git commit hash: unknown Listening on :9104
Prometheus.yml添加下面:
- job_name: mongodb
static_configs:
- targets: ['192.168.172.128:9104']
labels:
instance: mongodb