Giter Club home page Giter Club logo

tianshiyeben / wgcloud Goto Github PK

View Code? Open in Web Editor NEW
4.4K 77.0 809.0 46.76 MB

Linux运维监控工具,支持系统硬件信息,内存,cpu,温度,磁盘空间及IO,硬盘smart,系统负载,网络流量等监控,服务接口,大屏展示,拓扑图,进程监控,端口监控,docker监控,文件防篡改,日志监控,数据可视化,web ssh,堡垒机,指令下发批量执行,Linux面板(探针),SNMP,故障告警

Home Page: http://www.wgstart.com

License: Apache License 2.0

Java 99.83% Less 0.16% Batchfile 0.01% Shell 0.01%
linux devops cpu memory sysstat monitoring-systems zabbix nagios prometheus springboot

wgcloud's Introduction

WGCLOUD

中文版README

Wgcloud design idea is a new generation of very simple operation and maintenance monitoring system, which advocates rapid deployment, reduces the difficulty of operation and maintenance learning, runs automatically, and has no template and script.

The current warehouse version is v2 3.7 for the latest secondary development, please pull the master branch.

Wgcloud is developed based on the microservice springboot architecture, and is a lightweight and high-performance distributed monitoring system. The core collection indexes include: CPU utilization, CPU temperature, memory utilization, disk capacity, disk IO, smart health status of hard disk, system load, number of connections, network card traffic, hardware system information, etc. Support the monitoring of process applications, files, ports, logs, docker containers, databases, data tables and other resources on the server. Support monitoring service interface API, data communication equipment (such as switch, router, printer), etc. Automatically generate network topology map, large screen visualization, web SSH (Fortress machine), statistical analysis chart, command issuance, batch execution, alarm information push (such as email, nail, wechat, SMS, etc.)

  1. V2.3.7 abandons the sigar method of v2.3.6 to obtain host indicators, and v2.3.7 uses popular oshi components to collect host indicators
  2. the server and client work together, which is lighter and more efficient, and can support thousands of hosts to monitor online at the same time.
  3. The server side is responsible for receiving data, processing data, and generating chart display. The agent side reports the index data every 30 seconds (time adjustable) by default.
  4. support the installation and deployment of mainstream server platforms, such as Linux, windows, MacOS, etc.
  5. Wgcloud adopts springboot+bootstrap to realize the distributed monitoring system perfectly, which is used to feed the open source community and open source for the second time.
  6. if you feel wggroup has helped you, you don't need to reward it, just click star to support it
  7. About sharing, the original intention of open source is to share learning. If you can, please add [wgcloud] on your blog and website (if any)WGCLOUDLink or write a post to share with others to help wgcloud learn and progress. Finally, if you like, you can send us your company name by email, and we will show it to the [thank you] column of wgcloud website.

site

http://www.wgstart.com

video

https://space.bilibili.com/549621501/video

Source code use

1.If you use idea (recommended), you can directly open wgcloud server and wgcloud agent. JDK uses 1.8

2.If you use eclipse, you can import the Maven project wgcloud server and wgcloud agent. JDK uses 1.8

3.Run the required SQL script (MySQL database is used in this project). Under the SQL folder, create the database wgcloud in MySQL database and import wgcloud.sql.

4. If you feel that wgcloud has helped you, please support www.wgstart.com. With your support, open source can do better. Thank you.

Demo

WGCLOUD监控主面板

WGCLOUD监控主机列表

WGCLOUD监控主机磁盘图表

WGCLOUD监控主机告警图表

WGCLOUD监控主机告警图表

WGCLOUD监控主机告警图表

WGCLOUD监控主机状态趋势图

WGCLOUD网络拓扑图

WGCLOUD主机画像图

WGCLOUD主机画像图

Example of communication diagram (HTTP protocol)

WGCLOUD通信图示例

Running environment

1.JDK1.8、JDK11

2.Mysql5.6 and above、MariaDB、PostgreSQL、Oracle

3.Support operating system platform

Support monitoring linux series: Debian, RedHat, CentOS, Ubuntu .....

support monitoring windows series: Windows Server 2008 R2 2012 , 2016 , 2019, Windows 7, Windows 8, windows 10 ,windows 11

support monitoring UNIX series: Solaris, FreeBSD, OpenBSD ......

support monitoring Mac OS series: Mac OS AMD64

EMAIL

[email protected]

SPONSORS

https://www.wgstart.com/docs19.html

