教程

常见问题解答

  1. 根据模板创建出来的虚拟机,点击 GIS 桌面快捷方式,报错“SuperMap 许可不可用,请检查许可配置是否正确” ,打开 license center 看许可是正常的,怎么处理?

    答:请您打开“SuperMap 许可中心”,进入许可中心的设置界面,点击“设置”,在设置界面点击“重启许可服务”,重启完成后,GIS桌面就可以正常启动了。

  2. GIS 环境在创建过程中,若在任务管理页面显示该任务执行失败,且有IP * * * * 不可用。请检查网络配置信息后,再重试这样的提示,怎么处理?

    答:出现这样的报错,首先可能是因为网络配置信息不正确;其次可能因为不能够从 DNSmasq 获取IP地址,出现这样的情况,最简单的方法是关掉机器上所有的 DNSmasq 进程,并重新启动 nova-work。

    具体操作步骤如下:

    (1)第一步:检查网络配置信息和虚拟平台的配置信息,确定网络可用后,点击该任务对应的“重试”按钮。重试后,若该任务执行成功,则可以不用进行以下步骤。

    (2)第二步:检查了网络配置信息并“重试”后,还是有这样的提示,则需要对 OpenStack 的 Controller 节点(DNSmasq所在机器)进行配置。配置方法是,在 Controller 节点(DNSmasq所在机器),执行“killall dnsmasq” 和 “service neutron-dhcp-agent restart”。

    (3) 第三步,重启 Controller 节点后,在iManager 的任务管理页面,点击该任务对应的“重试”按钮。

  3. iManager 根据模板,没有成功创建出 GIS 环境或创建的 GIS 环境不可用,如何产生原因?该如何解决方法呢?

    答:出现这样的现象,可能由以下两方面导致,应逐一排查:

    (1)导入镜像文件过程中,在选择“镜像类型”时应该与导入的镜像文件的文件类型一致。以 OpenStack 平台为例,在“Create An Image”时,“Format”的值应该选择与导入的镜像文件的文件类型一致,具体操作可参考 OpenStack附加配置导入GIS镜像部分介绍。

    (2)检查镜像文件是否完性。您获取的镜像文件的完整性会影响 iManager 创建 GIS 环境,您需要检查您获取的镜像文件的 MD5 值是否与文件中给出的 MD5 值一致,在导入后,也需要验证 MD5值。

  4. 导入外部已有的负载均衡器需要注意什么?

    答:负载均衡组的配置信息会保存在负载均衡器的配置文件目录里,因此主配置文件中应该把配置文件目录包含进去。若没有包含,将导致依赖于该外部导入的负载均衡器而创建的负载均衡组的服务无法访问。

    具体的解决办法是确保 Nginx 的主配置文件 nginx.conf 里面的 http 配置中包含了 Nginx 的配置文件目录,下面以默认安装的 Nginx 的参数为例:

    (1)配置文件目录为:/etc/nginx/conf.d ;

    (2)主配置文件nginx.conf 在 /etc/nginx 目录下;

    (3)在 /etc/nginx/nginx.conf 主配置文件中的 http 配置里,请确保有如下配置:

    http{
    incude /etc/nginx/conf.d/*.conf;
    }
  5. Windows系统下,许可管理中的许可信息页面显示“获取许可信息失败”怎么办?

    答:先用SuperMap.LicenseCenter工具查看下当前是否有可用许可,如果许可有效,以管理员身份打开命令行窗口,cd 到【SuperMap iManager 安装目录】的bin目录下。输入 startup.bat,启动 SuperMap iManager 服务。

  6. Docker container 挂起导致 GIS 环境访问不到怎么办?

    答:GIS环境访问不到了,发现对应的 container 挂起,无法进行停止,删除操作。登录到 Docker 所在主机,使用 uname -a 查看当前 Kernel 的版本。如果您的版本过旧(例如为4.2.0-30.35),请升级 Kernel 为最新。

    升级 Ubuntu 的 Kernel 可参考:http://kernel.ubuntu.com

  7. OpenStack 平台调整GIS 环境规格后,有时候许可丢失怎么办?

    答:重启 GIS 环境。

  8. OpenStack 平台,调整 GIS 环境规格失败怎么办?

    答:检查OpenStack中是否存在ssh 没有权限问题,节点A需要通过ssh无密码访问节点B 在节点A的/var/lib/nova目录下执行 ssh -t rsa(不需要输入额外信息,直接回车即可)生成公钥(id_rsa.pub)与密钥(id_rsa)文件(确保生成的目录位于/var/lib/nova下) 将公钥文件拷贝到节点B的/var/lib/nova/.ssh/目录下(不存在则创建) 将节点B上/var/lib/nova/.ssh/目录下执行命令 cat id_rsa.pub >> authorized_keys(根据实际需要进行多个key的管理) 节点B上执行命令

    chmod 700 /var/lib/nova/.ssh
    chmod 600 /var/lib/nova/.ssh/anthorized_keys
    chown nova:nova /var/lib/nova/.ssh/id_rsa /var/lib/nova/.ssh/authorized_keys
  9. GIS环境管理里面有GIS环境,但是在管理员概述页 “GIS环境统计” 总是显示 “暂无创建好的GIS环境”

    答:检查下您配置的数据库,如果是MySQL,请修改my.cnf文件,在sql_mode的属性设置中,去掉 “ONLY_FULL_GROUP_BY” 参考以下修改:

      [mysqld]
    sqlmode = 'STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
  10. 如果您在OpenStack平台中创建虚拟机时出现以下错误信息Build of instance *** aborted: Flavor's disk is too small for requested image. Flaver disk is *** bytes, image is *** bytes.,怎么办?

    答:出现上述现象的原因是创建虚拟机时指定的硬盘大小小于其对应镜像所需的硬盘大小,比如,若您当前正在创建SuperMap iManager或SuperMap iPortal或SuperMap iServer虚拟机,则您需要将硬盘大小最低设置为20;若您当前正在创建SuperMap iDesktopX镜像,则您需要将硬盘大小最低设置为30.

  11. vSphere 如何指定创建GIS环境的数据存储?

    答:编辑iManager本地挂载目录(可通过 docker volume ls 命令查看iManager volume名称,再通过 docker inspect + iManager volume名 查看iManager容器本地挂载目录路径)中imanager-config目录下的icloud.properties文件,增加配置vsphere_dataStoreName={数据存储名称},注意:数据存储名称不需要加引号,除非数据存储的名称本身包含引号。

  12. 使用外部zabbix/ElasticSearch,且它们有防火墙入口限制时,需要做哪些配置?

    答:主机被允许通过防火墙,并不等于iManager Docker容器可以通过防火墙,所以您需要做如下配置:

    (1)确定Docker容器网段,可用如下命令创建网络并使用:

    docker network create --driver=bridge --subnet=172.28.0.0/16 --ip-range=172.28.5.0/24 --gateway=172.28.5.254 my_et

    (2)添加入口规则,允许网段通过,例如上例中的 172.28.5.0/24 通过

    如果您配置了外部的zabbix,可在imanager容器内部通过如下的curl验证zabbix是否可访问

    cur -H ”Content-Type:application/json” -X POST --data '{”jsonrpc”:”2.0”,”method”:”user.login”,”params”:{”user”:”Admin”,”password”:”zabbix”},”id”:1}' http://172.16.17.11:88/api_jsonrpc.php
  13. Swarm Mode添加worker节点时出现以下错误信息”Error response from daemon: error while validating Root CA Certificate: x509: certificate has expired or is not yet valid”,怎么办?

    答:出现上述现象的原因是您要加入Swarm Mode的worker节点系统时间不在Swarm的CA证书时间范围内,所以您需要做如下配置:

    (1)在Swarm的manage节点上执行如下命令查看CA证书的时间范围:

    docker swarm ca | openssl x509 -noout -text

    可以看到类似如下的输出信息:(红色标注部分为CA证书的有效时间)

    swarmjoinerror

    (2)将worker节点的时间设置为CA证书有效时间范围内。此处以将系统时间设置为”2017年12月14日 10:30:00 GMT”为例进行说明:

    cp /usr/share/zoneinfo/GMT /etc/localtime
    date -s ”2017-12-14 10:30:00”
  14. 组建切图集群失败,在任务管理器下出现如下信息:配置集群父节点失败:未找到守护进程或守护进程启动失败怎么办?

    答:

    (1)检查下您是否正确的安装了守护进程,并启动,参见教程->云GIS基础设施管理->GIS集群管理->iServer守护进程安装

    (2)在组建切图集群的节点上,修改以下文件 /etc/icloud/SuperMapiServer/support/jre/lib/security/java.security,在最后增加一行

    sun.rmi.registry.registryFilter=*
  15. 当使用docker-compose.yml启动iManager服务,elastic容器报以下错误信息“ERROR:bootstrap checks faied max virtual memory areas vm.max_map_count[65530] is too low, increase to at least[262144]”,该怎么办?

    答:出现上述现象的原因是elasticsearch用户拥有的内存权限太小,至少需要262144,所以您需要执行如下命令后再启动iManager服务。

    sudo sysctl -w vm.max_map_count=262144
  16. 当添加Windows版MySQL数据库后,获取监控数据比较迟缓时,该怎么办?

    答:出现上述现象的原因是MySQL数据库默认状态下是会自动反向解析,只需要在配置文件my.ini中加入如下一句,然后重启MySQL服务即可。

     [mysqld]
    skip-name-resolve
  17. 如何使用https协议?

    答:使用https协议,需执行以下步骤:

    (1)进入iManager安装目录(即执行iManager启动命令的目录)并找到docker-compose.yml文件,在当前目录下输入命令打开配置:

    sudo vi docker-compose.yml

    (2)将imanager-ui的环境变量PROTOCOL值改为https;

    (3)保存设置,并重启iManager:

    sudo ./start.sh 或 sd ./startup.sh
  18. iManager出现部分IP/域名不能访问的情况,怎么解决?

    答:iManager默认只支持初始IP地址访问。如需使用其它IP/域名,请按以下步骤进行添加:

    (1)进入iManager安装目录(即执行iManager启动命令的目录)并找到docker-compose.yml文件,在当前目录下输入命令打开配置:

    sudo vi docker-compose.yml

    (2)在imanager-ui中找到环境变量”- ALLOW_HOSTS=”;

    (3)将所需的IP/域名添加在”- ALLOW_HOSTS=”后面。如果有多个IP/域名需要添加,它们之间用英文逗号(”,”)隔开;

    例如:
    添加example1.com以及example2.com为可访问IP/域名,即把”- ALLOW_HOSTS=”改为”- ALLOW_HOSTS=example1.com,example2.com”。

    (4)保存设置,并重启iManager:

    sudo ./start.sh 或 sd ./startup.sh
  19. iManager监控时zabbix出现以下错误如何处理?

    (1)出现错误信息”Get value from agent failed: cannot connect to [[<ip>:10050:[111] Connection failed.”

    答:请通过以下几方面进行错误排查:

    • 执行以下命令确认zabbix-agent是否安装成功或者是否正常启动

      ps -ef | grep zabbix-agent

      备注:
      成功安装并正常启动的zabbix-agent,执行完以上命令后应该看到如下图所示
      pszabbixagent

      若zabbix-agent正常启动,请参考其他几方面排查,若没有看到这样的结果,请参考”/etc/zabbix-agents/bin/readme.txt”或者”C:\zabbix-agents\bin\readme.txt”卸载zabbix-agent,然后重新安装守护进程,具体安装方法请参考教程->GIS环境监控->添加GIS环境->添加GIS门户安装守护进程步骤。

    • 确认zabbix-agent配置文件中Server的值配置是否正确。

      zabbix agent配置文件(/etc/zabbix-agents/linux/zabbix-agent/conf/zabbix_agentd.conf或者C:\zabbix-agents\win\conf\zabbix_agentd.win.conf)中Server的值应该是iManager服务所在主机的IP

    • 确认zabbix server和zabbix agent之间是否可互相访问。

      • 参考B找到Server值
      • 在zabbix agent中执行以下命令,其中{IP}是上步中确认的IP

        ping {IP}
      • 若能ping通,请参考其他几方面排查,若不能ping通,请排查为什么不能ping通。
      • 执行以下命令确认10050端口是否冲突。

        netstat -lutn

    (2)出现错误信息”Received empty response from Zabbix Agent at [<ip>]. Assuming that agent dropped connection because of access permissions.”

    答:当iManager和添加的GIS服务器在同一个Linux机器上时可能会出现上述错误,此时需要参考以下步骤进行配置:

    • 执行以下命令获取zabbix-server容器IP

      docker ps | grep zabbix-server | awk '{print $1}' | xargs docker inspect --format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'
    • 执行以下命令编辑zabbix-agent配置文件,将该文件中的Server变量值改为上步中找到的zabbix-server容器IP

      sudo vi /etc/zabbix-agents/linux/zabbix-agent/conf/zabbix_agentd.conf

    (3)出现错误信息”Get value from agent failed: cannot connect to [[<ip>]:10050]:[113] No route to host.”

    答:出现上述错误时,请确认防火墙已关闭。

    (4)出现错误信息”zabbix获取不到windows主机的cpu使用率,查看zabbix-agent日志(c:/zabbix_agentd.log),错误信息为:init_cpu_collector(): cannot make couterpath for ”\”: [0xc0000BBD]必需的参数丢失或错误”。

    答:出现上述现象的原因是Windows性能计数器有问题,只需要管理员权限下执行 lodctr /R2

  20. 管理员账户被锁定后如何解锁?

    答:在iManager安装目录下有名为 unlock-admin.sh 的文件,用来解锁管理员账户,请按以下步骤解锁管理员账户:

    (1)进入iManager安装目录(即执行iManager启动命令的目录);

    (2)解锁管理员账户,即执行 unlock-admin.sh 文件进行解锁:

    ./unlock-admin.sh</pre>
  21. 如何重置管理员账户?

    答:在iManager安装目录下有名为 resetpassword.sh 的文件,用来重置管理员账户,请按以下步骤重置管理员账户:

    (1)进入iManager安装目录(即执行iManager启动命令的目录);

    (2)重置管理员账户,即执行 resetpassword.sh 文件进行重置:

    ./resetpassword.sh

    重置后帐号:admin/密码:admin

  22. 如何切换iManager页面语言?

    答:iManager页面语言切换可通过浏览器语言切换实现。以Chrome V74.0.3729.157浏览器为例:

    (1)打开Chrome浏览器,点击右上角自定义及控制Google Chrome->设置

    (2)拖动页面至最下方,点击高级->语言->添加语言

    (3)选中您需要的语言并添加(iManager目前只支持中文与英文);

    (4)完成添加后,在对应的语言右侧点击更多操作,并选择移到顶部

    (5)刷新iManager页面,语言切换成功。

  23. 如何保留拷贝至容器中的文件?

    答:请参考以下实例创建数据卷并拷贝文件至指定容器目录。

    例:拷贝iManager安装目录下的“readme.txt”文件至Consul容器中的/home目录下:

    (1)进入iManager安装目录(即执行iManager启动命令的目录);

    (2)编辑器打开docker-compose.yml文件,执行:

    vi docker-compose.yml

    (3)找到Consul相关配置,并创建数据卷,在配置中输入:

    volumes:
        - Eample:/home

    备注:

    1. volumes与image保持同级。
    2. Example为数据卷名称,可自定义;home为Consul容器中拷贝文件的存储目录,需替换为您拷贝文件所在容器目录。

    (4)挂载数据卷,在yml文件配置中最末volumes处添加数据卷名称:

    Example:

    (5)保存并退出docker-compose.yml文件;

    (6)重启iManager,使数据卷生效;

    (7)查看Consul容器的名称,输入:

    docker ps

    (8)拷贝iManager安装包解压后目录下的”readme.txt”文件至Consul容器中的/home目录下,执行:

    docker cp /home/supermap/supermap-imanager-docker/readme.txt imanager_consul_1:/home

    备注:
    上述拷贝指令格式为:docker cp /path containerName:/path

  24. 如何固定容器主机名?

    答:固定容器主机名,只需在iManager安装目录下对docker-compose.yml文件进行编辑。请参考以下步骤设置容器主机名:

    (1)进入iManager安装目录(即执行iManager启动命令的目录);

    (2)编辑器打开docker-compose.yml文件,执行:

    vi docker-compose.yml

    (3)找到需要设置主机名的容器,在配置中输入:

    hostname: name

    备注:

    1. hostname与image保持同级。
    2. name为容器主机名,可自定义。

    (4)保存并退出docker-compose.yml;

    (5)重启iManager,使设置生效。

  25. 如果iPortal上传数据失败怎么办?

    答:使用iPortal时上传数据不成功,需手动在nginx配置文件中添加client_max_body_size参数。具体步骤如下:

    (1)进入nginx本地挂载目录(可通过 docker volume ls 命令查看nginx的volume名称,再通过 docker inspect + nginx volume名 查看nginx容器本地挂载目录路径);

    (2)进入nginx配置文件编辑界面,输入:

    vi default.conf

    (3)在nginx配置文件中加入如下参数:

    client_max_body_size 100m;

    备注:
    上述参数中100m为上传文件的大小上限,可根据实际情况调整。

    (4)保存退出nginx配置文件,并重启nginx容器。

  26. 添加Linux环境的iServer,执行安装守护进程的命令时,报错”HTTP request sent, awaiting response… 404 Not Found”怎么办?

    答:在安装守护进程命令中增加以下参数--refer='${protocol}://${ip}:${port}',如:

    sudo wget -O setup1.sh 'http://172.16.17.11:8390/imanager/packages/setupscript?ip=192.168.17.128&id=1&os=linux' --refer='http://172.16.17.11:8390' && sh setup1.sh
  27. 如何修改Docker存储位置?

    答:默认情况下Docker的存储位置为:/var/lib/docker。请参照以下步骤修改存储位置:

    (1)使用root权限进行操作:

    sudu su

    (2)查看Docker具体存储位置:

    docker info | grep "Docker Root Dir"

    (3)停止Docker服务:

    service docker stop

    (4)移动整个原存储目录到目的路径(原存储目录为步骤2中查看到的目录,下面以 /var/lib/docker 为例;目的路径以 /data/docker 为例):

    mv /var/lib/docker /root/data/docker
    ln -s /root/data/docker /var/lib/docker

    (5)启动Docker:

    service docker start
  28. 如何替换iManager自带的安全证书?

    答:替换iManager自带的安全证书,需在证书挂载目录下放置自己的证书,请按以下步骤替换安全证书:

    (1)执行以下命令,找到安全证书挂载目录:

    docker volume ls | grep cert | awk -F ' '  '{print $2}' | xargs docker volume inspect

    (2)将自己的证书文件存放至步骤(1)查到的证书挂载目录中;

    (3)重启iManager-ui容器。下方指令中的imanager-ui需用您的实际容器名称替换,可使用docker ps命令查看容器名称。

    docker restart imanager-ui

    注意:

    1. 证书要同时包括私钥和公钥;
    2. 私钥证书文件名应为: {证书命名}.key;
    3. 公钥证书文件名应为: {证书命名}.crt。
  29. iManager切换为https协议后,添加linux环境的GIS服务监控,使用命令安装守护进程时报错: ERROR: Certificate common name "imanager" doesn's match requested host name '${ip}',如何解决?

    答:在命令行的下载工具“wget -O”后添加参数--no-check-certificate,例如:

    sudo wget -O setup_28.sh --no-check-certificate 'https://172.16.120.134:8390/imanager/packages/setupscript?ip=172.16.112.150&id=28&os=linux' && sh setup_28.sh
  30. iManager部署时如需临时开放端口,如何操作并查看已开放的端口?

    答:请按以下步骤临时开放端口:

    (1)查看容器ip地址:

    docker inspect <container_name> --format='{{.NetworkSettings.Networks.imanager_external.IPAddress}}'

    注:<container_name>为容器名称。

    (2)开启端口:

    iptables -t nat -A DOCKER -p tcp --dport <host_port> -j DNAT --to-destination <container_ip>:<container_port>
    iptables -t filter -A DOCKER -p tcp --dport <container_port> -d <container_ip> -j ACCEPT

    注:<container_ip>为容器ip地址,<container_port>为容器端口,<host_port>为主机端口。

    (3)查看已开启端口:

    iptables -vnL -t nat

    如下图红框内所示,9083端口已临时开放。

    temp_open

    (4)关闭端口:

    iptables -t nat -D DOCKER -p tcp --dport <host_port> -j DNAT --to-destination <container_ip>:<container_port>
    iptables -t filter -D DOCKER -p tcp --dport <container_port> -d <container_ip> -j ACCEPT