安装apollo
目前的访问地址:
目前监听的三个端口 8070,8080,8090
http://122.8.189.208:8070;
账号:
默认账号密码
apollo
admin
里面的 第 6,8,9 不需要执行
0 安装java环境
[root@ss-micro-mx-nanopay-platform-apollo-1 apollo-portal]# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz"
[root@ss-micro-mx-nanopay-platform-apollo-1 apollo-portal]# tar xf jdk-8u141-linux-x64.tar.gz -C /usr/local/
[root@ss-micro-mx-nanopay-platform-apollo-1 apollo-portal]# tail -5 /etc/profile
#####set java environment######
export JAVA_HOME=/usr/local/jdk1.8.0_141
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
[root@ss-micro-mx-nanopay-platform-apollo-1 apollo-portal]# source /etc/profile
[root@ss-micro-mx-nanopay-platform-apollo-1 apollo-portal]# which java
/usr/local/jdk1.8.0_141/bin/java
[root@ss-micro-mx-nanopay-platform-apollo-1 apollo-portal]#
1 下载安装包
cd /usr/local/src
wget https://github.com/ctripcorp/apollo/releases/download/v1.6.1/apollo-adminservice-1.6.1-github.zip
wget https://github.com/ctripcorp/apollo/releases/download/v1.6.1/apollo-configservice-1.6.1-github.zip
2 解压
mkdir -p /opt/apollo/{apollo-adminservice,apollo-configservice,apollo-portal}
cd /usr/local/src
unzip apollo-adminservice-1.6.1-github.zip -d /opt/apollo/apollo-adminservice/
unzip apollo-configservice-1.6.1-github.zip -d /opt/apollo/apollo-configservice/
unzip apollo-portal-1.6.1-github.zip -d /opt/apollo/apollo-portal/
3 初始化脚本
git clone https://github.com/ctripcorp/apollo
cd /usr/local/src/apollo/scripts/sql/
chmod 777 apollo*
[root@ss-microl-mx-nanopay-platform-test sql]# ls -l /usr/local/src/apollo/scripts/sql/apolloconfigdb.sql
-rw-r--r-- 1 root root 21291 Nov 18 03:36 /usr/local/src/apollo/scripts/sql/apolloconfigdb.sql
[root@ss-microl-mx-nanopay-platform-test sql]# ls -l /usr/local/src/apollo/scripts/sql/apolloportaldb.sql
-rw-r--r-- 1 root root 16278 Nov 18 03:36 /usr/local/src/apollo/scripts/sql/apolloportaldb.sql
4 创建用户并授权
首先安装mysql,默认情况下,都是安装好的
然后执行:service mysqld status
看看是否启动,
如果没有启动执行:
service mysqld start;
然后登陆mysql:
mysql -uroot -pRoot@123
# 创建apolloconfig用户,并授权ApolloConfigDB权限
CREATE USER 'apolloconfig'@'%' IDENTIFIED BY '123456';
(注意此处可能会失败,密码强度不够,参考后面的疑难问题解答)
grant all privileges on ApolloConfigDB.* to 'apolloconfig'@'%';
# 创建apolloportal用户,并授权ApolloPortalDB权限
CREATE USER 'apolloportal'@'%' IDENTIFIED BY '123456';
grant all privileges on ApolloPortalDB.* to 'apolloportal'@'%';
之后登录mysql ,source初始化这俩脚本
source /usr/local/src/apollo/scripts/sql/apolloconfigdb.sql
source /usr/local/src/apollo/scripts/sql/apolloportaldb.sql
5 修改数据库配置文件
修改三个配置的数据库地址和账户密码,注意对应的数据库和用户名一一对应,按照模板
1、vi /opt/apollo/apollo-adminservice/config/application-github.properties
内容:
spring.datasource.url = jdbc:mysql://127.0.0.1:3306/apolloconfigdb?characterEncoding=utf8
spring.datasource.username = apolloconfig
spring.datasource.password = 123456
2、 vi /opt/apollo/apollo-configservice/config/application-github.properties
内容:
spring.datasource.url = jdbc:mysql://127.0.0.1:3306/apolloconfigdb?characterEncoding=utf8
spring.datasource.username = apolloconfig
spring.datasource.password = 123456
#apollo.eureka.server.enabled=true
#apollo.eureka.client.enabled=true
3、vi /opt/apollo/apollo-portal/config/application-github.properties
spring.datasource.url = jdbc:mysql://127.0.0.1:3306/apolloportaldb?characterEncoding=utf8
spring.datasource.username = apolloportal
spring.datasource.password = 123456
检查下:
cat /opt/apollo/apollo-adminservice/config/application-github.properties
cat /opt/apollo/apollo-configservice/config/application-github.properties
cat /opt/apollo/apollo-portal/config/application-github.properties
6 启动服务
均使用scripts 下的startup.sh,不过需要修改一些配置(如果是几个apollo 集群联邦的话)
修改/opt/apollo/apollo-adminservice/scripts/startup.sh
SERVICE_NAME=apollo-adminservice
## Adjust log dir if necessary
LOG_DIR=/work/logs/100003172
## Adjust server port if necessary
SERVER_PORT=${SERVER_PORT:=8090}
取消以下启动参数的注释
## Adjust memory settings if necessary
export JAVA_OPTS="-Xms2560m -Xmx2560m -Xss256k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=384m -XX:NewSize=1536m -XX:MaxNewSize=1536m -XX:SurvivorRatio=8”
## 添加对公网访问
export JAVA_OPTS="$JAVA_OPTS -XX:ParallelGCThreads=4 -XX:MaxTenuringThreshold=9 -XX:+DisableExplicitGC -XX:+ScavengeBeforeFullGC -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+ExplicitGCInvokesConcurrent -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Duser.timezone=Asia/Shanghai -Dclient.encoding.override=UTF-8 -Dfile.encoding=UTF-8 -Djava.security.egd=file:/dev/./urandom -Deureka.instance.homePageUrl=http://public-ip:8090"
修改/opt/apollo/apollo-configservice/scripts/startup.sh
SERVICE_NAME=apollo-configservice
## Adjust log dir if necessary
LOG_DIR=/work/logs/100003171
## Adjust server port if necessary
SERVER_PORT=${SERVER_PORT:=8080}
取消以下启动参数的注释
## Adjust memory settings if necessary
export JAVA_OPTS="-Xms2048m -Xmx2048m -Xss256k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=384m -XX:NewSize=1024m -XX:MaxNewSize=1024m -XX:SurvivorRatio=8”
## 添加对公网访问
export JAVA_OPTS="$JAVA_OPTS -XX:ParallelGCThreads=4 -XX:MaxTenuringThreshold=9 -XX:+DisableExplicitGC -XX:+ScavengeBeforeFullGC -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+ExplicitGCInvokesConcurrent -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Duser.timezone=Asia/Shanghai -Dclient.encoding.override=UTF-8 -Dfile.encoding=UTF-8 -Djava.security.egd=file:/dev/./urandom -Deureka.instance.homePageUrl=http://public-ip:8080"
修改/opt/apollo/apollo-portal/scripts/startup.sh
SERVICE_NAME=apollo-portal
## Adjust log dir if necessary
LOG_DIR=/work/logs/100003173
## Adjust server port if necessary
SERVER_PORT=${SERVER_PORT:=8070}
取消以下启动参数的注释
## Adjust memory settings if necessary
export JAVA_OPTS="-Xms2560m -Xmx2560m -Xss256k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=384m -XX:NewSize=1536m -XX:MaxNewSize=1536m -XX:SurvivorRatio=8”
默认账号密码
apollo
admin
7 修改环境变量
登陆MySQL mysql -uroot -pRoot@123
执行:
UPDATE ApolloPortalDB.ServerConfig SET ServerConfig.`Value`='dev,fat,uat,pro' WHERE `Key`='apollo.portal.envs';
8 apollo的portal 管理多个环境的话,更改如下的配置
比如我想用一套portal界面管理后台,管理生产和测试的两套apollo configserver,那么需要更改如下的配置
[root@ss-micro-mx-nanopay-platform-apollo-1 apollo-portal]# cat /opt/apollo/apollo-portal/config/apollo-env.properties
dev.meta=http://119.8.8.40:8080 #<=测试环境的apollo configserver 地址
pro.meta=http://119.8.11.181:8080 #<=生产环境的apollo configserver 地址
这样就可以通过一套apollo管理生产和测试的两套apollo configserver环境了
注意的是,如果使用上面的方式来管理多个apollo环境,apollo的configserver 必须要配置公网访问,就是上面第6部分的内容:
## 添加对公网访问
export JAVA_OPTS="$JAVA_OPTS -XX:ParallelGCThreads=4 -XX:MaxTenuringThreshold=9 -XX:+DisableExplicitGC -XX:+ScavengeBeforeFullGC -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+ExplicitGCInvokesConcurrent -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Duser.timezone=Asia/Shanghai -Dclient.encoding.override=UTF-8 -Dfile.encoding=UTF-8 -Djava.security.egd=file:/dev/./urandom -Deureka.instance.homePageUrl=http://public-ip:8090"
9 生产configserver有三台,如何配置configserver多集群
登录数据库,进行如下的修改,这里使用peakpaisa的三台apollo的内网地址为例,需要注意的是,configserver配置多个集群的话,只能在这里修改数据库的字段,但是如果生产的configserver 就一台的话,那么默认就http://localhost:8080/eureka 就好了,则就不用修改此处
update ApolloConfigDB.ServerConfig set Value='http://172.42.63.72:8080/eureka/,http://172.42.86.34:8080/eureka/,http://172.42.77.32:8080/eureka/' where `key`='eureka.service.url';
疑难问题解答:
1、密码强度不够:
改一下级别:参考:https://blog.csdn.net/liu59412/article/details/104675439
1、SHOW VARIABLES LIKE 'validate_password%';
2、set global validate_password_policy=LOW;
3、set global validate_password_length=6;
2、修改用户名和密码 +Ip
/opt/apollo/apollo-adminservice/config/application-github.properties
/opt/apollo/apollo-configservice/config/application-github.properties
/opt/apollo/apollo-portal/config/application-github.properties
iP默认127.0.0.1
3、启动脚本
/opt/apollo/apollo-adminservice/scripts/startup.sh
在这里执行:
sh /opt/apollo/apollo-adminservice/scripts/startup.sh
注意点启动的时候要依次启动,这样搞:分批启动
apollo分布式部署,早上刚解决掉
apollo-adminservice/scripts/startup.sh
apollo-configservice/scripts/startup.sh
apollo-portal/scripts/startup.sh
4、数据库 的名称要改成小写;
改完 DB的配置之后,需要重启下
修改前:
修改后:
sh /opt/apollo/apollo-adminservice/scripts/ shutdown.sh
sh /opt/apollo/apollo-adminservice/scripts/startup.sh
5、apollo 的端口监听 需要运维配置一下;
目前监听的三个端口 8070,8080,8090
http://122.8.189.208:8070;
6、目前的apollo架构图:
portal是单独的机器,然后 不同的环境有不同的机器,生产建议两台机器做高可用;
6、 unable to find java
找运维安装java ,顶多1分钟,不要自己按,太麻烦还没办法往上传包;
7、 8090可以启动,8080,8070 不能启动
因为只启动了一个服务,其他的没有启动,需要这样启动:
apollo-adminservice/scripts/startup.sh
apollo-configservice/scripts/startup.sh
apollo-portal/scripts/startup.sh
我之前只启动了一个服务:
apollo-adminservice/scripts/startup.sh
因为只启动了 admin所以只有8090 可以访问,其他的不能访问;