1. 安装与启动常见问题

1.1. Nginx相关配置

1.1.1. 上传文件是否有大小限制?

产品对上传文件要求不大于50MB, 如配置反向代理,需要配置上传文件大小,以Nginx为例,在配置文件中进行下配置。

# nginx配置文件/etc/nginx/nginx.conf, 在对应server中配置
client_max_body_size 100m;

1.1.2. 如何设置超时时间?

在配置文件中进行timeout的设置。

# nginx配置文件/etc/nginx/nginx.conf, 在对应server中配置
proxy_connect_timeout  600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout       600;

1.1.3. 如何通过80和443端口进行服务?

HENGSHI SENSE不能以root启动,所以不能绑定小于1024的端口。如需监听80和443端口,建议使用nginx做反向代理。 建立配置文件/etc/nginx/conf.d/hengshi.conf,内容如下。

# hengshi proxy
upstream hengshi-proxy {
        server $IP:$PORT;
}
server {
        server_name $SERVNAME;
        access_log /var/log/nginx/access.log main;
        listen 80;
        location / {
                proxy_pass http://hengshi_proxy;
        }
}
server {
        server_name $SERVNAME
        listen 443 ssl http2 ;
        access_log /var/log/nginx/access.log main;

        client_max_body_size 200M;
        proxy_connect_timeout    900;
        proxy_read_timeout       900;
        proxy_send_timeout       900;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
        ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:!DSS';
        ssl_prefer_server_ciphers on;
        ssl_session_timeout 5m;
        ssl_session_cache shared:SSL:50m;
        ssl_session_tickets off;
        ssl_certificate $PATH_TO_CER
        ssl_certificate_key $PATH_TO_CER_KEY
        add_header Strict-Transport-Security "max-age=31536000" always;
        location / {
                proxy_pass http://hengshi-proxy;
        }
}

其中,变量需要替换成真实值。

  • IP: 部署HENGSHI的机器ip。
  • PORT: HENGSHI服务绑定的端口。
  • SERVNAME: Nginx用于提供服务的hostname。
  • PATH_TO_CER, PATH_TO_CER_KEY: 分别是提供ssl服务的cer/key文件的绝对路径。

1.2. 安装相关问题

1.2.1. 安装后服务器hostname是否可以修改?

安装后服务器hostname不可更改, 如需更改请联系技术支持做迁移操作。

1.2.2. 磁盘空间不足

[2023-05-06.11:19:13.150][hs_install:68][ ERROR ]: /opt/hengshi capacity is less than 10G, abort installation! Please check the disk or use larger disk

此问题产生原因为磁盘空间不足,清理磁盘空间或增加磁盘空间后,继续进程安装升级操作。

1.2.3. 使用用外部metadb或外部engine

 IS ACTIVE! : [metadb] @127.0.0.1:54320/hengshi
 NOT ACTIVE! : [engine] @127.0.0.1:15432/hengshi
 NOT ACTIVE! : [minio] minio server /opt/hengshi/minio-data
 NOT ACTIVE! : [redis] redis-server .*:6379
 NOT ACTIVE! : [flink] /opt/hengshi/lib/flink
 NOT ACTIVE! : [syslog] syslog-ng --no-caps --module-path=/opt/hengshi/lib/syslog-ng/lib/syslog-ng -f /opt/hengshi/conf/syslog-ng.conf -p /opt/hengshi/logs/syslog-ng.pid -R /opt/hengshi/logs/syslog-ng.persist -c /opt/hengshi/logs/syslog-ng.ctl
 NOT ACTIVE! : [hengshi] jar /opt/hengshi/lib/bootstrap-4.4-SNAPSHOT.jar
 NOT ACTIVE! : [monit] /opt/hengshi/lib/monit/bin/monit -c /opt/hengshi/lib/monit/conf/monitrc
[2023-05-06.11:21:14.303][hs_install:128][ ERROR ]: /opt/hengshi has instance running! STOP ALL instance first!

使用外部metadb或引擎,无法通过hengshi脚本控制外部服务状态,可通过参数控制,安装升级跳过外部组价状态检查

