SuperMap iManager是全面的GIS运维管理中心。
利用docker-compose来使用supermap/imanager:10.1.1
1.编写.env
DOCKER_CERTS_PATH=/etc/imanager/docker-cert
IMANAGER_HOST_IP=
IMANAGER_REGISTRY_URL=
IAAS_TYPE=
IAAS_DOCKER_IP=
COMPOSE_DOCKER_IP=
DOCKER_PORT=2375
LICENSE_SERVER=
KIBANA_PORT=5601
AIOPS_ENABLED=true
AIOPS_IMANAGER_SERVER_PASSWORD=
IMANAGER_HELP_URL=
IAM_LOGIN_ENABLE=false
IAM_LOGIN_URL=
IAM_CLIENT_ID=
IAM_CLIENT_SECRET=
其中
2.编写.env_db_mariadb
MYSQL_USER=zabbix
MYSQL_PASSWORD=zabbix
MYSQL_ROOT_PASSWORD=root_pwd
MYSQL_DATABASE=zabbix
该文件指定了zabbix服务所用数据库信息,其中
3.编写docker-compose.yml
version: "2"
services:
imanager:
image: ${IMANAGER_REGISTRY_URL}supermap/imanager:10.1.1
restart: always
environment:
- CATALINA_OPTS=-Duser.timezone=Asia/Shanghai
- ZABBIX_SERVER=http://${IMANAGER_HOST_IP}:88/api_jsonrpc.php
- ZABBIX_IP=${IMANAGER_HOST_IP}
- ES_ADDRESS=${IMANAGER_HOST_IP}
- ES_RESTPORT=9201
- ES_TCPPORT=9301
- KIBANA_ADDRESS=${IMANAGER_HOST_IP}
- KIBANA_PORT=${KIBANA_PORT}
- DB_URL=jdbc:mariadb://mariadb:3306/imanager?useUnicode=true&characterEncoding=utf8
- COMPOSE_UI_HOST_IP=composeui
- REGISTRY_URL=${IMANAGER_REGISTRY_URL}
- DOCKER_IP=${COMPOSE_DOCKER_IP}
- DOCKER_PORT=${DOCKER_PORT}
- DOCKER_VERSION=1.26
- EMAIL_ALARM_ENABLE=true
- EMAIL_HOSTNAME=mailserver
- EMAIL_SMTPPORT=25
- [email protected]
- EMAIL_PASSWORD=supermap
- [email protected]
- EMAIL_FROMUSERNAME=iManager
- EMAIL_LOGIN_URL=http://${IMANAGER_HOST_IP}:8390/imanager
- LICENSE_SERVER=${LICENSE_SERVER}
- IAAS_TYPE=${IAAS_TYPE}
- IAAS_DOCKER_IP=${IAAS_DOCKER_IP}
- IMANAGER_HOST_IP=${IMANAGER_HOST_IP}
- NGINX_CONF_PATH=/etc/imanager/nginx
- KEEPALIVED_IMAGE=${IMANAGER_REGISTRY_URL}supermap/keepalived-imanager:latest
- FTPD_IMAGE=${IMANAGER_REGISTRY_URL}supermap/pure-ftpd-imanager:latest
- MYSQL_EXPORTER_IMAGE=${IMANAGER_REGISTRY_URL}supermap/mysqld-exporter:latest
- ORACLE_EXPORTER_IMAGE=${IMANAGER_REGISTRY_URL}supermap/oracledb_exporter:latest
- POSTGRES_EXPORTER_IMAGE=${IMANAGER_REGISTRY_URL}supermap/postgres_exporter:latest
- BSLICENSE_SERVER=ws://${IMANAGER_HOST_IP}:9183
- IPORTAL_TAG=latest
- ISERVER_TAG=latest
- IAM_LOGIN_ENABLE=${IAM_LOGIN_ENABLE}
- IAM_LOGIN_URL=${IAM_LOGIN_URL}
- IAM_CLIENT_ID=${IAM_CLIENT_ID}
- IAM_CLIENT_SECRET=${IAM_CLIENT_SECRET}
container_name: "imanager"
ports:
- "9083:9083"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- imgr-logs-volume:/etc/imanager/SuperMapiManager/logs
- imgr-config-volume:/etc/imanager/imanager_config
- nginx-volume:/etc/imanager/nginx
- ${DOCKER_CERTS_PATH}:/etc/imanager/docker-cert
links:
- zabbix-server:zabbix-server
- zabbix-web-nginx-mysql:zabbix-web-nginx-mysql
depends_on:
- "mariadb"
- "zabbix-web-nginx-mysql"
- "elastic"
- "composeui"
- "nginx"
- "kibana"
command: ["/etc/imanager/wait-for-mysql.sh", "mariadb", "3306", "imanager", "imanager", "/etc/imanager/wait-for-it.sh","-t","0", "zabbix-web-nginx-mysql:80","--","/etc/imanager/start-imanager.sh"]
imanager-ui:
image: ${IMANAGER_REGISTRY_URL}supermap/imanager-ui:10.1.1
restart: always
ports:
- "8390:8390"
environment:
- IMANAGER_API_SERVER=http://imanager:9083
- BSLICENSE_UI=http://bslicense-ui:9283
- AIOPS_UI=http://${IMANAGER_HOST_IP}:8283
- PROTOCOL=http
- ALLOW_HOSTS=
- AIOPS_ENABLED=${AIOPS_ENABLED}
- IMANAGER_HELP_URL=${IMANAGER_HELP_URL}
- GRAFANA_URL=http://grafana:3000
volumes:
- imgr-cert-volume:/etc/icloud/imanager-ui/cert
mariadb:
image: ${IMANAGER_REGISTRY_URL}supermap/mariadbforimanager:10.1.1
restart: always
volumes:
- imgr-mariadb-volume:/var/lib/mysql
ports:
- "3308:3306"
mem_limit: 536870912
environment:
- MYSQL_USER=imanager
- MYSQL_PASSWORD=imanager
- MYSQL_ROOT_PASSWORD=supermap
- MYSQL_DATABASE=imanager
bslicense-server-withmariadb:
image: ${IMANAGER_REGISTRY_URL}supermap/bslicense-server-withmariadb:10.1.1
restart: always
network_mode: "host"
ports:
- "9183:9183"
environment:
- MANUAL_ENABLED=false
- TRIAL_LICENSE_QUOTA_ENABLED=false
volumes:
- bslic-mariadb-volume:/var/lib/mysql
bslicense-ui:
image: ${IMANAGER_REGISTRY_URL}supermap/bslicense-ui:10.1.1
restart: always
environment:
- BSLICENSE_SERVER=http://${IMANAGER_HOST_IP}:9183
ports:
- "9283:9283"
elastic:
image: ${IMANAGER_REGISTRY_URL}supermap/elasticsearch:6.8.10
restart: always
ports:
- "9201:9200"
- "9301:9300"
environment:
- ES_JAVA_OPTS=-Xms128m -Xmx128m
- cluster.name=docker-cluster
- xpack.security.enabled=false
- xpack.monitoring.enabled=false
- xpack.graph.enabled=false
- xpack.watcher.enabled=false
- bootstrap.memory_lock=false
- bootstrap.system_call_filter=false
mem_limit: 536870912
volumes:
- esdata-volume:/usr/share/elasticsearch/data
kibana:
image: ${IMANAGER_REGISTRY_URL}supermap/kibana:6.8.10
restart: always
ports:
- "${KIBANA_PORT}:5601"
links:
- elastic:elasticsearch
depends_on:
- "elastic"
composeui:
image: ${IMANAGER_REGISTRY_URL}supermap/docker-compose-ui:latest
restart: always
env_file:
- .env_composeui
ports:
- "5000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- composeui-volume:/opt/docker-compose-projects
- ${DOCKER_CERTS_PATH}:/opt/composeui/docker-cert
zabbix-server:
image: ${IMANAGER_REGISTRY_URL}supermap/zabbix-server-mysql:ubuntu-4.2-latest
restart: always
ports:
- "10051:10051"
links:
- mysql-server:mysql-server
- zabbix-java-gateway:zabbix-java-gateway
environment:
- ZBX_JAVAGATEWAY_ENABLE=true
- ZBX_STARTJAVAPOLLERS=5
- ZBX_ENABLE_SNMP_TRAPS=false
- ZBX_TIMEOUT=11
env_file:
- .env_db_mariadb
depends_on:
- "mysql-server"
zabbix-web-nginx-mysql:
image: ${IMANAGER_REGISTRY_URL}supermap/zabbix-web-nginx-mysql:ubuntu-4.2-php7.3.21
restart: always
ports:
- "88:80"
- "443:443"
links:
- mysql-server:mysql-server
- zabbix-server:zabbix-server
environment:
- ZBX_SERVER_NAME=Composed installation
- TZ=Asia/Shanghai
env_file:
- .env_db_mariadb
depends_on:
- "mysql-server"
zabbix-java-gateway:
image: ${IMANAGER_REGISTRY_URL}supermap/zabbix-java-gateway:ubuntu-4.2-latest
restart: always
ports:
- "10052:10052"
environment:
- ZBX_TIMEOUT=11
zabbix-proxy:
image: ${IMANAGER_REGISTRY_URL}supermap/zabbix-proxy-sqlite3:ubuntu-4.2-latest
restart: always
environment:
- ZBX_HOSTNAME=iManager Proxy
- ZBX_SERVER_HOST=zabbix-server
- ZBX_CONFIGFREQUENCY=30
- ZBX_JAVAGATEWAY_ENABLE=true
- ZBX_JAVAGATEWAY=zabbix-java-gateway
- ZBX_STARTJAVAPOLLERS=5
depends_on:
- "zabbix-java-gateway"
container_name: imanager-zabbix-proxy
mysql-server:
image: ${IMANAGER_REGISTRY_URL}supermap/mariadbforzabbix:10.1.1
restart: always
volumes:
- zabbix-mariadb-volume:/var/lib/mysql
env_file:
- .env_db_mariadb
adminer:
image: ${IMANAGER_REGISTRY_URL}supermap/adminer:4.7.7
restart: always
ports:
- "89:8080"
nginx:
image: ${IMANAGER_REGISTRY_URL}supermap/nginx-imanager:1.19.1
restart: always
volumes:
- nginx-volume:/etc/nginx/conf.d
network_mode: "host"
container_name: "imanager-nginx"
mailserver:
image: ${IMANAGER_REGISTRY_URL}supermap/mailserver-imanager:latest
restart: always
hostname: mail
domainname: imanager.com
consul:
image: ${IMANAGER_REGISTRY_URL}supermap/consul:latest
restart: always
ports:
- "8510:8500"
command: ["agent", "-server", "-bootstrap-expect=1", "-client=0.0.0.0", "-data-dir=/consul/data","-ui"]
volumes:
- consul-data-volume:/consul/data
prometheus:
image: ${IMANAGER_REGISTRY_URL}supermap/prometheus:latest
restart: always
ports:
- "9090:9090"
volumes:
- prometheus-data-volume:/prometheus
grafana:
image: ${IMANAGER_REGISTRY_URL}supermap/grafana-imanager:10.1.1
restart: always
environment:
- GF_SERVER_ROOT_URL=%(protocol)s://%(domain)s:%(http_port)s/manager/grafana/
- GF_SERVER_SERVE_FROM_SUB_PATH=true
ports:
- "3000:3000"
volumes:
- grafana-data-volume:/var/lib/grafana
networks:
default:
volumes:
imgr-mariadb-volume:
imgr-config-volume:
imgr-logs-volume:
esdata-volume:
zabbix-mariadb-volume:
composeui-volume:
nginx-volume:
prometheus-data-volume:
consul-data-volume:
grafana-data-volume:
bslic-mariadb-volume:
imgr-cert-volume:
4.存储配置文件在本地而不是容器中
Docker volumes可以持久保存您的配置,您需要挂载本地文件夹到/etc/imanager/imanager_config下,如示例中:
volumes:
- ./imanager-config:/etc/imanager/imanager_config
就是将本地的./imanager-config挂载到容器/etc/imanager/imanager_config中。
需要注意的是您要对需要挂载的文件夹有读写权限,如对./imanager-config有读写权限。
5.使用iManager
运行sudo sysctl -w vm.max_map_count=262144 && docker-compose up -d,访问 http://{IMANAGER_HOST_IP}:8390 ,使用管理员账号密码(默认账号:admin 密码:admin)登录即可。
利用docker-compose来使用supermap/imanager:10.1.0
1.编写.env
IMANAGER_HOST_IP=
IMANAGER_REGISTRY_URL=
IAAS_TYPE=
IAAS_DOCKER_IP=
COMPOSE_DOCKER_IP=
DOCKER_PORT=2375
LICENSE_SERVER=
KIBANA_PORT=5601
AIOPS_ENABLED=true
AIOPS_IMANAGER_SERVER_PASSWORD=
IMANAGER_HELP_URL=
IAM_LOGIN_ENABLE=false
IAM_LOGIN_URL=
IAM_CLIENT_ID=
IAM_CLIENT_SECRET=
其中
2.编写.env_db_mysql
MYSQL_USER=zabbix
MYSQL_PASSWORD=zabbix
MYSQL_ROOT_PASSWORD=root_pwd
MYSQL_DATABASE=zabbix
该文件指定了zabbix服务所用数据库信息,其中
3.编写docker-compose.yml
version: "2"
services:
imanager:
image: ${IMANAGER_REGISTRY_URL}supermap/imanager:10.1.0
restart: always
environment:
- CATALINA_OPTS=-Duser.timezone=Asia/Shanghai
- ZABBIX_SERVER=http://${IMANAGER_HOST_IP}:88/api_jsonrpc.php
- ZABBIX_IP=${IMANAGER_HOST_IP}
- ES_ADDRESS=${IMANAGER_HOST_IP}
- ES_RESTPORT=9201
- ES_TCPPORT=9301
- KIBANA_ADDRESS=${IMANAGER_HOST_IP}
- KIBANA_PORT=${KIBANA_PORT}
- DB_URL=jdbc:mysql://mysqldb:3306/imanager?useUnicode=true&characterEncoding=utf8
- COMPOSE_UI_HOST_IP=composeui
- REGISTRY_URL=${IMANAGER_REGISTRY_URL}
- DOCKER_IP=${COMPOSE_DOCKER_IP}
- DOCKER_PORT=${DOCKER_PORT}
- DOCKER_VERSION=1.26
- EMAIL_ALARM_ENABLE=true
- EMAIL_HOSTNAME=mailserver
- EMAIL_SMTPPORT=25
- [email protected]
- EMAIL_PASSWORD=supermap
- [email protected]
- EMAIL_FROMUSERNAME=iManager
- EMAIL_LOGIN_URL=http://${IMANAGER_HOST_IP}:8390/imanager
- LICENSE_SERVER=${LICENSE_SERVER}
- IAAS_TYPE=${IAAS_TYPE}
- IAAS_DOCKER_IP=${IAAS_DOCKER_IP}
- IMANAGER_HOST_IP=${IMANAGER_HOST_IP}
- NGINX_CONF_PATH=/etc/imanager/nginx
- KEEPALIVED_IMAGE=${IMANAGER_REGISTRY_URL}supermap/keepalived-imanager:latest
- FTPD_IMAGE=${IMANAGER_REGISTRY_URL}supermap/pure-ftpd-imanager:latest
- MYSQL_EXPORTER_IMAGE=${IMANAGER_REGISTRY_URL}supermap/mysqld-exporter:latest
- ORACLE_EXPORTER_IMAGE=${IMANAGER_REGISTRY_URL}supermap/oracledb_exporter:latest
- POSTGRES_EXPORTER_IMAGE=${IMANAGER_REGISTRY_URL}supermap/postgres_exporter:latest
- BSLICENSE_SERVER=ws://${IMANAGER_HOST_IP}:9183
- IPORTAL_TAG=latest
- ISERVER_TAG=latest
- IAM_LOGIN_ENABLE=${IAM_LOGIN_ENABLE}
- IAM_LOGIN_URL=${IAM_LOGIN_URL}
- IAM_CLIENT_ID=${IAM_CLIENT_ID}
- IAM_CLIENT_SECRET=${IAM_CLIENT_SECRET}
container_name: "imanager"
ports:
- "9083:9083"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- imgr-logs-volume:/etc/imanager/SuperMapiManager/logs
- imgr-config-volume:/etc/imanager/imanager_config
- nginx-volume:/etc/imanager/nginx
links:
- zabbix-server:zabbix-server
- zabbix-web-nginx-mysql:zabbix-web-nginx-mysql
depends_on:
- "mysqldb"
- "zabbix-web-nginx-mysql"
- "elastic"
- "composeui"
- "nginx"
- "kibana"
command: ["/etc/imanager/wait-for-mysql.sh", "mysqldb", "3306", "imanager", "imanager", "/etc/imanager/wait-for-it.sh","-t","0", "zabbix-web-nginx-mysql:80","--","/etc/imanager/start-imanager.sh"]
imanager-ui:
image: ${IMANAGER_REGISTRY_URL}supermap/imanager-ui:10.1.0
restart: always
ports:
- "8390:8390"
environment:
- IMANAGER_API_SERVER=http://${IMANAGER_HOST_IP}:9083
- BSLICENSE_UI=http://bslicense-ui:9283
- AIOPS_UI=http://${IMANAGER_HOST_IP}:8283
- PROTOCOL=http
- ALLOW_HOSTS=
- AIOPS_ENABLED=${AIOPS_ENABLED}
- IMANAGER_HELP_URL=${IMANAGER_HELP_URL}
volumes:
- imgr-cert-volume:/etc/icloud/imanager-ui/cert
mysqldb:
image: ${IMANAGER_REGISTRY_URL}supermap/mysqlforimanager:10.1.0
restart: always
volumes:
- imgr-mysql-volume:/var/lib/mysql
ports:
- "3308:3306"
mem_limit: 536870912
environment:
- MYSQL_USER=imanager
- MYSQL_PASSWORD=imanager
- MYSQL_ROOT_PASSWORD=supermap
- MYSQL_DATABASE=imanager
bslicense-server-withmariadb:
image: ${IMANAGER_REGISTRY_URL}supermap/bslicense-server-withmariadb:10.1.0
restart: always
network_mode: "host"
ports:
- "9183:9183"
environment:
- MANUAL_ENABLED=false
- TRIAL_LICENSE_QUOTA_ENABLED=false
volumes:
- bslic-mysql-volume:/var/lib/mysql
bslicense-ui:
image: ${IMANAGER_REGISTRY_URL}supermap/bslicense-ui:10.1.0
restart: always
environment:
- BSLICENSE_SERVER=http://${IMANAGER_HOST_IP}:9183
ports:
- "9283:9283"
elastic:
image: ${IMANAGER_REGISTRY_URL}supermap/elasticsearch:5.3.1
restart: always
ports:
- "9201:9200"
- "9301:9300"
environment:
- ES_JAVA_OPTS=-Xms128m -Xmx128m
- cluster.name=docker-cluster
- xpack.security.enabled=false
- xpack.monitoring.enabled=false
- xpack.graph.enabled=false
- xpack.watcher.enabled=false
- bootstrap.memory_lock=false
- bootstrap.system_call_filter=false
mem_limit: 536870912
volumes:
- esdata-volume:/usr/share/elasticsearch/data
kibana:
image: ${IMANAGER_REGISTRY_URL}supermap/kibana:5.3.1
restart: always
ports:
- "${KIBANA_PORT}:5601"
links:
- elastic:elasticsearch
depends_on:
- "elastic"
composeui:
image: ${IMANAGER_REGISTRY_URL}supermap/docker-compose-ui:latest
restart: always
ports:
- "5000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- composeui-volume:/opt/docker-compose-projects
zabbix-server:
image: ${IMANAGER_REGISTRY_URL}supermap/zabbix-server-mysql:ubuntu-4.2-latest
restart: always
ports:
- "10051:10051"
links:
- mysql-server:mysql-server
- zabbix-java-gateway:zabbix-java-gateway
environment:
- ZBX_JAVAGATEWAY_ENABLE=true
- ZBX_STARTJAVAPOLLERS=5
- ZBX_ENABLE_SNMP_TRAPS=false
- ZBX_TIMEOUT=11
env_file:
- .env_db_mysql
depends_on:
- "mysql-server"
zabbix-web-nginx-mysql:
image: ${IMANAGER_REGISTRY_URL}supermap/zabbix-web-nginx-mysql:ubuntu-4.2-php7.3.21
restart: always
ports:
- "88:80"
- "443:443"
links:
- mysql-server:mysql-server
- zabbix-server:zabbix-server
environment:
- ZBX_SERVER_NAME=Composed installation
- TZ=Asia/Shanghai
env_file:
- .env_db_mysql
depends_on:
- "mysql-server"
zabbix-java-gateway:
image: ${IMANAGER_REGISTRY_URL}supermap/zabbix-java-gateway:ubuntu-4.2-latest
restart: always
ports:
- "10052:10052"
environment:
- ZBX_TIMEOUT=11
zabbix-proxy:
image: ${IMANAGER_REGISTRY_URL}supermap/zabbix-proxy-sqlite3:ubuntu-4.2-latest
restart: always
environment:
- ZBX_HOSTNAME=iManager Proxy
- ZBX_SERVER_HOST=zabbix-server
- ZBX_CONFIGFREQUENCY=30
- ZBX_JAVAGATEWAY_ENABLE=true
- ZBX_JAVAGATEWAY=zabbix-java-gateway
- ZBX_STARTJAVAPOLLERS=5
depends_on:
- "zabbix-java-gateway"
container_name: imanager-zabbix-proxy
mysql-server:
image: ${IMANAGER_REGISTRY_URL}supermap/mysqlforzabbix:5.7.12
restart: always
volumes:
- zabbix-mysql-volume:/var/lib/mysql
env_file:
- .env_db_mysql
adminer:
image: ${IMANAGER_REGISTRY_URL}supermap/adminer:4.7.7
restart: always
ports:
- "89:8080"
nginx:
image: ${IMANAGER_REGISTRY_URL}supermap/nginx-imanager:1.19.1
restart: always
volumes:
- nginx-volume:/etc/nginx/conf.d
network_mode: "host"
container_name: "imanager-nginx"
mailserver:
image: ${IMANAGER_REGISTRY_URL}supermap/mailserver-imanager:latest
restart: always
hostname: mail
domainname: imanager.com
consul:
image: ${IMANAGER_REGISTRY_URL}supermap/consul:latest
restart: always
ports:
- "8500:8500"
command: ["agent", "-server", "-bootstrap-expect=1", "-client=0.0.0.0", "-data-dir=/consul/data","-ui"]
volumes:
- consul-data-volume:/consul/data
prometheus:
image: ${IMANAGER_REGISTRY_URL}supermap/prometheus:latest
restart: always
ports:
- "9090:9090"
volumes:
- prometheus-data-volume:/prometheus
grafana:
image: ${IMANAGER_REGISTRY_URL}supermap/grafana-imanager:10.1.0
restart: always
ports:
- "3000:3000"
volumes:
- grafana-data-volume:/var/lib/grafana
networks:
default:
volumes:
imgr-mysql-volume:
imgr-config-volume:
imgr-logs-volume:
esdata-volume:
zabbix-mysql-volume:
composeui-volume:
nginx-volume:
prometheus-data-volume:
consul-data-volume:
grafana-data-volume:
bslic-mysql-volume:
imgr-cert-volume:
4.存储配置文件在本地而不是容器中
Docker volumes可以持久保存您的配置,您需要挂载本地文件夹到/etc/imanager/imanager_config下,如示例中:
volumes:
- ./imanager-config:/etc/imanager/imanager_config
就是将本地的./imanager-config挂载到容器/etc/imanager/imanager_config中。
需要注意的是您要对需要挂载的文件夹有读写权限,如对./imanager-config有读写权限。
5.使用iManager
运行sudo sysctl -w vm.max_map_count=262144 && docker-compose up -d,访问 http://{IMANAGER_HOST_IP}:8390 ,使用管理员账号密码(默认账号:admin 密码:admin)登录即可。
Content type
Image
Digest
Size
572.2 MB
Last updated
over 5 years ago
docker pull supermap/imanager