- 蓝鲸组件配置文件
- 开源组件
- etc#nginx# job .conf那么当模板渲染时,它里面的占位符诸如
BK_HOME
会被对应的$BK_HOME
变量的值替换掉然后生成 /data/bkce/etc/nginx/ job .conf 这个文件。可以发现,脚本将文件名中的#
替换成/
,然后放到$INSTALL_PATH
目录下,也就是默认的/data/bkce
- etc#my.cnf.tpl这类文件名和第一个不同之处在于多了
.tpl
的后缀名,生成时tpl后缀会被去掉。- nginx
- etc#nginx.confnginx主配置文件,安装时会
ln -s /data/bkce/etc/nginx.conf /etc/nginx/nginx.conf
- etc#nginx# paas .conf PaaS 平台的nginx server配置
- etc#nginx# cmdb .conf cmdb 的nginx server配置,主配置会include
/data/bkce/etc/nginx/
下的配置文件 - etc#nginx# job .conf job 的nginx server配置
- etc#nginx#miniweb.conf存放agent安装时所需要下载的脚本和依赖软件包
- rabbitmq
- etc#rabbitmq#rabbitmq-env.conf
- etc#rabbitmq#rabbitmq.config
- etc#rabbitmq#enabled_plugins
- mongodb
- etc#mongodb.yaml
- mysql
- etc#my.cnf.tpl
- redis
- etc#redis.conf
- consul
- etc#supervisor-consul.conf
- zookeeper
- etc#zoo.cfg
- elasticsearch
- kafka
- influxdb
- etc#influxdb.conf
- beanstalk
- etc#beanstalkd
- 蓝鲸组件
- etc#supervisor- bkdata -dataapi.conf
- etc#supervisor- bkdata -databus.conf
- etc#supervisor- bkdata -dataapi.conf
- etc#supervisor-fta-fta.conf
- CMDB
- etc#nginx# cmdb .conf
- Job
- etc# job .conf
- PaaS
- etc#uwsgi-open_paas-工程名.ini
- GSE
- etc#gse#api.conf
- etc#gse#btsvr.conf
- etc#gse#data.conf
- etc#gse#dba.conf
- etc#gse#task.conf
- paas_agent
- etc#nginx.conf #etc#nginx#paasagent.conf
- etc#paas_agent_config.yaml.tpl
- bkdata
- fta
- 常用配置调整
- 调整redis使用的最大内存大小
- 调整bkdata的databus内存使用大小
- 调整 ES 的内存使用大小
- 调整 Kafka 的内存使用大小
- 调整 Fta 进程数
- 调整 Bkdata-dataapi的worker数
- 调整 Bkdata-monitor的进程数
- 调整 PaaS的worker数量
- 调整 Job 的内存使用大小
蓝鲸组件配置文件
开源组件
开源组件的实际配置均在 /data/bkce/etc 目录下,而这些配置文件其实是通过变量替换/data/src/service/support-files/templates/ 下的预设模板文件生成的,所以要从源头修改配置应该修改/data/src下的,然后通过以下命令同步,并渲染模板文件:
./bkcec sync 模块
./bkcec render 模块
渲染模板时,bkcec 脚本通过调用 templates_render.rc 里定义的函数render_cfg_templates
来实现举例说明,假设/data/src/service/support-files/templates/目录下有如下文件:etc#nginx#job.conf那么当模板渲染时,它里面的占位符诸如
BK_HOME
会被对应的$BK_HOME
变量的值替换掉然后生成 /data/bkce/etc/nginx/job.conf 这个文件。可以发现,脚本将文件名中的#
替换成/
,然后放到$INSTALL_PATH
目录下,也就是默认的/data/bkce
kafka#config#server.properties这个形式的模板文件和上述的不同之处时没有以
#
开头,那么它表示一个相对模块安装路径的配置,也就是对于 /data/src/service/来说,它会被安装到 /data/bkce/service,那么kafka#config#server.properties
就会生成到/data/bkce/service/kafka/config/server.properties
。etc#my.cnf.tpl这类文件名和第一个不同之处在于多了
.tpl
的后缀名,生成时tpl后缀会被去掉。
其他模块文件,以此类推。
以下列举当前所有的开源组件配置文件路径:
nginx
etc#nginx.confnginx主配置文件,安装时会
ln -s /data/bkce/etc/nginx.conf /etc/nginx/nginx.conf
etc#nginx#paas.confPaaS 平台的nginx server配置
etc#nginx#cmdb.confcmdb的nginx server配置,主配置会include
/data/bkce/etc/nginx/
下的配置文件etc#nginx#job.conf job的nginx server配置
etc#nginx#miniweb.conf存放agent安装时所需要下载的脚本和依赖软件包
rabbitmq
etc#rabbitmq#rabbitmq-env.conf
etc#rabbitmq#rabbitmq.config
etc#rabbitmq#enabled_plugins
mongodb
etc#mongodb.yaml
mysql
etc#my.cnf.tpl
redis
etc#redis.conf
consul
consul的配置文件比较特殊,因为它是全局依赖,consul的配置文件会存放在/data/bkce/etc/consul.conf它没有对应的模板文件,是由 /data/install/parse_config 这个脚本来生成。不过 consul 启动的 supervisor 配置文件模板在
etc#supervisor-consul.conf
zookeeper
etc#zoo.cfg
elasticsearch
- es#config#elasticsearch.yml.tpl
kafka
- kafka#config#server.properties
influxdb
etc#influxdb.conf
beanstalk
etc#beanstalkd
蓝鲸组件
蓝鲸组件除了job和gse,其他均用supervisor来做进程启停,所以都会存在一个对应的supervisor进程配置文件它的标准规范是:#etc#supervisor-模块名-工程名.conf,如果没有子工程,则工程名等于模块名。例如 bkdata 存在三个子工程,所以各自的supervisor配置为:
etc#supervisor-bkdata-dataapi.conf
etc#supervisor-bkdata-databus.conf
etc#supervisor-bkdata-dataapi.conf
fta模块,因为没有子工程,所以它的supervisor配置文件为:
etc#supervisor-fta-fta.conf
因为supervisor配置具有一致性,下面不再具体列举supervisor相关配置文件。
CMDB
CMDB的后台是微服务化架构,每个进程对应一个配置文件,所以配置文件模板也有很多,
server#conf#模块名.conf
模块名对应进程名,比如进程名叫cmdb_webserver
那它对应的配置文件名叫 webserver.confetc#nginx#cmdb.conf
cmdb 进程对应的 nginx 配置,里面会通过url rewrite兼容 v2的接口。cmdb_webserver 提供的web页面也是经过这层nginx 反向代理。
Job
作业平台的配置文件比较简单。一个配置文件,一个启动脚本:
etc#job.conf
主配置文件,里面的中文注释非常详尽,这里不再赘述。
job#bin#job.sh
job进程的启停脚本,里面可以设置一些调试参数,Java虚拟机内存分配大小等
PaaS
PaaS 平台在 src 目录下叫 open_paas 它实际上由 appengine login esb paas 四个子工程组成。
etc#uwsgi-open_paas-工程名.ini
这里工程名用上面四个工程分别替换可得到,是这四个python工程uwsgi的配置文件
以下四个分别是对应工程的 配置文件
- paas#conf#settings_production.py.tpl
- login#conf#settings_production.py.tpl
- esb#configs#default.py.tpl
- appengine#controller#settings.py.tpl
其中esb的配置中,配置了访问其他周边模块的接口域名和端口。
GSE
GSE 目录下的模板文件分为 agent、plugins、proxy、后台。
GSE后台的配置模板,需要留意的是生成后的配置中监听的IP地址是否符合预期:
etc#gse#api.conf
etc#gse#btsvr.conf
etc#gse#data.conf
etc#gse#dba.conf
etc#gse#task.conf
GSE proxy后台的配置模板:
proxy#etc#btsvr.conf
- proxy#etc#proxy.conf
proxy#etc#transit.conf
GSE agent 的配置模板,*
表示匹配所有的,这里agent按系统和CPU架构区分了不同的目录agent_*#etc#agent.conf
- agent_*#etc#iagent.conf
agent_*#etc#procinfo.conf
GSE agent plugins 的配置模板plugins_*#etc#basereport.conf
- plugins_*#etc#alarm.json
paas_agent
paas_agent是appo、和appt模块对应的后台代码目录,它的配置文件由两部分构成:
etc#nginx.conf #etc#nginx#paasagent.conf
paas_agent依赖一个nginx做路由转发,这里是它的nginx配置
etc#paas_agent_config.yaml.tpl
paas_agent的主配置,需要特别注意的是,这里的
sid
和token
是激活paas_agent成功后,获取返回的字符串自动填充的,里面的配置应该和开发者中心,服务器信息页面看到的一致。
bkdata
bkdata分为dataapi
、databus
、monitor
三个工程,dataapi是python工程,databus是java工程,monitor是python工程。
dataapi的配置:
- dataapi#conf#dataapi_settings.py
- dataapi#pizza#settings_default.py
dataapi#tool#settings.py
databus的配置:databus#conf#es.cluster.properties
- databus#conf#jdbc.cluster.properties
- databus#conf#tsdb.cluster.properties
- databus#conf#etl.cluster.properties
databus#conf#redis.cluster.properties
monitor的配置:monitor#bin#environ.sh
- monitor#conf#worker#production#community.py
fta
故障自愈后台的配置
- fta#project#settings_env.py
常用配置调整
调整后的配置模板文件请自行备份好,如果遇到升级,需要手工对比后再覆盖,如果升级后的文件没有新增配置,可以直接覆盖,但如果升级后的配置文件有新增,需要自行处理合并。
调整redis使用的最大内存大小
编辑 /data/src/service/support-files/templates/#etc#redis.conf
插入一行,比如限制最大使用4GB内存:
maxmemory 4G
再执行以下命令生效:
./bkcec sync redis
./bkcec render redis
./bkcec stop redis
./bkcec start redis
调整bkdata的databus内存使用大小
databus目前有五个进程,对应的配置文件分别是:
/data/src/bkdata/support-files/templates/databus#conf#es.cluster.properties
/data/src/bkdata/support-files/templates/databus#conf#etl.cluster.properties
/data/src/bkdata/support-files/templates/databus#conf#jdbc.cluster.properties
/data/src/bkdata/support-files/templates/databus#conf#redis.cluster.properties
/data/src/bkdata/support-files/templates/databus#conf#tsdb.cluster.properties
分别修改这五个文件里的"deploy.cluster.memory.max"的值,根据实际情况调大小。原则:如果内存够用,但CPU占用很高,适当调大;如果内存不够用,cpu占用正常,可以适当调小。
调整 ES 的内存使用大小
修改 /data/bkce/service/es/config/jvm.options 里的
-Xms1G
-Xmx1G
为合适的数值,如果不需要用日志检索,那可以尽量调低。
调整 Kafka 的内存使用大小
修改 /data/bkce/service/kafka/bin/kafka-server-start.sh 里的
KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
调整 Fta 进程数
/data/bkce/etc/supervisor-fta-fta.conf里numprocs和gunicorn的进程数
调整 Bkdata-dataapi的worker数
/data/bkce/etc/supervisor-bkdata-dataapi.conf里的gunicorn的 -w 参数
调整 Bkdata-monitor的进程数
/data/bkce/etc/supervisor-bkdata-monitor.conf里的numprocs配置项
调整 PaaS的worker数量
/data/bkce/etc/uwsgi-open_paas*.ini里的workers 配置
调整 Job 的内存使用大小
/data/bkce/job/job/bin/job.sh里startup()函数下的JOB_JAVA_OPTS="-Xms256M -Xmx256M"