./hs_install -p /opt/hengshi/ -e [all|metadb|engine] ## 同时使用外部metadb、engine,参数选择all

1.2.4. init-os 初始化失败,用户缺失sudo权限

[2023-05-06.11:31:19.337][hengshi@cluster1][hengshi-sense-bin:599][ INFO ]: internal pg metastore 10.10.10.xxx:54320
sudo: a password is required
 INIT FAIL! : [dependent packages]

为部署用户增加sudo权限

#使用具有sudo 权限用户或root用户
echo "hengshi ALL=(ALL)       NOPASSWD: ALL" >> /etc/sudoers

1.2.5. init engine 失败,重新初始化操作

 INIT FAIL! : [engine] /opt/hengshi/engine-cluster

初始化引擎失败后,排查失败原因后,重新初始化操作

cd /opt/hengshi
bin/hengshi-sense-bin stop engine
rm engine-cluster -rf
bin/hengshi-sense-bin init engine

1.2.6. Ubuntu 18.04 init eninge 失败

/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0 not found

Ubuntu 18.04默认环境中可能未安装python2.7的相关依赖库,安装相关依赖库后重新执行初始化操作

sudo apt install -y libpython2.7

1.3. 启动相关问题

1.3.1. 内核参数问题,导致启动引擎失败

