前置条件:在物理机上部署docker并启动
1. install_grafana_docker.sh
#!/bin/bash
# 下载镜像
docker pull grafana/grafana:8.2.3
# 删除正在运行的容器
docker container rm -f grafana
# 创建文件夹用于挂载grafana的数据
data_path="/data/grafana"
if [ ! -d "$data_path" ]
then
echo "$data_path目录不存在,开始进行创建并修改权限"
mkdir -p "$data_path"
chmod 777 -R "$data_path"
fi
# 创建文件夹用于挂载grafana的配置数据
confile_path="/etc/grafana"
if [ ! -d "$confile_path" ]
then
echo "$confile_path目录不存在,开始进行创建"
mkdir -p "$confile_path"
fi
#判断配置文件是否存在
config_file_name="grafana.ini"
if [ ! -f "$confile_path/$config_file_name" ]
then
# 启动容器后从容器中复制配置文件到宿主机,然后删除容器
docker run -d --name=grafana grafana/grafana:8.2.3
docker cp grafana:/etc/grafana/grafana.ini "$confile_path/$config_file_name"
docker container rm -f grafana
echo "$confile_path/$config_file_name 不存在,首先启动容器后从容器中复制配置文件到宿主机,然后删除容器"
fi
######################################################################
# 启动容器
docker run -d \
--user root \
--name=grafana \
-p 3000:3000 \
-v /etc/grafana/grafana.ini:/etc/grafana/grafana.ini \
-v /data/grafana:/var/lib/grafana \
grafana/grafana:8.2.3
# 查看容器的运行状态
docker container ls
ip=`ifconfig eth0|grep inet|grep -v inet6|awk '{print $2}'|tr -d "addr"`
echo "请在浏览器中访问以下地址能正常访问就说明安装成功"
echo "http://$ip:3000"
echo "初始登录时用户名和密码都为admin"
echo "success"
echo "常用模板编号:"
echo "8919 -> Node Exporter for Prometheus Dashboard CN v20201010"
echo "5496 -> Apache JMeter Dashboard using Core InfluxdbBackendListenerClient"
#######################################################
echo "===========grafana容器常用的操作命令============="
echo "启动grafana容器:docker container start grafana"
echo "重启grafana容器:docker container restart grafana"
echo "停止grafana容器:docker container stop grafana"
echo "进入grafana容器:docker container exec -it grafana /bin/bash"
2. install_influxdb_docker.sh
#!/bin/bash
# 下载镜像
docker pull influxdb:1.8
# 删除正在运行的容器
docker container rm -f influxdb
create_path(){
if [ ! -d "$1" ]
then
echo "$1目录不存在,开始进行创建"
mkdir -p "$1"
if [ $2 -eq 777 ]
then
echo "修改$1目录权限为777"
chmod 777 -R "$1"
fi
fi
}
# 创建目录用于挂载influxdb的数据
create_path "/data/influxdb/data" 777
create_path "/data/influxdb/meta" 777
create_path "/data/influxdb/wal" 777
# 创建目录用于挂载influxdb的配置
confile_path="/etc/influxdb"
create_path "$confile_path" 755
#判断配置文件是否存在
config_file_name="influxdb.conf"
if [ ! -f "$confile_path/$config_file_name" ]
then
# 启动容器后从容器中复制配置文件到宿主机,然后删除容器
docker run -d --name=influxdb influxdb:1.8
docker cp influxdb:/etc/influxdb/influxdb.conf "$confile_path/$config_file_name"
docker container rm -f influxdb
echo "$confile_path/$config_file_name 不存在,首先启动容器后从容器中复制配置文件到宿主机,然后删除容器"
fi
######################################################################
# 启动容器
docker run -d --name influxdb \
-p 8083:8083 -p 8086:8086 \
--expose 8090 --expose 8099 \
-v /etc/influxdb/influxdb.conf:/etc/influxdb/influxdb.conf \
-v /data/influxdb/data:/var/lib/influxdb/data \
-v /data/influxdb/meta:/var/lib/influxdb/meta \
-v /data/influxdb/wal:/var/lib/influxdb/wal \
influxdb:1.8
# 查看容器的运行状态
docker container ls
ip=`ifconfig eth0|grep inet|grep -v inet6|awk '{print $2}'|tr -d "addr"`
echo "$ip"
echo "success"
echo "配置参考:https://www.jianshu.com/p/efd3e25a91fc"
#######################################################
echo "===========influxdb容器常用的操作命令============="
echo "启动influxdb容器:docker container start influxdb"
echo "重启influxdb容器:docker container restart influxdb"
echo "停止influxdb容器:docker container stop influxdb"
echo "进入influxdb容器:docker container exec -it influxdb /bin/bash"
3. install_prometheus_docker.sh
#!/bin/bash
# 下载镜像
docker pull prom/prometheus:v2.31.0
# 删除正在运行的容器
docker container rm -f prometheus
# 创建文件夹用于挂载prometheus的数据
data_path="/data/prometheus"
if [ ! -d "$data_path" ]
then
echo "$data_path目录不存在,开始进行创建并修改权限"
mkdir -p "$data_path"
chmod 777 -R "$data_path"
fi
# 创建文件夹用于挂载prometheus的配置数据
confile_path="/etc/prometheus"
if [ ! -d "$confile_path" ]
then
echo "$confile_path目录不存在,开始进行创建"
mkdir -p "$confile_path"
fi
#判断配置文件是否存在
cd "$confile_path"
config_file_name="prometheus.yml"
if [ ! -f "$config_file_name" ]
then
# 启动容器后从容器中复制配置文件到宿主机,然后删除容器
docker run -d --name prometheus prom/prometheus:v2.31.0
docker cp prometheus:/etc/prometheus/prometheus.yml "$confile_path/$config_file_name"
docker container rm -f prometheus
echo "$confile_path/$config_file_name 不存在,首先启动容器后从容器中复制配置文件到宿主机,然后删除容器"
fi
# 启动容器
docker run -d -p 9090:9090 --name prometheus\
-v /data/prometheus:/prometheus \
-v /etc/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus:v2.31.0 \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.retention.time=5d
# 查看容器的运行状态
docker container ls -a
ip=`ifconfig eth0|grep inet|grep -v inet6|awk '{print $2}'|tr -d "addr"`
echo "请在浏览器中访问以下地址能正常访问就说明安装成功"
echo "http://$ip:9090/graph"
echo "success"
echo "prometheus容器常用的操作命令"
echo "启动prometheus容器:docker container start prometheus"
echo "重启prometheus容器:docker container restart prometheus"
echo "停止prometheus容器:docker container stop prometheus"
echo "进入prometheus容器:docker container exec -it prometheus /bin/sh"
4. 快速开启/重启/停止监控平台
docker start influxdb grafana prometheus
docker restart influxdb grafana prometheus
docker stop influxdb grafana prometheus