[BUG] Not functioning properly
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
[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
Which configuration items have you modified?
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