• 蓝鲸组件配置文件
    • 开源组件
  • 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.conf

    • etc#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的主配置,需要特别注意的是,这里的sidtoken是激活paas_agent成功后,获取返回的字符串自动填充的,里面的配置应该和开发者中心,服务器信息页面看到的一致。

    bkdata

    bkdata分为dataapidatabusmonitor三个工程,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内存:

    1. maxmemory 4G

    再执行以下命令生效:

    1. ./bkcec sync redis
    2. ./bkcec render redis
    3. ./bkcec stop redis
    4. ./bkcec start redis

    调整bkdata的databus内存使用大小

    databus目前有五个进程,对应的配置文件分别是:

    1. /data/src/bkdata/support-files/templates/databus#conf#es.cluster.properties
    2. /data/src/bkdata/support-files/templates/databus#conf#etl.cluster.properties
    3. /data/src/bkdata/support-files/templates/databus#conf#jdbc.cluster.properties
    4. /data/src/bkdata/support-files/templates/databus#conf#redis.cluster.properties
    5. /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 里的

    1. -Xms1G
    2. -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"