wgcloud's People

Contributors

tianshiyeben avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wgcloud's Issues

企业微信机器人告警信息没有发送成功

大佬你好,我照你的脚本写了写:

#!/bin/bash
# -*- coding: utf-8 -*-

content=${@:1}
content=${content//\<font color=\'red\'\>/}
content=${content//\<\/font\>\<\/br\>/}

echo "告警信息 : $content"

wx() {
  local Msg="告警信息:$1"

   curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=**********************' \
   -H 'Content-Type: application/json' \
   -d '
   {
        "msgtype": "text",
        "text": {
            "content": "'${Msg}'"
        }
   }'
}

wx $content

这个发送到企业微信群里的告警,但是结果是

告警信息:

后面的具体告警信息没了。。

Convert into contributor

Pls tell me how can convert to contributor
I want to translate to es, de and it my languages domain strings in Json or other formatting and MD or RST file
And about docker images
Pls guide me in this matter

按教程部署了,没法启动,请问是什么原因?

java -jar wgcloud-server-release.jar

. ____ _ __ _ _
/\ / ' __ _ () __ __ _ \ \ \
( ( )_
_ | '_ | '| | ' / ` | \ \ \
\/ )| |)| | | | | || (| | ) ) ) )
' |
| .__|| ||| |_, | / / / /
=========|
|==============|/=////
:: Spring Boot :: (v2.3.12.RELEASE)

2022-03-03 17:20:56.190 INFO 11643 --- [ main] com.wgcloud.WgcloudServiceApplication : Starting WgcloudServiceApplication vrelease on cc with PID 11643 (/usr/local/wgcloud-v3.3.6/server/wgcloud-server-release.jar started by root in /usr/local/wgcloud-v3.3.6/server)
2022-03-03 17:20:56.196 INFO 11643 --- [ main] com.wgcloud.WgcloudServiceApplication : No active profile set, falling back to default profiles: default
2022-03-03 17:21:03.921 INFO 11643 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 9999 (http)
2022-03-03 17:21:03.997 INFO 11643 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2022-03-03 17:21:03.997 INFO 11643 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.46]
2022-03-03 17:21:04.322 INFO 11643 --- [ main] o.a.c.c.C.[.[localhost].[/wgcloud] : Initializing Spring embedded WebApplicationContext
2022-03-03 17:21:04.323 INFO 11643 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 7838 ms
Loading class com.mysql.jdbc.Driver'. This is deprecated. The new driver class is com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
2022-03-03 17:21:07.883 WARN 11643 --- [ main] com.zaxxer.hikari.HikariConfig : HikariPool-1 - idleTimeout has been set but has no effect because the pool is operating as a fixed size pool.
2022-03-03 17:21:07.899 INFO 11643 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2022-03-03 17:21:07.907 WARN 11643 --- [ main] com.zaxxer.hikari.util.DriverDataSource : Registered driver with driverClassName=com.mysql.jdbc.Driver was not found, trying direct instantiation.
2022-03-03 17:21:13.565 ERROR 11643 --- [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization.

java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)
at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:903)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828)
at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:453)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198)
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138)
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:358)
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206)
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:477)
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:560)
at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:115)
at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112)
at com.wgcloud.config.MyDatabaseIdProvider.getDatabaseId(MyDatabaseIdProvider.java:40)
at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:577)
at org.mybatis.spring.SqlSessionFactoryBean.afterPropertiesSet(SqlSessionFactoryBean.java:491)
at org.mybatis.spring.SqlSessionFactoryBean.getObject(SqlSessionFactoryBean.java:633)
at org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration.sqlSessionFactory(MybatisAutoConfiguration.java:179)
at org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration$$EnhancerBySpringCGLIB$$91a94936.CGLIB$sqlSessionFactory$1()
at org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration$$EnhancerBySpringCGLIB$$91a94936$$FastClassBySpringCGLIB$$b8e15ae6.invoke()
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331)
at org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration$$EnhancerBySpringCGLIB$$91a94936.sqlSessionFactory()
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:652)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:637)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1341)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1181)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:556)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1307)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1227)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1514)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1409)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1307)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1227)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1425)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1307)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1227)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1425)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:897)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:755)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:402)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:312)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1247)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1236)
at com.wgcloud.WgcloudServiceApplication.main(WgcloudServiceApplication.java:36)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
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.JarLauncher.main(JarLauncher.java:88)
Caused by: com.mysql.cj.exceptions.CJException: null, message from server: "Host 'cc.aheig.cc' is not allowed to connect to this MySQL server"
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:129)
at com.mysql.cj.protocol.a.NativeProtocol.rejectProtocol(NativeProtocol.java:373)
at com.mysql.cj.protocol.a.NativeProtocol.readServerCapabilities(NativeProtocol.java:502)
at com.mysql.cj.protocol.a.NativeProtocol.beforeHandshake(NativeProtocol.java:385)
at com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java:1351)
at com.mysql.cj.NativeSession.connect(NativeSession.java:157)
at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:847)
... 94 common frames omitted

