---
url: /v6.2/startup-faq.md
---
# HENGSHI SENSE 启动常见问题

## 启动相关问题

### 内核参数问题，导致启动引擎失败

```text
[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 操作
* 执行 init-os all 成功，但未按提示重新登录 shell 以刷新配置

  ```shell
  cd /opt/hengshi
  bin/hengshi-sense-bin init-os all
  # 然后需要重新登录 shell 以刷新配置
  ```

### 端口冲突，导致服务启动失败

```text
[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. 使用该端口的服务已经启动
2. 该端口被其他进程占用，可以修改衡石对应服务的端口，使用空闲端口启动。以下命令可以查看端口被哪个程序占用

```shell
netstat -nlp | grep <PORT>
```

### jdk 版本问题，导致 hengshi 服务启动失败

```text
[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资源

  ```shell
  cd /opt/hengshi
  bin/hengshi-sense-bin init-os all
  ```

* 当部署环境为内网环境且无法连通互联网，可参考[离线环境依赖组件准备](install-dependencies-offline.md)

### doris 引擎启动失败

1. 配置缺失

```text
[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 引擎配置](engine-doris-config.md#注意事项)

1. jdk 版本不满足依赖

```text
[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资源

  ```shell
  cd /opt/hengshi
  bin/hengshi-sense-bin init-os all
  ```

* 当部署环境为内网环境且无法连通互联网，可参考[离线环境依赖组件准备](install-dependencies-offline.md)

### metadb 版本过低导致 hengshi 服务启动失败

```text
[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 服务
请参考[数据库服务升级](metadb-upgrade.md)

### syslog 服务启动失败

```text
/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 版本过低。

  ```text
  ### 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 服务

  ```shell
  cd /opt/hengshi
  bin/hengshi-sense-bin start syslog
  ```

### monit 服务启动问题

启动成功但报错error while loading shared libraries: libnsl.so.1: cannot open shared object file: No such file or directory

hengshi所安装的系统基础库版本较高，新版本中libnsl不再作为系统核心库默认安装。可手动安装兼容库

```bash
# yum
sudo yum install libnsl -y
# apt
sudo apt-get update
sudo apt-get install libnsl2
```
