Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] Not functioning properly #2353

Closed
taoyao-code opened this issue Jun 14, 2024 · 3 comments
Closed

[BUG] Not functioning properly #2353

taoyao-code opened this issue Jun 14, 2024 · 3 comments
Labels
bug Categorizes issue or PR as related to a bug.

Comments

@taoyao-code
Copy link

taoyao-code commented Jun 14, 2024

OpenIM Server Version

3.7.1

Operating System and CPU Architecture

Linux (AMD)

Deployment Method

Docker Deployment

Bug Description and Steps to Reproduce

.env

# Docker images
MONGO_IMAGE=mongo:6.0.2                    # MongoDB server image version
REDIS_IMAGE=redis:7.0.0                    # Redis server image version
KAFKA_IMAGE=bitnami/kafka:3.5.1            # Kafka server image version
MINIO_IMAGE=minio/minio:RELEASE.2024-01-11T07-46-16Z  # MinIO server image version
PROMETHEUS_IMAGE=prom/prometheus:v2.51.2   # Prometheus monitoring system image version
ALERTMANAGER_IMAGE=prom/alertmanager:v0.27.0 # Alertmanager for Prometheus image version
GRAFANA_IMAGE=grafana/grafana:10.4.2       # Grafana visualization tool image version
ETCD_IMAGE=quay.io/coreos/etcd:v3.5.13

OPENIM_WEB_FRONT_IMAGE=openim/openim-web-front:release-v3.5.1
OPENIM_ADMIN_FRONT_IMAGE=openim/openim-admin-front:release-v1.7

NODE_EXPORTER_IMAGE=prom/node-exporter:v1.7.0 # Prometheus Node Exporter image version

# OpenIM server and chat service images
OPENIM_SERVER_IMAGE=openim/openim-server:release-v3.7 # OpenIM server application image version
#OPENIM_SERVER_IMAGE=registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-server:release-v3.7

OPENIM_CHAT_IMAGE=openim/openim-chat:release-v1.7 # OpenIM chat application image version
#OPENIM_CHAT_IMAGE=registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-chat:release-v1.7


# Directory for data storage
DATA_DIR=./

# MongoDB configuration
MONGO_ADDRESS="mongo:27017"                # Address of MongoDB server
MONGO_USERNAME=openIM                      # MongoDB username
MONGO_PASSWORD=openIM123                   # MongoDB password

# Kafka configuration
KAFKA_ADDRESS="kafka:9094"                 # Address of Kafka server

# Etcd configuration
ETCD_ADDRESS="etcd:2379"

# Redis configuration
REDIS_ADDRESS="redis_7:6379"                 # Address of Redis server
REDIS_PASSWORD=openIM123                   # Redis password

# MinIO configuration
MINIO_EXTERNAL_ADDRESS="http://external_ip:10005" # External address for MinIO needs to be manually modified
MINIO_INTERNAL_ADDRESS="minio:9000"        # Internal network address of MinIO
MINIO_ACCESS_KEY_ID=root                   # Access key ID for MinIO
MINIO_SECRET_ACCESS_KEY=openIM123          # Secret access key for MinIO
MINIO_PORT=10005                           # Port for MinIO server
MINIO_CONSOLE_PORT=10004                   # Console port for MinIO

# OpenIM configuration
OPENIM_SECRET=openIM123                    # Secret for OpenIM authentication
OPENIM_API_PORT=10002                      # API port for OpenIM server
OPENIM_MSG_GATEWAY_PORT=10001              # Message gateway port for OpenIM

# Ports for chat API and admin API
CHAT_API_PORT=10008                        # Chat service API port
ADMIN_API_PORT=10009                       # Admin API port

# Ports for OpenIM web and admin frontends
OPENIM_WEB_FRONT_PORT=11001                # Web frontend port for OpenIM
OPENIM_ADMIN_FRONT_PORT=11002              # Admin frontend port for OpenIM

# Monitoring ports
PROMETHEUS_PORT=19090                      # Port for Prometheus server
ALERT_MANAGER_PORT=19093                   # Port for Alert Manager
GRAFANA_PORT=13000                         # Port for Grafana
NODE_EXPORTER_PORT=19100                   # Port for Prometheus Node Exporter

