From f1d6d5ab44282dd960f0f638a0e956b93618012d Mon Sep 17 00:00:00 2001 From: mytting Date: Fri, 12 Jan 2024 10:12:32 +0800 Subject: [PATCH] [mainfest] add docker-compose deploy --- .github/workflows/docker-compose-build.yml | 71 ++ manifests/deepflow-docker-compose/README.md | 16 + .../common/config/clickhouse/config.xml | 962 ++++++++++++++++++ .../common/config/clickhouse/users.xml | 121 +++ .../common/config/deepflow-app/app.yaml | 16 + .../common/config/deepflow-server/server.yaml | 51 + .../common/config/mysql/init.sql | 5 + .../common/config/mysql/my.cnf | 20 + .../docker-compose.yaml | 84 ++ 9 files changed, 1346 insertions(+) create mode 100644 .github/workflows/docker-compose-build.yml create mode 100644 manifests/deepflow-docker-compose/README.md create mode 100644 manifests/deepflow-docker-compose/common/config/clickhouse/config.xml create mode 100644 manifests/deepflow-docker-compose/common/config/clickhouse/users.xml create mode 100644 manifests/deepflow-docker-compose/common/config/deepflow-app/app.yaml create mode 100644 manifests/deepflow-docker-compose/common/config/deepflow-server/server.yaml create mode 100644 manifests/deepflow-docker-compose/common/config/mysql/init.sql create mode 100644 manifests/deepflow-docker-compose/common/config/mysql/my.cnf create mode 100644 manifests/deepflow-docker-compose/docker-compose.yaml diff --git a/.github/workflows/docker-compose-build.yml b/.github/workflows/docker-compose-build.yml new file mode 100644 index 00000000000..a73c1ae50a8 --- /dev/null +++ b/.github/workflows/docker-compose-build.yml @@ -0,0 +1,71 @@ +name: build docker_compose + +on: + push: + branches: + - main + - 'feature-**' + paths: + - 'manifests/deepflow-docker-compose/**' + tags: + - '*' + workflow_dispatch: + inputs: + ref: + description: "Why trigger?" + required: true + type: string +# release: +# branches: +# - main +# - release-* + +jobs: + build_docker_compose: + name: build docker_compose + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + submodules: recursive + fetch-depth: 0 + + - uses: manyuanrong/setup-ossutil@v2.0 + with: + endpoint: "oss-accelerate.aliyuncs.com" + access-key-id: "${{ secrets.ALIYUN_OSS_ACCESS_KEY }}" + access-key-secret: "${{ secrets.ALIYUN_OSS_SECRETS_KEY }}" + + - name: set env + run: | + echo "IMAGE_TAG_PREFIX=${{ github.ref_name }}"|sed 's|=main$|=latest|' >> $GITHUB_ENV + echo "IMAGE_TAG=$(git rev-list --count HEAD)" >> $GITHUB_ENV + + - name: upload docker-compose + run: | + cd manifests + tar -czvf deepflow-docker-compose.tar deepflow-docker-compose + ossutil cp -rf deepflow-docker-compose.tar oss://deepflow-ce/pkg/docker-compose/${{ env.IMAGE_TAG_PREFIX }}/linux/deepflow-docker-compose.tar + + - name: upload docker-compose stable artifacts + if: "startsWith(github.ref, 'refs/tags/')" + run: | + cd manifests + tar -czvf deepflow-docker-compose.tar deepflow-docker-compose + ossutil cp -rf deepflow-docker-compose.tar oss://deepflow-ce/pkg/docker-compose/stable/linux/deepflow-docker-compose.tar + + # - name: Prepare for upload package + # shell: bash + # run: | + # sha256sum dist/* > deepflow-agent.sha256sum.txt + + # - name: Release and upload packages + # uses: softprops/action-gh-release@v1 + # if: startsWith(github.ref, 'refs/tags/') + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # with: + # files: | + # deepflow-agent.sha256sum.txt + # dist/* diff --git a/manifests/deepflow-docker-compose/README.md b/manifests/deepflow-docker-compose/README.md new file mode 100644 index 00000000000..c42d74916f7 --- /dev/null +++ b/manifests/deepflow-docker-compose/README.md @@ -0,0 +1,16 @@ +# DeepFlow STANDALONE mode docker-compose deployment package + +## Usage + +```console +unset DOCKER_HOST_IP +DOCKER_HOST_IP="10.1.2.3" # FIXME: Deploy the environment machine IP +wget https://deepflow-ce.oss-cn-beijing.aliyuncs.com/pkg/docker-compose/stable/linux/deepflow-docker-compose.tar +tar -zxf deepflow-docker-compose.tar +sed -i "s|FIX_ME_ALLINONE_HOST_IP|$DOCKER_HOST_IP|g" deepflow-docker-compose/docker-compose.yaml +docker-compose -f deepflow-docker-compose/docker-compose.yaml up -d +``` + +## License + +[Apache 2.0 License](../../LICENSE). \ No newline at end of file diff --git a/manifests/deepflow-docker-compose/common/config/clickhouse/config.xml b/manifests/deepflow-docker-compose/common/config/clickhouse/config.xml new file mode 100644 index 00000000000..a74324c3cea --- /dev/null +++ b/manifests/deepflow-docker-compose/common/config/clickhouse/config.xml @@ -0,0 +1,962 @@ + + + + + + warning + + 1000M + 10 + 1 + + + + + + + 8123 + + + 9000 + + + + + + + + + + + + + + + + + + 9009 + + + + + + + + + + + + + + + 0.0.0.0 + + + + + + + + + + + + + 4096 + + + 3 + + + + + false + + + /path/to/ssl_cert_file + /path/to/ssl_key_file + + + false + + + /path/to/ssl_ca_cert_file + + + deflate + + + medium + + + -1 + -1 + + + false + + + + + + + /etc/clickhouse-server/server.crt + /etc/clickhouse-server/server.key + + /etc/clickhouse-server/dhparam.pem + none + true + true + sslv2,sslv3 + true + + + + true + true + sslv2,sslv3 + true + + + + RejectCertificateHandler + + + + + + + + + 2000 + + + 0 + + + + 10000 + + + 0.9 + + + 4194304 + + + 0 + + + + + + 8589934592 + + + 5368709120 + + + + 1000 + + /var/lib/clickhouse/ + + + + + + /var/lib/clickhouse_storage/ + + + + + + + path_0 + + + + + + + + /var/lib/clickhouse/tmp/ + + + + + + /var/lib/clickhouse/user_files/ + + + + + + + + + + + + + users.xml + + + + /var/lib/clickhouse/access/ + + + + + + + default + + + + + + + + + + + + default + + + + + + + + + true + + + false + + + + + + + 127.0.0.1 + 9000 + default + + + + + + + + + + + + + + + + + + + + + + + 3600 + + + + 3600 + + + 60 + + + + + + + + + + + + + system + query_log
+ + toYYYYMM(event_date) + + event_date + INTERVAL 15 DAY DELETE + + + + + 7500 +
+ + + + system + trace_log
+ + toYYYYMM(event_date) + 7500 + event_date + INTERVAL 15 DAY DELETE +
+ + + + system + query_thread_log
+ toYYYYMM(event_date) + 7500 + event_date + INTERVAL 15 DAY DELETE +
+ + + + + + + + system + metric_log
+ 7500 + 10000 + event_date + INTERVAL 15 DAY DELETE +
+ + + + system + asynchronous_metric_log
+ + 60000 + event_date + INTERVAL 15 DAY DELETE +
+ + + + + + engine MergeTree + partition by toYYYYMM(finish_date) + order by (finish_date, finish_time_us, trace_id) + + system + opentelemetry_span_log
+ 7500 +
+ + + + + system + crash_log
+ + + 1000 +
+ + + + + + + + + + + + + + + + + + *_dictionary.xml + + + + + + + + /clickhouse/task_queue/ddl + + + + + + + + + + + + + + + + + + + + + + 1000 + + + + 0 + 0 + + + + + click_cost + any + + 0 + 3600 + + + 86400 + 60 + + + + max + + 0 + 60 + + + 3600 + 300 + + + 86400 + 3600 + + + + + + /var/lib/clickhouse/format_schemas/ + + + + + hide encrypt/decrypt arguments + ((?:aes_)?(?:encrypt|decrypt)(?:_mysql)?)\s*\(\s*(?:'(?:\\'|.)+'|.*?)\s*\) + + \1(???) + + + + + + + + + + false + + false + + + https://6f33034cfe684dd7a3ab9875e57b1c8d@o388870.ingest.sentry.io/5226277 + + + + +
\ No newline at end of file diff --git a/manifests/deepflow-docker-compose/common/config/clickhouse/users.xml b/manifests/deepflow-docker-compose/common/config/clickhouse/users.xml new file mode 100644 index 00000000000..e5b4d580655 --- /dev/null +++ b/manifests/deepflow-docker-compose/common/config/clickhouse/users.xml @@ -0,0 +1,121 @@ + + + + + + + + 10000000000 + + + random + 10737418240 + 2000000 + 2000000 + 500 + 32 + 500 + 2048 + 2048 + 10 + 1 + 1 + + + + + 1 + + + + + + + + + + + + + ::/0 + + + + default + + + default + + + + + + + + + + + + + + 3600 + + + 0 + 0 + 0 + 0 + 0 + + + + \ No newline at end of file diff --git a/manifests/deepflow-docker-compose/common/config/deepflow-app/app.yaml b/manifests/deepflow-docker-compose/common/config/deepflow-app/app.yaml new file mode 100644 index 00000000000..86b843c584a --- /dev/null +++ b/manifests/deepflow-docker-compose/common/config/deepflow-app/app.yaml @@ -0,0 +1,16 @@ +app: + http_request_timeout: 600 + http_response_timeout: 600 + listen-port: 20418 + log-file: /var/log/deepflow/app.log + log-level: info + controller: + host: deepflow-server + port: 20417 + timeout: 60 + querier: + host: deepflow-server + port: 20416 + timeout: 60 + spec: + l7_tracing_limit: 100 \ No newline at end of file diff --git a/manifests/deepflow-docker-compose/common/config/deepflow-server/server.yaml b/manifests/deepflow-docker-compose/common/config/deepflow-server/server.yaml new file mode 100644 index 00000000000..fd533a25ed3 --- /dev/null +++ b/manifests/deepflow-docker-compose/common/config/deepflow-server/server.yaml @@ -0,0 +1,51 @@ +log-file: /var/log/deepflow/server.log +log-level: info +controller: + election-name: deepflow-server + election-namespace: deepflow + grpc-max-message-length: 104857600 + grpc-port: 20035 + kubeconfig: + listen-port: 20417 + clickhouse: + database: flow_tag + host: clickhouse + port: 9000 + user-name: default + user-password: + mysql: + database: deepflow + host: mysql + port: 30130 + timeout: 30 + user-name: root + user-password: deepflow + trisolaris: + trident-type-for-unkonw-vtap: 3 + chrony: + host: ntp.cloud.aliyuncs.com + port: 123 + timeout: 1 +ingester: + es-syslog: false + ckdb: + cluster-name: + external: false + host: clickhouse + port: 9000 + storage-policy: + ckdb-auth: + password: + username: default +querier: + listen-port: 20416 + clickhouse: + database: flow_tag + host: clickhouse + port: 9000 + timeout: 60 + user-name: default + user-password: + deepflow-app: + host: deepflow-app + port: 20418 \ No newline at end of file diff --git a/manifests/deepflow-docker-compose/common/config/mysql/init.sql b/manifests/deepflow-docker-compose/common/config/mysql/init.sql new file mode 100644 index 00000000000..cc294a0f5bc --- /dev/null +++ b/manifests/deepflow-docker-compose/common/config/mysql/init.sql @@ -0,0 +1,5 @@ + ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '{{ tpl $.Values.password . }}'; + CREATE USER IF NOT EXISTS 'root'@'%' IDENTIFIED WITH mysql_native_password BY '{{ tpl $.Values.password . }}'; + GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION; + CREATE USER IF NOT EXISTS 'grafana'@'%' IDENTIFIED WITH mysql_native_password BY '{{ tpl $.Values.password . }}'; + GRANT ALL ON *.* TO 'grafana'@'%' WITH GRANT OPTION; \ No newline at end of file diff --git a/manifests/deepflow-docker-compose/common/config/mysql/my.cnf b/manifests/deepflow-docker-compose/common/config/mysql/my.cnf new file mode 100644 index 00000000000..ad2745b8b6b --- /dev/null +++ b/manifests/deepflow-docker-compose/common/config/mysql/my.cnf @@ -0,0 +1,20 @@ +[client] +default-character-set=utf8 + +[mysqld] +default-authentication-plugin=mysql_native_password + +# Network related +bind-address=* +port=30130 + +# Enable query cache +innodb_buffer_pool_size=20M +max_connections=1000 +wait_timeout=60 + +# Replication related +slave_skip_errors=all + +## Binlog expiration time, default 1 days +binlog_expire_logs_seconds = 86400 \ No newline at end of file diff --git a/manifests/deepflow-docker-compose/docker-compose.yaml b/manifests/deepflow-docker-compose/docker-compose.yaml new file mode 100644 index 00000000000..3b871736595 --- /dev/null +++ b/manifests/deepflow-docker-compose/docker-compose.yaml @@ -0,0 +1,84 @@ +version: '3.2' +services: + mysql: + image: registry.cn-hongkong.aliyuncs.com/deepflow-ce/mysql:8.0.31 + container_name: deepflow-mysql + restart: always + environment: + MYSQL_ROOT_PASSWORD: deepflow + MYSQL_DATABASE: grafana + TZ: Asia/Shanghai + volumes: + - type: bind + source: ./common/config/mysql/my.cnf + target: /etc/my.cnf + - type: bind + source: ./common/config/mysql/init.sql + target: /docker-entrypoint-initdb.d/init.sql + - /opt/deepflow/mysql:/var/lib/mysql:z + networks: + - deepflow + clickhouse: + image: registry.cn-hongkong.aliyuncs.com/deepflow-ce/clickhouse-server:22.8.6.71 + container_name: deepflow-clickhouse + restart: always + environment: + TZ: Asia/Shanghai + volumes: + - type: bind + source: ./common/config/clickhouse/config.xml + target: /etc/clickhouse-server/config.xml + - type: bind + source: ./common/config/clickhouse/users.xml + target: /etc/clickhouse-server/users.xml + - /opt/deepflow/clickhouse:/var/lib/clickhouse:z + - /opt/deepflow/clickhouse_storage:/var/lib/clickhouse_storage:z + links: + - mysql + networks: + - deepflow + deepflow-server: + image: registry.cn-hongkong.aliyuncs.com/deepflow-ce/deepflow-server:latest + container_name: deepflow-server + restart: always + environment: + DEEPFLOW_SERVER_RUNNING_MODE: STANDALONE + K8S_POD_IP_FOR_DEEPFLOW: 127.0.0.1 + K8S_NODE_IP_FOR_DEEPFLOW: FIX_ME_ALLINONE_HOST_IP + K8S_NAMESPACE_FOR_DEEPFLOW: deepflow + K8S_NODE_NAME_FOR_DEEPFLOW: deepflow-host + K8S_POD_NAME_FOR_DEEPFLOW: deepflow-container + TZ: Asia/Shanghai + volumes: + - type: bind + source: ./common/config/deepflow-server/server.yaml + target: /etc/server.yaml + networks: + - deepflow + links: + - mysql + - clickhouse + - deepflow-app + ports: + - 20416:20416 + - 20419:20419 + - 30417:20417 + - 30035:20035 + - 30033:20033 + deepflow-app: + image: registry.cn-hongkong.aliyuncs.com/deepflow-ce/deepflow-app:latest + container_name: deepflow-app + restart: always + environment: + TZ: Asia/Shanghai + volumes: + - type: bind + source: ./common/config/deepflow-app/app.yaml + target: /etc/deepflow/app.yaml + networks: + - deepflow + ports: + - 20418:20418 +networks: + deepflow: + external: false \ No newline at end of file