2022-03-03 17:21:13.598 WARN 11643 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'agentDiskController': Unsatisfied dependency expressed through field 'dockerInfoService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'dockerInfoService': Unsatisfied dependency expressed through field 'dockerInfoMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'dockerInfoMapper' defined in URL [jar:file:/usr/local/wgcloud-v3.3.6/server/wgcloud-server-release.jar!/BOOT-INF/classes!/com/wgcloud/mapper/DockerInfoMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed getting a databaseId; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
2022-03-03 17:21:13.629 INFO 11643 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat]
2022-03-03 17:21:13.680 INFO 11643 --- [ main] ConditionEvaluationReportLoggingListener :

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2022-03-03 17:21:13.779 ERROR 11643 --- [ main] o.s.boot.SpringApplication : Application run failed

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'agentDiskController': Unsatisfied dependency expressed through field 'dockerInfoService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'dockerInfoService': Unsatisfied dependency expressed through field 'dockerInfoMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'dockerInfoMapper' defined in URL [jar:file:/usr/local/wgcloud-v3.3.6/server/wgcloud-server-release.jar!/BOOT-INF/classes!/com/wgcloud/mapper/DockerInfoMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed getting a databaseId; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:660)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1425)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:897)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:755)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:402)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:312)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1247)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1236)
at com.wgcloud.WgcloudServiceApplication.main(WgcloudServiceApplication.java:36)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
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.JarLauncher.main(JarLauncher.java:88)
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'dockerInfoService': Unsatisfied dependency expressed through field 'dockerInfoMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'dockerInfoMapper' defined in URL [jar:file:/usr/local/wgcloud-v3.3.6/server/wgcloud-server-release.jar!/BOOT-INF/classes!/com/wgcloud/mapper/DockerInfoMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed getting a databaseId; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:660)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1425)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1307)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1227)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657)
... 29 common frames omitted
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'dockerInfoMapper' defined in URL [jar:file:/usr/local/wgcloud-v3.3.6/server/wgcloud-server-release.jar!/BOOT-INF/classes!/com/wgcloud/mapper/DockerInfoMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed getting a databaseId; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1529)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1409)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1307)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1227)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657)
... 43 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed getting a databaseId; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:657)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:637)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1341)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1181)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:556)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1307)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1227)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1514)
... 54 common frames omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed getting a databaseId; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:652)
... 67 common frames omitted
Caused by: org.springframework.core.NestedIOException: Failed getting a databaseId; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:579)
at org.mybatis.spring.SqlSessionFactoryBean.afterPropertiesSet(SqlSessionFactoryBean.java:491)
at org.mybatis.spring.SqlSessionFactoryBean.getObject(SqlSessionFactoryBean.java:633)
at org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration.sqlSessionFactory(MybatisAutoConfiguration.java:179)
at org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration$$EnhancerBySpringCGLIB$$91a94936.CGLIB$sqlSessionFactory$1()
at org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration$$EnhancerBySpringCGLIB$$91a94936$$FastClassBySpringCGLIB$$b8e15ae6.invoke()
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331)
at org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration$$EnhancerBySpringCGLIB$$91a94936.sqlSessionFactory()
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
... 68 common frames omitted
Caused by: java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)
at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:903)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828)
at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:453)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198)
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138)
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:358)
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206)
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:477)
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:560)
at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:115)
at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112)
at com.wgcloud.config.MyDatabaseIdProvider.getDatabaseId(MyDatabaseIdProvider.java:40)
at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:577)
... 81 common frames omitted
Caused by: com.mysql.cj.exceptions.CJException: null, message from server: "Host 'cc.aheig.cc' is not allowed to connect to this MySQL server"
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:129)
at com.mysql.cj.protocol.a.NativeProtocol.rejectProtocol(NativeProtocol.java:373)
at com.mysql.cj.protocol.a.NativeProtocol.readServerCapabilities(NativeProtocol.java:502)
at com.mysql.cj.protocol.a.NativeProtocol.beforeHandshake(NativeProtocol.java:385)
at com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java:1351)
at com.mysql.cj.NativeSession.connect(NativeSession.java:157)
at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:847)
... 94 common frames omitted

