centos7安装Apollo配置中心
apollo官网链接:https://www.apolloconfig.com/#/zh/README
Apollo组件简介
- Apollo Config Service 是一个分布式的配置中心,主要负责应用的配置信息存储、推送和管理。Config Service 支持多种存储方式,例如本地文件系统、Git 存储和数据库存储等,同时也提供基于轮询和通知两种方式的配置信息推送机制。配置中心的目的是让一组应用共享配置信息,并且应用可以动态读取存储在配置中心的配置信息。
- Apollo Admin Service 是一个管理后台服务,主要提供给管理人员使用,用于管理所有的 Apollo 配置。Admin Service 主要包含两个功能:配置项的添加、修改、删除等管理功能、以及对环境、集群和命名空间等对象进行管理的功能。Admin Service 还提供了配置的发布和回滚功能,以及多种安全认证和授权方式。
- Apollo Portal 是一个基于 Web 的管理界面,在客户端上展示配置项的值、历史,同时支持修改和发布。Portal 通过可视化的方式展示配置信息,让用户更加直观地了解系统的配置情况,同时提供了一些实用的功能,例如基于角色的访问控制、灰度发布等。Portal 主要提供可视化的管理界面,可以看作是 Admin Service 和 Config Service 的前端界面。
数据库安装
官方建议使用MySQL5.7以上,点击查看安装方法
查看链接:数据库安装
jdk安装
官网要求jdk版本为1.8+,本次安装采用jdk11,可在jdk官网自行寻找所需版本:https://www.oracle.com/java/technologies/java-se-glance.html
下载好所需的版本号,将压缩包传到服务器,本次下载的包为jdk-11.0.6_linux-x64_bin.tar
.gz
解压目录
tar -xvf jdk-11.0.6_linux-x64_bin.tar.gz
mv jdk-11.0.6 /usr/local/jdk11.0.6
配置环境变量
# 编辑配置文件
vim /etc/profile
# 新增以下配置
#java
export JAVA_HOME=/usr/local/jdk11.0.6
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin
生效操作
source /etc/profile
检查安装
# 检验安装,表示安装成功
java -version
# 输出以下结果
java version "11.0.6" 2020-01-14 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.6+8-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.6+8-LTS, mixed mode)
数据库初始化
本次安装采用2.0.1版本
自行下载sql初始化脚本,该链接下有两个sql,分别是apolloportaldb.sql以及apolloconfigdb.sql,路径链接如下
https://github.com/apolloconfig/apollo/tree/v2.0.1/scripts/sql
连接数据库导入sql文件,也可以使用navicat等软件导入
# 登录数据库
mysql -uroot -p
# 登录成功后导入sql
source /your_local_path/scripts/sql/apolloportaldb.sql
source /your_local_path/scripts/sql/apolloconfigdb.sql
验证,此命令会输出支持的环境列表
select `Id`, `Key`, `Value`, `Comment` from `ApolloPortalDB`.`ServerConfig` limit 1;
导入完成后的数据库如下图所示
安装Apollo
分别下载三个服务安装包adminservice configservice portal
# 创建各个服务目录
mkdir -vp /opt/apollo/{apollo-adminservice,apollo-configservie,apollo-portal} && cd /opt/apollo
# 下载服务安装包
wget https://github.com/apolloconfig/apollo/releases/download/v2.0.1/apollo-adminservice-2.0.1-github.zip apollo-adminservice
wget https://github.com/apolloconfig/apollo/releases/download/v2.0.1/apollo-configservice-2.0.1-github.zip apollo-configservice
wget https://github.com/apolloconfig/apollo/releases/download/v2.0.1/apollo-portal-2.0.1-github.zip apollo-portal
分别解压安装包
# 安装解压命令
yum install unzip -y
# 开始解压
unzip apollo-adminservice-2.0.1-github.zip
unzip apollo-configservice-2.0.1-github.zip
unzip apollo-portal-2.0.1-github.zip
配置apollo-configservice
进入目录
cd apollo-adminservice/config
编辑配置文件
vim application-github.properties
# 配置数据库信息,按实际填入自己的数据库链接地址以及认证信息
# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = someuser
spring.datasource.password = somepwd
配置apollo-adminservice
进入目录
cd apollo-adminservice/config
编辑配置文件
vim application-github.properties
# 配置数据库信息,按实际填入自己的数据库链接地址以及认证信息
# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = someuser
spring.datasource.password = somepwd
配置apollo-portal
进入目录
cd apollo-portal/config
编辑配置文件
vim application-github.properties
# 配置数据库信息,按实际填入自己的数据库链接地址以及认证信息
# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloPortalDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = someuser
spring.datasource.password = somepwd
配置apollo-portal的meta service信息
vim apollo-env.properties
# 假设DEV的apollo-configservice未绑定域名,地址是1.1.1.1:8080,FAT的apollo-configservice绑定了域名apollo.fat.xxx.com,UAT的apollo-configservice绑定了域名apollo.uat.xxx.com,PRO的apollo-configservice绑定了域名apollo.xxx.com,那么可以如下修改各环境meta service服务地址,格式为${env}.meta=http://${config-service-url:port},如果某个环境不需要,也可以直接删除对应的配置项
dev.meta=http://1.1.1.1:8080
fat.meta=http://apollo.fat.xxx.com
uat.meta=http://apollo.uat.xxx.com
pro.meta=http://apollo.xxx.com
此处环境dev、fat、uat、pro为apollo自带的环境,可自行修改成适用于本地的环境,例如dev、test、beta、ga等,修改方式很简单,只需要修改数据库信息,具体为ApolloPortalDB数据库下面的ServerConfig表,修改该字段为自定义环境,如下图所示
分别启动各个服务
启动方式很简单,分别执行各个文件夹下的scripts目录下的启动脚本,根据需要自定义jvm内存
export JAVA_OPTS="-server -Xms2560m -Xmx2560m -Xss256k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=384m -XX:NewSize=1024m -XX:MaxNewSize=1024m -XX:SurvivorRatio=22"
# 修改完成后执行脚本
./startup.sh
查看启动情况
# 查看对应端口启动情况
netstat -lntp
# 输出如下。三个端口8070,8080,8090均已启动
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 8940/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1138/master
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 7871/zabbix_agentd
tcp6 0 0 :::8080 :::* LISTEN 28825/java
tcp6 0 0 :::22 :::* LISTEN 8940/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1138/master
tcp6 0 0 :::8090 :::* LISTEN 28637/java
tcp6 0 0 :::10050 :::* LISTEN 7871/zabbix_agentd
tcp6 0 0 :::8070 :::* LISTEN 9141/java
tcp6 0 0 :::3306 :::* LISTEN 17678/mysqld
apollo portal接入ldap
portal支持接入ldap来作为统一用户认证,接入方法如下
创建配置文件
touch apollo-portal/config/application-ldap.yml
编辑配置文件
vim apollo-portal/config/application-ldap.yml
# 具体配置如下
spring:
ltest
base: "ou=test,dc=test,dc=com"
username: "cn=apollo,ou=test,dc=test,dc=com" # 配置管理员账号,用于搜索、匹配用户
password: "test@123"
searchFilter: "(cn={0})" # 用户过滤器,登录的时候用这个过滤器来搜索用户
urls:
- "ldap://192.168.0.1:389" # ldap服务器地址
ldap:
mapping: # 配置 ldap 属性
objectClass: "inetOrgPerson" # ldap 用户 objectClass 配置
loginId: "cn" # ldap 用户惟一 id,用来作为登录的 id
userDisplayName: "cn" # ldap 用户名,用来作为显示名
email: "mail" # ldap 邮箱属性
修改启动脚本,修改scripts/startup.sh,指定spring.profiles.active为github,ldap
编辑启动脚本
vim apollo-portal/scripts/startup.sh
# 配置如下
SERVICE_NAME=apollo-portal
## Adjust log dir if necessary
LOG_DIR=/opt/logs/100003173
## Adjust server port if necessary
SERVER_PORT=8070
# 修改此行
export JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=github,ldap"
# 完成后重新启动portal使用ldap登录即可