用Docker容器的方式部署InfluxDB监控
尝试用Docker的方式部署InfluxDB + Grafana + Telegraf.
部署记录
InfluxDB
准备
sudo mkdir -p /etc/influxdb
# 数据存储目录
sudo mkdir -p /var/lib/influxdb
# 配置文件
docker run --rm influxdb influxd config | sudo tee /etc/influxdb/influxdb.conf > /dev/null
自定义初始脚本: 可选
sudo mkdir -p /etc/influxdb/scripts
cd /etc/influxdb/scripts
sudo touch influxdb-init.iql
CREATE DATABASE sys_metrics;
CREATE RETENTION POLICY one_week ON sys_metrics DURATION 168h REPLICATION 1 DEFAULT;
docker run --rm -e INFLUXDB_HTTP_AUTH_ENABLED=true \
-e INFLUXDB_ADMIN_USER=admin \
-e INFLUXDB_ADMIN_PASSWORD=admin123 \
-v /var/lib/influxdb:/var/lib/influxdb \
-v /etc/influxdb/scripts:/docker-entrypoint-initdb.d \
influxdb /init-influxdb.sh
# 验证
cat /var/lib/influxdb/meta/meta.db | grep one_week
启动InfluxDB容器
# 确保端口可用
sudo netstat -tulpn | grep 8086
docker run -d -p 8086:8086 --name=influxdb \
-v /etc/influxdb/influxdb.conf:/etc/influxdb/influxdb.conf \
-v /var/lib/influxdb:/var/lib/influxdb influxdb \
-config /etc/influxdb/influxdb.conf
# 验证
curl -G http://localhost:8086/query --data-urlencode "q=SHOW DATABASES"
netstat -tulpn | grep 8086
# 可选:通过命令行: influx 创建认证账号
CREATE USER admin WITH PASSWORD 'admin123' WITH ALL PRIVILEGES
# 退出命令行
quit
其他配置
vi /etc/influxdb/influxdb.conf
Telegraf
准备
sudo useradd -rs /bin/false telegraf
sudo mkdir -p /etc/telegraf
sudo chown telegraf:telegraf /etc/telegraf/*
docker run --rm telegraf telegraf config | sudo tee /etc/telegraf/telegraf.conf > /dev/null
运行
docker run -d --user telegraf:telegraf --name=telegraf \
--net=container:influxdb \
-e HOST_PROC=/host/proc \
-v /proc:/host/proc:ro \
-v /etc/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:ro \
telegraf
检查
docker container logs -f --since 10m telegraf
docker exec -it influxdb influx
SHOW DATABASES
USE telegraf
SELECT * FROM cpu WHERE time > now() - 1m
Grafana
docker run -d --name=grafana -p 3000:3000 grafana/grafana
# 检查端口
netstat -tulpn | grep 3000
# 检查网络
docker network inspect bridge | grep influxdb -A 5
可通过导入1443 Dashboard做简单验证.