CloudHub is a totally designed system that lets you monitor and manage the availability of something like servers, applications, virtual machines, Kubernetes, and so on. And this is another branch of an open-source web application derived from Influxdata's Chronograf written in Go and React.js that provides the tools to visualize your monitoring data and easily create alerting and automation rules.
Therefore, CloudHub has been enhanced by adding our direction, such as automation of configuration management(via SaltStack Rest API) and monitoring the systems or applications over several Clouds.
CloudHub has been started with Chronograf version 1.7.11.
As we follow on using guides like the way of TICK Script or Flux queries, for more informations of the basic common features between Chronograf 1.7.11 and CloudHub refer to the following link.
Github for chronograf
Documentation for TICK Stack
But you should use Forked Snetsystems/telegraf
For running this project, maybe, you should get the environment for test data and composition like telegraf, kapacity and influxdb (but not need chronograf).
This Sandbox provided by sysnetsystems will help to do.
Download snetsystems/sandbox
For the agent management or vsphere, k8s inventory viewer test, you prepare to Salt master, api, minion.
You should use Forked Snetsystems/salt
Documentation for SaltStack
Documentation for CloudHub Guide (Korean)
- Add a Basic(id/pw) authentication and management feature.
- Regarding to above, an activity log is added.
- Add multi-tenant feature across Users-Roles-Groups-DataSources.
- Hosts to Infrastructures and basic charts added.
- Infrastructure Topology Map authoring feature by user group.
- Status Overview of entire nodes(About CPU Temperature, CPU Memory, Disk usage, etc.).
- Show IPMI Sensor Data.
- Addable to connect to Public Cloud(AWS, GCE).
- Visualization added by criteria of Applications.
- Integration a backend with SaltStack.
- Avoid CORS Problem:
Web UI > CloudHub Salt Proxy > Salt API Server > Salt Master > Salt Minions.
- Telegraf agent management and configuration editing and deploying remotely via SaltStack Rest API.
- Avoid CORS Problem:
- Web SSH Terminal Console feature.
- Connection to hosts using ssh protocol via CloudHub WebSocket Proxy.
- Add Statistic graphs for data visualization.
- Optionable Addon features.
- VMWare Infrastructure Viewer.
- via VSphere API and Salt
- _OpenStack Infrastructure__ Monitoring.
- K8s Infrastructure Diagram & Viewer.
- via customized
Salt Kuberetes
Module.
- via customized
- AWS Instances Monitoring.
- GCE Instances Monitoring.
- SWAN Router & SDPlex(Oncue) Features.
- Bare-metal Server Remote Management via IPMI
- VMWare Infrastructure Viewer.
You could know the changelog by versions via the follows.
Version <= v1.2.0: Projects(Legacy)
Version >= v1.3.0: Projects(Newly)
- Add the followings into User Setting or Workspace Setting.
{
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
"terminal.integrated.rightClickBehavior": "default",
"terminal.explorerKind": "external",
"terminal.integrated.copyOnSelection": true,
"terminal.integrated.scrollback": 10000,
"breadcrumbs.enabled": true,
"editor.renderControlCharacters": true,
"editor.largeFileOptimizations": false,
"editor.formatOnSave": true,
"editor.renderWhitespace": "none",
"editor.wordWrap": "on",
"workbench.startupEditor": "newUntitledFile",
"explorer.confirmDelete": false,
"explorer.confirmDragAndDrop": false,
"files.eol": "\n",
"go.formatTool": "goimports",
"go.lintOnSave": "package",
"go.autocompleteUnimportedPackages": true,
"prettier.singleQuote": true,
"prettier.bracketSpacing": false,
"prettier.semi": false,
"prettier.trailingComma": "es5",
"prettier.arrowParens": "avoid",
"eslint.alwaysShowStatus": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"files.associations": {
"*.yml": "yaml"
},
"window.zoomLevel": 0,
"gitlens.views.repositories.files.layout": "tree",
"git.ignoreLegacyWarning": true,
"screencastMode.onlyKeyboardShortcuts": true,
"diffEditor.ignoreTrimWhitespace": false,
"workbench.sideBar.location": "left"
}
- CloudHub works with go 1.21.x, node 12.x ~ node 14.x, and yarn 1.15.x ~ 1.22.x. Thus, you have to install that according to each offcial guide.
- Yarn install example:
$ npm install --global yarn@1.22.18
- Yarn install example:
- Install protoc(protocol buffer compiler)
- Download here proper package.
- Unzip and then add
bin/protoc
orbin/protoc.exe
to $PATH env. or simply put into$GOPATH/bin
or$GOROOT/bin/
diretory.
- In the case of Windows, it cannot be invoked "make" command,
So you need to download and install GNUMake for windows.
[If you're on Windows, run "Git Bash" and] type the followings.
# If you're on Windows, run "Git Bash" and type the followings.
$ git clone https://github.com/snetsystems/cloudhub.git
$ cd cloudhub
$ make
If well done, you can see the binary.
$ cd backend/cmd/cloudhub
$ ls -l
total 28072
...
-rwxr-xr-x 1 Snetsystems 197121 28610048 Jul 15 09:09 cloudhub
Once run cloudhub, 8888 port will be listened.
$ ./cloudhub
You can see the CloudHub UI via browser: http://localhost:8888
Run "cloudhub.code-workspace" within cloudhub folder.
$ code cloudhub.code-workspace
Simply, select "Launch Server" and then run.
Also, for UI debugging, select "Launch Chrome" and then run debug.
For continuous debugging, you can use "Launch Chrome" after yarn start
[Note] On Windows, you have to use "Launch Chrome" after yarn start
[Note]
For continuous debugging, you need to add develop mode into the running argument.
We already prepared ".vscode/launch.json" and ".vscode/settings.json"
- Using GO111MODULE.
- Not need a vendor directory anymore.
- Snetsystems Github login setting as a default.
- You need to change to the Github's keys of your organization.
- If you don't need to login, get rid of the login information.
... "args": [ "-l=debug", "-d" "-c=./cloudhub-canned/", "--protoboards-path=./cloudhub-protoboards/", "--auth-duration=0", "-t=74c1e9e245088f060b5bff36b935cd0bf2976d35", "--github-client-id=c170bbdbc5cb2ea8f6d3", "--github-client-secret=55c35715b0e4eebab7edbdeef3081bf890e79d22" ], ...
If you run a not login mode, you can use "Launch Chrome via Proxy" after yarn start
$ cd $CloudHub_PATH/frontend
$ yarn start
yarn run v1.15.2
$ node parcel.jsx
Serving on http://localhost:8080
√ Built in 7.54s.