[2023-05-06.03:39:33.960][hengshi@0c3eb9a1f944][hengshi-sense-bin:45][ INFO ]: starting engine
[2023-05-06.03:39:33.972][hengshi@0c3eb9a1f944][hengshi-sense-bin:811][ INFO ]: check resources needed if avaiable.
127.0.0.1 checkHostSysConfig fail! kernel.sem is not set properly, please check it manually in /etc/sysctl.conf and /etc/sysctl.d/*.conf
current sem: 250 32000 32 128, at least should be: '250 2018500 100 8074'
false

此错误信息出现问题肯能性存为

  • 未正确执行 init-os all 操作
      cd /opt/hengshi
      bin/hengshi-sense-bin init-os all
    
  • 正确执行init-os all 操作
      sudo su - hengshi ## 重新登录用户后,重新在家内核参数
      cd /opt/hengshi
      bin/hengshi-sense-bin start engine
    

1.3.2. 端口冲突,导致服务启动失败

[2023-05-06.03:51:22.860][hengshi@0c3eb9a1f944][hengshi-sense-bin:773][ ERROR ]: metadb port 54320 is not avaiable.
 Resrouces needed are not available, Abort!

上述实例表示为54320端口已经被使用,检查提示服务是否已经启动,如服务未启动,请修改配置文件中服务默认使用端口重新启动服务

1.3.3. jdk版本问题,导致hengshi服务启动失败

[2023-05-06.03:45:36.835][hengshi@0c3eb9a1f944][hengshi-sense-bin:1226][ ERROR ]: required: java >= 11.0.0

hengshi服务依赖jdk11版本,解决方式如下

  • 执行init-os all,程序会自动从互联网获取jdk-11资源
      cd /opt/hengshi
      bin/hengshi-sense-bin init-os all
    
  • 当部署环境为内网环境且无法连通互联网,可参考离线环境依赖组件准备

1.3.4. doris引擎启动失败

[2023-05-06.03:51:22.860][hengshi@0c3eb9a1f944][hengshi-sense-bin:773][ ERROR ]: please set DORIS_FE_HOSTS and DORIS_BE_HOSTS params

此问题参考Doris引擎配置

[2023-05-06.03:45:36.835][hengshi@0c3eb9a1f944][hengshi-sense-bin:1226][ ERROR ]:Doris engine is required by JDK-1.8

doris引擎服务依赖jdk-1。8版本,解决方式如下

  • 执行init-os all,程序会自动从互联网获取jdk-1.8资源
      cd /opt/hengshi
      bin/hengshi-sense-bin init-os all
    
  • 当部署环境为内网环境且无法连通互联网,可参考离线环境依赖组件准备

1.3.5. meatadb版本过低导致hengshi服务启动失败

[2023-05-11 18:50:15.162] [783213] [] [] [0] [] [1] [ERROR] [org.springframework.boot.SpringApplication] [821]  - Application run failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flywayInitializer' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Invocation of init method failed; nested exception is org.flywaydb.core.internal.license.FlywayEditionUpgradeRequiredException: Flyway Teams Edition or PostgreSQL upgrade required: PostgreSQL 9.6 is no longer supported by Flyway Community Edition, but still supported by Flyway Teams Edition.
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1804)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583)
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731)
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1303)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1292)
    at com.hengshi.nangaparbat.bootstrap.Bootstrap.main(Bootstrap.java:131)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:108)
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
    at org.springframework.boot.loader.PropertiesLauncher.main(PropertiesLauncher.java:467)
Caused by: org.flywaydb.core.internal.license.FlywayEditionUpgradeRequiredException: Flyway Teams Edition or PostgreSQL upgrade required: PostgreSQL 9.6 is no longer supported by Flyway Community Edition, but still supported by Flyway Teams Edition.
    at org.flywaydb.core.internal.database.base.Database.ensureDatabaseNotOlderThanOtherwiseRecommendUpgradeToFlywayEdition(Database.java:130)
    at org.flywaydb.core.internal.database.postgresql.PostgreSQLDatabase.ensureSupported(PostgreSQLDatabase.java:61)
    at org.flywaydb.core.FlywayExecutor.execute(FlywayExecutor.java:190)
    at org.flywaydb.core.Flyway.migrate(Flyway.java:124)
    at org.springframework.boot.autoconfigure.flyway.FlywayMigrationInitializer.afterPropertiesSet(FlywayMigrationInitializer.java:66)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800)
    ... 26 common frames omitted

此问题产生原因为,衡石服务不支持使用<10版本postgresql作为metadb服务 请参考数据库服务升级

1.3.6. syslog服务启动失败

/opt/hengshi/lib/syslog-ng/sbin/syslog-ng: relocation error: /opt/hengshi/lib/syslog-ng/lib/libresolv.so.2: symbol __h_errno, version GLIBC_PRIVATE not defined in file libc.so.6 with link time reference
  • 部署环境glibc版本过低。
    ### centos7.4 版本举例,glibc 升级到2.17-326.el7_9版本
    Installed Packages
    glibc.x86_64                                          2.17-196.el7                                            @CentOS
    Available Packages
    glibc.i686                                            2.17-326.el7_9                                          updates
    glibc.x86_64                                          2.17-326.el7_9                                          updates
    
  • 升级glibc后,重启syslog服务
    cd /opt/hengshi
    bin/hengshi-sense-bin start syslog
    

1.4. Oauth2 配置相关问题

1.4.1. ubuntu 18.04 证书问题导致 oauth2 配置失败问题

环境jdk版本为1.8 存在此问题

HttpCommunicationException:javax.net.ss1.SSLException: java.1ang.RuntimeException: Unexpected error: java.security. InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at sun. security.ssl.Alerts.getSSLException(Alerts.java:214) 
at sun.security.ss1.SSLSocketImp1.fatal(SSLSocketImp1.java:1958) 
at sun.security.ssl.SSLSocketImpl.fatal (SSLSocketImpl.java:1915)
at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImp1.java:1898) 
at sun.security.ss1. SSLSocketImpl.startHandshake(SSLSocketImpl.java:1419) 
at sun.security.ss1.SSLSocketImpl.startHandshake(SSLSocketImp1.java:1396) 
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:563)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDel egateHttpsURLConnection. java:185) at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1282)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1257)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImp1.java:250)
at com. gi thub.scribejava.core.httpclient.jdk.JDKHttpClient.prepareConnectionForBodyAndGetOutputStream(JDKHttpClient.java:224) at com. github.scribejava.core.httpclient. jdk.JDKHttpClient.addBody(JDKHttpClient. java:211)
at cmaithuh errihoiava coro httneliont idl TKH+tnliant aoce$100(TKH++n1iont iava·24)

执行下述命令,重新安装oauth2 配置是否成功

sudo apt-get install ca-certificates-java -y
sudo update-ca-certificates -f

results matching ""

    No results matching ""

    宝蓝德Webserver部署说明 系统管理员手册