You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
162 lines
3.8 KiB
162 lines
3.8 KiB
#!/bin/bash |
|
|
|
#使用说明,用来提示输入参数 |
|
usage() { |
|
echo "Usage: sh 执行脚本.sh [port|mount|base|monitor|modules|prometheus|alertmanager|stop|rm|rmiNoneTag]" |
|
exit 1 |
|
} |
|
|
|
#开启所需端口 |
|
port(){ |
|
#gateway |
|
firewall-cmd --add-port=88/tcp --permanent |
|
#web |
|
firewall-cmd --add-port=8000/tcp --permanent |
|
#nacos |
|
firewall-cmd --add-port=8848/tcp --permanent |
|
firewall-cmd --add-port=9848/tcp --permanent |
|
firewall-cmd --add-port=9849/tcp --permanent |
|
#sentinel |
|
firewall-cmd --add-port=8858/tcp --permanent |
|
#grafana |
|
firewall-cmd --add-port=3000/tcp --permanent |
|
#mysql |
|
firewall-cmd --add-port=3306/tcp --permanent |
|
#redis |
|
firewall-cmd --add-port=3379/tcp --permanent |
|
#admin |
|
firewall-cmd --add-port=7002/tcp --permanent |
|
#ureport |
|
firewall-cmd --add-port=8108/tcp --permanent |
|
#zipkin |
|
firewall-cmd --add-port=9411/tcp --permanent |
|
#prometheus |
|
firewall-cmd --add-port=9090/tcp --permanent |
|
#swagger |
|
firewall-cmd --add-port=18000/tcp --permanent |
|
#firewalld |
|
service firewalld restart |
|
} |
|
|
|
##放置挂载文件 |
|
mount(){ |
|
#挂载配置文件 |
|
if test ! -f "/docker/nginx/api/nginx.conf" ;then |
|
mkdir -p /docker/nginx/api |
|
cp nginx/api/nginx.conf /docker/nginx/api/nginx.conf |
|
fi |
|
if test ! -f "/docker/nginx/web/nginx.conf" ;then |
|
mkdir -p /docker/nginx/web |
|
cp nginx/web/nginx.conf /docker/nginx/web/nginx.conf |
|
cp -r nginx/web/html /docker/nginx/web/html |
|
fi |
|
if test ! -f "/docker/nacos/conf/application.properties" ;then |
|
mkdir -p /docker/nacos/conf |
|
cp nacos/conf/application.properties /docker/nacos/conf/application.properties |
|
fi |
|
if test ! -f "/docker/prometheus/prometheus.yml" ;then |
|
mkdir -p /docker/prometheus |
|
cp prometheus/config/prometheus.yml /docker/prometheus/prometheus.yml |
|
fi |
|
if test ! -f "/docker/prometheus/rules/alert_rules.yml" ;then |
|
mkdir -p /docker/prometheus/rules |
|
cp prometheus/config/alert_rules.yml /docker/prometheus/rules/alert_rules.yml |
|
fi |
|
if test ! -f "/docker/grafana/grafana.ini" ;then |
|
mkdir -p /docker/grafana |
|
cp prometheus/config/grafana.ini /docker/grafana/grafana.ini |
|
fi |
|
if test ! -f "/docker/alertmanager/alertmanager.yml" ;then |
|
mkdir -p /docker/alertmanager |
|
cp prometheus/config/alertmanager.yml /docker/alertmanager/alertmanager.yml |
|
fi |
|
if test ! -f "/docker/alertmanager/templates/wechat.tmpl" ;then |
|
mkdir -p /docker/alertmanager/templates |
|
cp prometheus/config/wechat.tmpl /docker/alertmanager/templates/wechat.tmpl |
|
fi |
|
if test ! -f "/docker/webhook_dingtalk/dingtalk.yml" ;then |
|
mkdir -p /docker/webhook_dingtalk |
|
cp prometheus/config/dingtalk.yml /docker/webhook_dingtalk/dingtalk.yml |
|
fi |
|
#增加目录权限 |
|
chmod -R 777 /docker/prometheus |
|
chmod -R 777 /docker/grafana |
|
chmod -R 777 /docker/alertmanager |
|
} |
|
|
|
#启动基础模块 |
|
base(){ |
|
docker-compose up -d nacos sentinel seata-server web-nginx blade-nginx blade-redis |
|
} |
|
|
|
#启动监控模块 |
|
monitor(){ |
|
docker-compose up -d blade-admin |
|
} |
|
|
|
#启动程序模块 |
|
modules(){ |
|
docker-compose up -d blade-gateway1 blade-gateway2 blade-auth1 blade-auth2 blade-swagger blade-report blade-desk blade-system blade-log blade-flow blade-resource |
|
} |
|
|
|
#启动普罗米修斯模块 |
|
prometheus(){ |
|
docker-compose up -d prometheus node-exporter mysqld-exporter cadvisor grafana |
|
} |
|
|
|
#启动监听模块 |
|
alertmanager(){ |
|
docker-compose up -d alertmanager webhook-dingtalk |
|
} |
|
|
|
#关闭所有模块 |
|
stop(){ |
|
docker-compose stop |
|
} |
|
|
|
#删除所有模块 |
|
rm(){ |
|
docker-compose rm |
|
} |
|
|
|
#删除Tag为空的镜像 |
|
rmiNoneTag(){ |
|
docker images|grep none|awk '{print $3}'|xargs docker rmi -f |
|
} |
|
|
|
#根据输入参数,选择执行对应方法,不输入则执行使用说明 |
|
case "$1" in |
|
"port") |
|
port |
|
;; |
|
"mount") |
|
mount |
|
;; |
|
"base") |
|
base |
|
;; |
|
"monitor") |
|
monitor |
|
;; |
|
"modules") |
|
modules |
|
;; |
|
"prometheus") |
|
prometheus |
|
;; |
|
"alertmanager") |
|
alertmanager |
|
;; |
|
"stop") |
|
stop |
|
;; |
|
"rm") |
|
rm |
|
;; |
|
"rmiNoneTag") |
|
rmiNoneTag |
|
;; |
|
*) |
|
usage |
|
;; |
|
esac
|
|
|