# General settings
API_URL="http://openim-server:10002"       # API URL for OpenIM server
LOG_IS_STDOUT=true                         # Log output to standard out
LOG_LEVEL=3                                # Log level: 3 for production environments, 6 for test environments

GRAFANA_URL="http://external_ip:13000/"    # Define the URL for accessing the Grafana dashboard, specifying the external IP and port

docker-composer

version: '3'

networks:
  openim:
    driver: bridge

services:
  mongo:
    image: "${MONGO_IMAGE}"
    container_name: mongo
    command: ["/bin/bash", "-c", "/docker-entrypoint-initdb.d/mongo-init.sh; docker-entrypoint.sh mongod --wiredTigerCacheSizeGB 1 --auth"]
    volumes:
      - "${DATA_DIR}/components/mongodb/data/db:/data/db"
      - "${DATA_DIR}/components/mongodb/data/logs:/data/logs"
      - "${DATA_DIR}/components/mongodb/data/conf:/etc/mongo"
      - "./scripts/mongo-init.sh:/docker-entrypoint-initdb.d/mongo-init.sh:ro"
    environment:
      - TZ=Asia/Shanghai
      - wiredTigerCacheSizeGB=1
      - MONGO_INITDB_ROOT_USERNAME=root
      - MONGO_INITDB_ROOT_PASSWORD=openIM123
      - MONGO_INITDB_DATABASE=openim_v3
      - MONGO_OPENIM_USERNAME=${MONGO_USERNAME}
      - MONGO_OPENIM_PASSWORD=${MONGO_PASSWORD}
    restart: always
    networks:
      - openim

  redis:
    image: "${REDIS_IMAGE}"
    container_name: redis_7
    volumes:
      - "${DATA_DIR}/components/redis/data:/data"
      - "${DATA_DIR}/components/redis/config/redis.conf:/usr/local/redis/config/redis.conf"
    environment:
      TZ: Asia/Shanghai
    restart: always
    sysctls:
      net.core.somaxconn: 1024
    command: [ "redis-server", "/usr/local/redis/config/redis.conf", "--requirepass", "${REDIS_PASSWORD}", "--appendonly", "yes" ]
    networks:
      - openim

  etcd:
    image: "${ETCD_IMAGE}"
    container_name: etcd
    ports:
      - "12379:2379"
      - "12380:2380"
    environment:
      - ETCD_NAME=s1
      - ETCD_DATA_DIR=/etcd-data
      - ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379
      - ETCD_ADVERTISE_CLIENT_URLS=http://0.0.0.0:2379
      - ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380
      - ETCD_INITIAL_ADVERTISE_PEER_URLS=http://0.0.0.0:2380
      - ETCD_INITIAL_CLUSTER=s1=http://0.0.0.0:2380
      - ETCD_INITIAL_CLUSTER_TOKEN=tkn
      - ETCD_INITIAL_CLUSTER_STATE=new
    restart: always
    networks:
      - openim

  kafka:
    image: "${KAFKA_IMAGE}"
    container_name: kafka
    user: root
    restart: always
    volumes:
      - ./scripts/create-topic.sh:/opt/bitnami/kafka/create-topic.sh
      - "${DATA_DIR}/components/kafka:/bitnami/kafka"
    command: >
      bash -c "/opt/bitnami/scripts/kafka/run.sh & /opt/bitnami/kafka/create-topic.sh; wait"
    environment:
      TZ: Asia/Shanghai
      KAFKA_CFG_NODE_ID: 0
      KAFKA_CFG_PROCESS_ROLES: controller,broker
      KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 0@kafka:9093
      KAFKA_CFG_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://:9094
      KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,EXTERNAL://kafka:9094
      KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT
      KAFKA_CFG_CONTROLLER_LISTENER_NAMES: CONTROLLER
    networks:
      - openim

  minio:
    image: "${MINIO_IMAGE}"
    ports:
      - "${MINIO_PORT}:9000"
      - "${MINIO_CONSOLE_PORT}:9090"
    container_name: minio
    volumes:
      - "${DATA_DIR}/components/mnt/data:/data"
      - "${DATA_DIR}/components/mnt/config:/root/.minio"
    environment:
      TZ: Asia/Shanghai
      MINIO_ROOT_USER: "${MINIO_ACCESS_KEY_ID}"
      MINIO_ROOT_PASSWORD: "${MINIO_SECRET_ACCESS_KEY}"
    restart: always
    command: minio server /data --console-address ':9090'
    networks:
      - openim

  openim-web-front:
    image: ${OPENIM_WEB_FRONT_IMAGE}
    container_name: openim-web-front
    restart: always
    ports:
      - "${OPENIM_WEB_FRONT_PORT}:80"
    networks:
      - openim

  openim-admin-front:
    image: ${OPENIM_ADMIN_FRONT_IMAGE}
    container_name: openim-admin-front
    restart: always
    ports:
      - "${OPENIM_ADMIN_FRONT_PORT}:80"
    networks:
      - openim

  prometheus:
    image: ${PROMETHEUS_IMAGE}
    container_name: prometheus
    hostname: prometheus
    restart: always
    ports:
      - "${PROMETHEUS_PORT}:9090"
    networks:
      - openim

  alertmanager:
    image: ${ALERTMANAGER_IMAGE}
    container_name: alertmanager
    hostname: alertmanager
    restart: always
    ports:
      - "${ALERT_MANAGER_PORT}:9093"
    networks:
      - openim

  grafana:
    image: ${GRAFANA_IMAGE}
    container_name: grafana
    hostname: grafana
    user: root
    restart: always
    ports:
      - "${GRAFANA_PORT}:3000"
    volumes:
      - "${DATA_DIR}/components/grafana:/var/lib/grafana"
    environment:
      - GF_SECURITY_ALLOW_EMBEDDING=true
      - GF_SESSION_COOKIE_SAMESITE=none
      - GF_SESSION_COOKIE_SECURE=true
      - GF_AUTH_ANONYMOUS_ENABLED=true
      - GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
    networks:
      - openim

  node-exporter:
    image: ${NODE_EXPORTER_IMAGE}
    container_name: node-exporter
    hostname: node-exporter
    restart: always
    ports:
      - "${NODE_EXPORTER_PORT}:9100"
    networks:
      - openim

  openim-server:
    image: ${OPENIM_SERVER_IMAGE}
    container_name: openim-server
    ports:
      - "${OPENIM_MSG_GATEWAY_PORT}:10001"
      - "${OPENIM_API_PORT}:10002"
    healthcheck:
      test: [ "CMD", "sh", "-c", "mage check" ]
      interval: 5s
      timeout: 60s
      retries: 10
    environment:
      - IMENV_MONGODB_ADDRESS=${MONGO_ADDRESS}
      - IMENV_MONGODB_USERNAME=${MONGO_USERNAME}
      - IMENV_MONGODB_PASSWORD=${MONGO_PASSWORD}
      - IMENV_KAFKA_ADDRESS=${KAFKA_ADDRESS}
      - IMENV_DISCOVERY_ETCD_ADDRESS=${ETCD_ADDRESS}
      - IMENV_REDIS_ADDRESS=${REDIS_ADDRESS}
      - IMENV_REDIS_PASSWORD=${REDIS_PASSWORD}
      - IMENV_MINIO_INTERNALADDRESS=${MINIO_INTERNAL_ADDRESS}
      - IMENV_MINIO_EXTERNALADDRESS=${MINIO_EXTERNAL_ADDRESS}
      - IMENV_MINIO_ACCESSKEYID=${MINIO_ACCESS_KEY_ID}
      - IMENV_MINIO_SECRETACCESSKEY=${MINIO_SECRET_ACCESS_KEY}
      - IMENV_SHARE_SECRET=${OPENIM_SECRET}
      - IMENV_LOG_ISSTDOUT=${LOG_IS_STDOUT}
      - IMENV_LOG_REMAINLOGLEVEL=${LOG_LEVEL}
      - IMENV_OPENIM_API_PROMETHEUS_GRAFANAURL=${GRAFANA_URL}
    restart: always
    networks:
      - openim

  openim-chat:
    image: ${OPENIM_CHAT_IMAGE}
    container_name: openim-chat
    healthcheck:
      test: [ "CMD", "sh", "-c", "mage check" ]
      interval: 5s
      timeout: 60s
      retries: 10
    environment:
      - CHATENV_MONGODB_ADDRESS=${MONGO_ADDRESS}
      - CHATENV_MONGODB_USERNAME=${MONGO_USERNAME}
      - CHATENV_MONGODB_PASSWORD=${MONGO_PASSWORD}
      - CHATENV_DISCOVERY_ETCD_ADDRESS=${ETCD_ADDRESS}
      - CHATENV_REDIS_ADDRESS=${REDIS_ADDRESS}
      - CHATENV_REDIS_PASSWORD=${REDIS_PASSWORD}
      - CHATENV_SHARE_OPENIM_SECRET=${OPENIM_SECRET}
      - CHATENV_SHARE_OPENIM_APIURL=${API_URL}
      - CHATENV_LOG_ISSTDOUT=${LOG_IS_STDOUT}
      - CHATENV_LOG_REMAINLOGLEVEL=${LOG_LEVEL}
    ports:
      - "${CHAT_API_PORT}:10008"
      - "${ADMIN_API_PORT}:10009"
    restart: always
    networks:
      - openim

