Prometheus
alert manager
blackbox_exporter
consul_exporter
graphite_exporter
memcached_exporter
mysqld_exporter
promlens
pushgateway
statsd_exporter
# 其实大部分都是辅助的功能,都是exporter,看命名就可以知道对应的功能了
# grafana
究竟怎么用?一堆dashboard 怎么用? # 产线经验
## 反过来推---
比如说我监控了mysql,我就在Grafana里面模板搜索mysql
点击对应的模板,看到模板的id -> datasource -> exporter
docker的监控CIG部署
docker 监控三剑客
influxDB
cAdvisor
grafana
# 补充 研究研究TICK技术栈
内容: Telegraf InfluxDB Grafana Kapacitor 用于时序类监控,比如股票 -----
vim docker-compose.yml
---
version: '3'
volumes:
grafana_data: {}
services:
influxdb:
image: tutum/influxdb:0.9
restart: always
ports:
- 8086:8086
- 8083:8083
volumes:
- ./date/influxdb:/data
environment:
- PRE_CREATE_DB=cadvisor
cadvisor:
image: google/cadvisor:latest
restart: always
links:
- influxdb:infuxsrv
command: -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=infuxsrv:8086
ports:
- 8080:8080
volumes:
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
grafana:
image: grafana/grafana:latest
restart: always
links:
- influxdb:infuxsrv
ports:
- 3000:3000
environment:
- HTTP_USER=admin
- HTTP_PASS=admin
- INFLUXDB_HOST=influxsrv
- INFLUXDB_PORT=8086
- INFLUXDB_NAME=cadvisor
- INFLUXDB_USER=root
vim docker-compose.yaml
---
version: '3'
volumes:
grafana_data: {}
services:
influxdb:
image: tutum/influxdb:0.9
restart: always
ports:
- 8086:8086
- 8083:8083
volumes:
- ./date/influxdb:/data
environment:
- PRE_CREATE_DB=cadvisor
cadvisor:
image: google/cadvisor:latest
restart: always
links:
- influxdb:infuxsrv
command: -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=infuxsrv:8086
ports:
- 8080:8080
volumes:
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
grafana:
image: grafana/grafana:latest
restart: always
links:
- influxdb:infuxsrv
ports:
- 3000:3000
environment:
- HTTP_USER=admin
- HTTP_PASS=admin
- INFLUXDB_HOST=influxsrv
- INFLUXDB_PORT=8086
- INFLUXDB_NAME=cadvisor
- INFLUXDB_USER=root
prometheus 监控机器
机器 51 52 53
# 准备工作
useradd prometheus
tar -zxvf prometheus-2.41.0.linux-amd64.tar.gz
cd prometheus-2.41.0.linux-amd64
mv prometheus promtool /usr/bin/
chown prometheus:prometheus -R /usr/bin/prometheus /usr/bin/promtool
mkdir -p /var/lib/prometheus
chown prometheus:prometheus -R /var/lib/prometheus
mkdir -p /etc/prometheus
chown prometheus:prometheus -R /etc/prometheus/
mv console* /var/lib/prometheus/
mv prometheus.yml /etc/prometheus/
l
su - prometheus
cd /etc/prometheus
vim prometheus.yml
# 检查文件是否有问题
promtool check config /etc/prometheus/prometheus.yml
编写开机自启文件
cat > /usr/lib/systemd/system/prometheus.service << EOF
[Unit]
Description=Prometheus
Documentiation=https://prometheus.io/
After=netowrk.target
[Service]
Type=simple
User=prometheus
ExecStart=/usr/bin/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/var/lib/prometheus/data \
--web.enable-lifecycle \
--storage.tsdb.retention.time=180d \
--web.listen-address=0.0.0.0:9090 \
--web.enable-admin-api \
--web.console.templates=/var/lib/prometheus/console \
--web.console.libraries=/var/lib/prometheus/console_libraries \
--web.external-url=https://prometheus.jichao.mointor.com \
--log.level=info
ExecReolad=/bin/curl -X POST http://127.0.0.0:9090/-/reload
TimeoutStopSec=20s
Restart=always
LimitNOFILE=2048000
[Install]
WantedBy=multi-user.target
EOF
chmod +x /usr/lib/systemd/system/prometheus.service
systemctl start prometheus
systemctl enable prometheus
ps -ef | grep prometheus
# 接着就是下载node_exporter
# 传输给监控机器
tar -zvxf node_exporter-1.5.0.linux-amd64.tar.gz
mv node_exporter-1.5.0.linux-amd64 /usr/local/node_exporter
编写service
cat > /usr/lib/systemd/system/node_exporter.service << EOF
[Unit]
Description=node_exporter
Documentation=https://prometheus.io/
After=network.target
[Service]
Typer=simple
ExecStart=/usr/local/node_exporter/node_exporter \
--web.listen-address=:9100 \
--collector.systemd \
--collector.systemd.unit-whitelist="(ssh|docker|rsyslog|redis-server).service" \
--collector.mountstats \
--collector.tcpstat
ExecReload=/bin/kill -HUP
TimeoutStopSec=20s
Restart=always
[Install]
WantedBy=multi-user.target
EOF
chmod +x /usr/lib/systemd/system/node_exporter.service
systemctl start node_exporter
systemctl enable node_exporter
ps -ef | grep node_exporter
grafana
使用过程
# 模板在哪里搜索
# 猫头鹰测试
docker run -d --name cadvisor -p 28081:8080 google/cadvisor:latest
在去 prometheus配置文件中进行配置
promtool check config /etc/prometheus/prometheus.yml
systemctl restart prometheus