你好,免费版本能监控多少台服务器?

    你好,开源版本没有限制服务器台数

---原始邮件---
发件人: @.>
发送时间: 2022年10月16日(周日) 下午5:21
收件人: @.
>;
抄送: @.***>;
主题: [tianshiyeben/wgcloud] 开源的支持监控多少台服务器? (Issue #66)

开源的支持监控多少台服务器


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

Originally posted by @tianshiyeben in #66 (comment)

无法监测docker容器

docker name/id 都试过,均无法正常监测

查看agent日志,并没有报 [GetDockerApiContainerList err: Error response from daemon: client version 1.41 is too new. Maximum supported API version is 1.40] 相关错误

也根据上述描述,在 /etc/profile 文件加入 export DOCKER_API_VERSION=1.40 ,刷新之后依旧不起作用(agent也已重启)

wgcloud server端 docker列表处,所有容器内存使用显示-1M

agent日志:
[wgcloud-agent]2023/02/03 10:13:00 WgcloudAgent.go:313: 请求server监控端口返回结果:{"msg":"","code":"0","data":[]}
[wgcloud-agent]2023/02/03 10:13:00 WgcloudAgent.go:315: 请求server监控日志返回结果:{"msg":"","code":"0","data":[]}
[wgcloud-agent]2023/02/03 10:13:00 WgcloudAgent.go:317: 请求server文件防篡改监测信息返回结果:{"msg":"","code":"0","data":[]}
[wgcloud-agent]2023/02/03 10:13:00 shellInfo.go:64: 请求server下发指令返回结果:{"msg":"","code":"0","data":[]}
[wgcloud-agent]2023/02/03 10:13:00 WgcloudAgent.go:320: 请求server自定义监控项信息返回结果:{"msg":"","code":"0","data":[]}
[wgcloud-agent]2023/02/03 10:13:00 hostUtil.go:211: 获取docker mem信息错误: open /sys/fs/cgroup/memory/system.slice/docker-49bd462cedd7a2e7a09ce21691b4b8a7de49860ed2f549bdd31655ea8d7938f8.scope/memory.stat: no such file or directory
[wgcloud-agent]2023/02/03 10:13:00 dockerUtil.go:130: containerId:49bd462cedd7a2e7a09ce21691b4b8a7de49860ed2f549bdd31655ea8d7938f8,dockerState:{"portStr":"","image":"","command":"","created":"","sizeRootFs":0,"memToM":-1,"status":"","appType":"1","names":"","containerState":"Exited"}
[wgcloud-agent]2023/02/03 10:13:00 hostUtil.go:211: 获取docker mem信息错误: open /sys/fs/cgroup/memory/system.slice/docker-002b64faadcb805f78396d0cfd125375b326d1b2fa20e2af946eb70bc4fe9c77.scope/memory.stat: no such file or directory
[wgcloud-agent]2023/02/03 10:13:00 dockerUtil.go:130: containerId:002b64faadcb805f78396d0cfd125375b326d1b2fa20e2af946eb70bc4fe9c77,dockerState:{"portStr":"","image":"","command":"","created":"","sizeRootFs":0,"memToM":-1,"status":"","appType":"1","names":"","containerState":"Exited"}
[wgcloud-agent]2023/02/03 10:13:00 hostUtil.go:211: 获取docker mem信息错误: open /sys/fs/cgroup/memory/system.slice/docker-2d5dab765fffb3e1327ca08d69f4cfc1559f7295f389119bf932381c4aaab4f8.scope/memory.stat: no such file or directory
[wgcloud-agent]2023/02/03 10:13:00 dockerUtil.go:130: containerId:2d5dab765fffb3e1327ca08d69f4cfc1559f7295f389119bf932381c4aaab4f8,dockerState:{"portStr":"","image":"","command":"","created":"","sizeRootFs":0,"memToM":-1,"status":"","appType":"1","names":"","containerState":"Exited"}
[wgcloud-agent]2023/02/03 10:13:00 hostUtil.go:211: 获取docker mem信息错误: open /sys/fs/cgroup/memory/system.slice/docker-1a2dc1a3221f45ce9a4691d983f9499dd783c2fcfbb094e936807f6e5cfae02f.scope/memory.stat: no such file or directory
[wgcloud-agent]2023/02/03 10:13:00 dockerUtil.go:130: containerId:1a2dc1a3221f45ce9a4691d983f9499dd783c2fcfbb094e936807f6e5cfae02f,dockerState:{"portStr":"","image":"","command":"","created":"","sizeRootFs":0,"memToM":-1,"status":"","appType":"1","names":"","containerState":"Exited"}

Memory usage is not correct.

The correct memory usage:

image

displayed in wgcloud:

image

I think there maybe a more reasonable method to calculate memory usage like this with formula:

Memory Utilization (%) = 100 -(((MemFree + Buffers + Cached)*100)/maxValue)

not simply 1 - free/total, which scared me.

代码有些地方不完美帮你修改了一下

public static String doCommond(Connection conn, String cmd) {
String result = "";

    if (conn == null) {
        System.out.println("请先链接服务器");
    } else {
        Session sess = null;
        try {
            sess = conn.openSession();
            sess.execCommand(cmd);
            try (BufferedReader stdoutReader = new BufferedReader(new InputStreamReader(new StreamGobbler(sess.getStdout())));) {
                while (true) {
                    String line = stdoutReader.readLine();
                    if (line == null) {
                        break;
                    }
                    result += line + StaticKeys.SPLIT_BR;
                }
            }
        } catch (IOException e) {
            System.out.println("执行linux命令错误:" + e);
        } finally {
            if (sess != null) {
                sess.close();
            }
        }
    }
    
    if (result.endsWith(StaticKeys.SPLIT_BR)) {
        result = result.substring(0, result.length() - StaticKeys.SPLIT_BR.length());
    }
    
    if (!StringUtils.isEmpty(result)) {
        if (cmd.contains("DEV") || cmd.contains("iostat")) {
            if (result.contains("</br></br>")) {
                result = result.substring(result.lastIndexOf("</br></br>") + 10);
            }
        }
        if (cmd.contains("mpstat")) {
            if (result.contains("</br></br>")) {
                result = result.substring(result.lastIndexOf("</br></br>") + 10);
                int s = result.indexOf("</br>") + 5;
                s = result.indexOf("</br>", s);
                result = result.substring(0, s);
            }
        }
    }
    
    return result;
}

你之前的代码如果抛异常的话连接和BufferReader是关闭不了的

Who to contact for security issues

Hey there!

I belong to an open source security research community, and a member (@hi-unc1e) has found an issue, but doesn’t know the best way to disclose it.

If not a hassle, might you kindly add a SECURITY.md file with an email, or another contact method? GitHub recommends this best practice to ensure security issues are responsibly disclosed, and it would serve as a simple instruction for security researchers in the future.

Thank you for your consideration, and I look forward to hearing from you!

(cc @huntr-helper)

请问有支持webhook 功能吗

请问有支持webhook 功能吗?能不能支持钉钉 告警和微信告警 目前用的是3.4.0 版本 后台看了一圈没有发现这个功能,好像只有邮箱告警

进程管理

能否在添加监控进程时采用关键字搜索的方式

能不能支持一些自定义的操作?

能不能支持一些自定义的操作?
比如我要监测某个FTP是否是开启的。
或者我要监测某个文件夹大小是不是超过了给定的上限。
或者监测某个文件夹下是不是收到了每天的一个文件。
脚本可以在客户机写好,返回的格式可以按一定的格式规定好。

添加文件防篡改监控报错 403

image
当我监控 tomcat 文件夹下的文件时,网页提示非法操作 403,但这几个目录和下属文件权限都是一致的,org 和 static 目录下的可以监控,其它两个文件夹监控提示 403。请问这种问题该怎么解决呢?

监控docker失败

尝试用了ID和NAME两种方式, 都获取不到容器, 只会隔一段时间提示"docker可能已经下线", 实际容器在正常运行.
目前agent运行在部署可docker的主机上, 不知道是什么地方配置出问题了

获取主机温度失败

日志里看到的

hostUtil.go:75: GetHostTemperatures err: Number of warnings: 1

系统:

Ubuntu 20.04.1 LTS
CPU model name	: AMD Ryzen 7 5800X 8-Core Processor

对于Wgcloud的几个疑问?

十分感谢作者,开源这个项目,给我的帮助很大,但是有一些疑问,请指教。

我目前需要实现几个功能:

  • 指定子网,自动发现网络设备,并且画出网络拓扑图,类似于我指定一个网段,自动发现这个网段下的设备,以及自动画出此网段的网络拓扑图。(能发现对应的网络设备,如交换机,路由器等等)
  • 实现对主机信息的自动采集(cpu、网络接口、磁盘等等信息,并且支持多种操作系统)

在演示的界面中我只发现了主机拓扑,主机拓扑的发现应该是通过agent实现,它描述的仅仅是Server和监控的主机之间的关联。目前wgcloud是否暂时不能满足我的需求?

  • 对于主机信息的采集,我大概了解的几种方案:
    • Prometheus
    • SSH
    • SNMP
    • Agent

基于Prometheus对主机进行采集的方式

通过Prometheus进行监控主机信息,需要在对应的主机安装node-exporter,但是node-exporter本身支持的指标十分有限,大都都是监控信息,并不能满足现有的需求,虽然它可以通过--collector.textfile.directory指定从本地磁盘获取监控数据,再定义脚本获取对应的指标定时更新磁盘,从而实现对主机信息的采集。但是这种方式依赖Prometheus和node-exporter的安装,并且还需要自定义脚本,过于麻烦。

基于SSH对主机进行采集的方式

定义对应的脚本,然后通过SSH的方式对主机进行监控,目前我了解的开源监控系统中,Zabbix支持这种方式,通过SSH对目标主机进行采集。但是需要对不同的操作系统进行兼容。

基于SNMP对主机进行采集的方式

在对应的主机安装SNMP服务,SNMP服务是十分轻量级的,然后Server通过SNMP协议对目标主机进行采集。

基于Agent对主机进行采集的方式

基于JAVA开发

通过Agent对服务器进行采集,因为考虑到技术栈的原因,目前只能使用Java进行开发。

  • JDK自带的库
    获取信息不够全面,不能满足现有需求。
  • Sigar库
    底层基于JNI,需要在不同的操作系统下引入不同的DLL库,侵入性较高,并且从16年已经没有更新记录,停止维护。
  • OSHI库
    OSHI 是一个免费的基于 JNA(本机)的 Java 操作系统和硬件信息库。它不需要安装任何额外的本地库,旨在提供跨平台实现来检索系统信息,例如操作系统版本、进程、内存和 CPU 使用率、磁盘和分区、设备、传感器等。支持Windows • Linux • macOS • Unix(AIX、FreeBSD、OpenBSD、Solaris)系统,社区活跃。
基于GO开发

我对JAVA更加熟悉,我的理解是使用GO能获取到的指标,使用JAVA应该也能获取到,可能区别就是性能上的差距,以及JAVA需要依赖JDK。我的理解对吗?

基于上述的描述,如果我理解的没有的话,我打算采用两种方案进行开发对主机信息的采集:

  • 自主开发Agent:使用JAVA语言,采用OSHI库
  • 基于SNMP

您对我有什么建议吗?

为什么使用Java做监控

你不觉用Java做监控不是很占资源吗,还有安装也不是很方便吧,每台机器都得安装jdk,还有如果是不使用docker部署项目的,还得考虑jdk兼容问题吧,监控系统建议使用C、C++、golang等这些语言更好,不用安装特定环境,server倒是无所谓

server log 错误

打开server 端的日志后,里面一直重复再报这个错误,
环境:CentOS 7.5
版本: wgcloud-v3.0

server log:

2020-06-04 17:06:39.510 [taskScheduler-29] INFO com.wgcloud.task.ScheduledTask - 批量提交监控数据任务开始----------2020-06-04 17:06:39
2020-06-04 17:06:39.628 [taskScheduler-29] INFO com.wgcloud.task.ScheduledTask - 批量提交监控数据任务结束----------2020-06-04 17:06:39
2020-06-04 17:06:54.932 [http-nio-9999-exec-1] INFO com.wgcloud.filter.AuthRestFilter - uri----http://172.17.202.174:9999/wgcloud/agentGo/minTask
2020-06-04 17:07:18.975 [http-nio-9999-exec-9] INFO com.wgcloud.filter.AuthRestFilter - uri----http://172.17.202.174:9999/wgcloud/agentGo/minTask
2020-06-04 17:07:18.977 [http-nio-9999-exec-9] ERROR o.a.c.c.C.[.[.[/wgcloud].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/wgcloud] threw exception [Request processing failed; nested exception is cn.hutool.json.JSONException: A JSONArray text must start with '[' at 1 [character 2 line 1]] with root cause
cn.hutool.json.JSONException: A JSONArray text must start with '[' at 1 [character 2 line 1]
at cn.hutool.json.JSONTokener.syntaxError(JSONTokener.java:373)
at cn.hutool.json.JSONArray.init(JSONArray.java:598)
at cn.hutool.json.JSONArray.init(JSONArray.java:587)
at cn.hutool.json.JSONArray.init(JSONArray.java:562)
at cn.hutool.json.JSONArray.(JSONArray.java:154)
at cn.hutool.json.JSONArray.(JSONArray.java:135)
at cn.hutool.json.JSONGetter.getJSONArray(JSONGetter.java:63)
at com.wgcloud.controller.AgentGoController.minTask(AgentGoController.java:75)
at sun.reflect.GeneratedMethodAccessor155.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:189)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:908)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.wgcloud.filter.AuthRestFilter.doFilter(AuthRestFilter.java:48)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:200)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
2020-06-04 17:07:29.509 [taskScheduler-40] INFO com.wgcloud.task.ScheduledTask - heathMonitorTask------------2020-06-04 17:07:29
2020-06-04 17:07:35.945 [http-nio-9999-exec-5] INFO com.wgcloud.filter.AuthRestFilter - uri----http://172.17.202.174:9999/wgcloud/agentGo/minTask
2020-06-04 17:07:36.920 [http-nio-9999-exec-8] INFO com.wgcloud.filter.AuthRestFilter - uri----http://172.17.202.174:9999/wgcloud/appInfo/agentList
2020-06-04 17:07:36.947 [http-nio-9999-exec-6] INFO com.wgcloud.filter.AuthRestFilter - uri----http://172.17.202.174:9999/wgcloud/dockerInfo/agentList