Screenshots Link

docker-compose (1).log

@taoyao-code taoyao-code added the bug Categorizes issue or PR as related to a bug. label Jun 14, 2024
@skiffer-git
Copy link
Member

�[2Kopenim-chat | Error: failed to connect to MongoDB, URI=mongodb://openIM:openIM123@mongo:27017/openim_v3?maxPoolSize=100: server selection error: server selection timeout, current topology: { Type: Unknown, Servers: [{ Addr: mongo:27017, Type: Unknown, Last error: dial tcp 192.168.176.4:27017: i/o timeout }, ] }
�[2Kopenim-chat | chat-rpc exit -1: server selection error: server selection timeout, current topology: { Type: Unknown, Servers: [{ Addr: mongo:27017, Type: Unknown, Last error: dial tcp 192.168.176.4:27017: i/o timeout }, ] }
�[2Kopenim-chat | failed to connect to MongoDB, URI=mongodb://openIM:openIM123@mongo:27017/openim_v3?maxPoolSize=100
�[2Kopenim-chat | github.com/openimsdk/tools/errs.WrapMsg
�[2Kopenim-chat | /go/pkg/mod/github.com/openimsdk/[email protected]/errs/coderr.go:134
�[2Kopenim-chat | github.com/openimsdk/tools/db/mongoutil.NewMongoDB
�[2Kopenim-chat | /go/pkg/mod/github.com/openimsdk/[email protected]/db/mongoutil/mongo.go:77
�[2Kopenim-chat | github.com/openimsdk/chat/internal/rpc/chat.Start
�[2Kopenim-chat | /openim-chat/internal/rpc/chat/start.go:36
�[2Kopenim-chat | github.com/openimsdk/chat/pkg/common/startrpc.Start[...]
�[2Kopenim-chat | /openim-chat/pkg/common/startrpc/start.go:79
�[2Kopenim-chat | github.com/openimsdk/chat/pkg/common/cmd.(*ChatRpcCmd).runE
�[2Kopenim-chat | /openim-chat/pkg/common/cmd/chat_rpc.go:55
�[2Kopenim-chat | github.com/openimsdk/chat/pkg/common/cmd.NewChatRpcCmd.func1
�[2Kopenim-chat | /openim-chat/pkg/common/cmd/chat_rpc.go:45
�[2Kopenim-chat | github.com/spf13/cobra.(*Command).execute
�[2Kopenim-chat | /go/pkg/mod/github.com/spf13/[email protected]/command.go:983

@skiffer-git
Copy link
Member

Which configuration items have you modified?

@taoyao-code
Copy link
Author

There is a very strange problem at present. It is normal on a new server, but when the corresponding configuration file is completely complicated to this server, the problem of inaccessibility occurs.

Modify the redis container_name in the docker-compose.yaml file to: redis_7

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Categorizes issue or PR as related to a bug.
Projects
None yet
Development

No branches or pull requests

2 participants