防篡改校验失败,所有服务都不再上报数据了

[wgcloud-agent]2022/07/19 10:08:56 WgcloudAgent.go:429: 防篡改校验失败: 16
[wgcloud-agent]2022/07/19 10:09:09 WgcloudAgent.go:287: 防篡改校验错误次数大于10次,不再上报数据: 16
[wgcloud-agent]2022/07/19 10:13:11 WgcloudAgent.go:287: 防篡改校验错误次数大于10次,不再上报数据: 16
[wgcloud-agent]2022/07/19 10:14:11 WgcloudAgent.go:287: 防篡改校验错误次数大于10次,不再上报数据: 16

Exception in thread "Timer-0" java.lang.NoClassDefFoundError: net/sf/jsqlparser/expression/Alias

Exception in thread "Timer-0" java.lang.NoClassDefFoundError: net/sf/jsqlparser/expression/Alias
at com.github.pagehelper.parser.CountSqlParser.(CountSqlParser.java:137)
at com.github.pagehelper.PageHelper.setProperties(PageHelper.java:134)
at com.github.pagehelper.PageInterceptor.setProperties(PageInterceptor.java:172)
at com.github.pagehelper.PageInterceptor.checkDialectExists(PageInterceptor.java:125)
at com.github.pagehelper.PageInterceptor.intercept(PageInterceptor.java:89)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
at com.sun.proxy.$Proxy41.query(Unknown Source)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)
at com.sun.proxy.$Proxy18.selectList(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:230)
at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:139)
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:76)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)
at com.sun.proxy.$Proxy19.selectAllByParams(Unknown Source)
at com.core.timer.impl.MonitorDayJobImpl.timingTask(MonitorDayJobImpl.java:73)
at com.core.timer.impl.MonitorDayJobImpl.run(MonitorDayJobImpl.java:48)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
Caused by: java.lang.ClassNotFoundException: net.sf.jsqlparser.expression.Alias
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1285)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119)
... 24 more

及时我加了依赖,也不行,不知道什么该如何处理

net.sf.jsqlparser
jsqlparser
0.8.0

无法监控集群系统里的挂载点

image
image
如图,我试图监控一个集群系统(有多个可登录节点)里的我的可用储存容量(/public这个挂载点),但是wgcloud只获取到了我部署agent的那个节点的/,/boot

dns的问题?

这个程序会自己添加一个DNS服务器吗?我看到/etc/resolv.conf里多个一个

nameserver 127.0.0.53

有时候上报失败了,是在这个server上的。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.