Open Monitor is a server infrastructure tool used to monitor server instances.
Clone the repo, and follow the instructions below
git clone https://github.com/Open-Monitor/dmon.git
cd dmon/
To start, please first by downloading docker on your respectful system. After docker is installed, run ./docker-elastic-build.sh
in your terminal. After, elastic search should be successfully dockerized.
Before starting the host monitor service, please have an elastic search instance running.
To run the host monitor, please ensure that nodeJs is installed on your machine. After, run npm i
to install all of the dependencies required to run the service, then npm start
to start the service.
After elastic search and the host-monitor is running, install the client-monitor on the target server.
Edit config.js with the IP address of the target host-server, and run ./client
, or nohup ./client &
to run the service in the background without ssh interruption.
The client-monitor was compiled on Ubuntu 18.04, and some older versions of Ubuntu 16.04 will require libstdc++ version GLIBCXX_3.4.22 which can be installed by following the instructions here.
To run on your local machine, start by cloning the repo and getting the host-monitor and web server running. If you followed the instructions above you should begin to see information populating on localhost:3000.
cd /host-monitor
npm i && npm start
cd /dmon-web
npm i && npm start
Next you want to start the client-monitor.
cd metrics-agent/
./client
You should begin to see the web-server receiving information, and graphs will begin to populate.
Follow the same instructions as above, except you will need to change the IPs in the relevant config files. The metrics-agent should contain the public IP:PORT of the target host-monitor.
The host-monitor's IP should be it's local IP. You may need to configure your network with port-forwarding.
You may run into some issues with getting three different services set up.
- If all the services started without failure but the client is printing "Stream rpc failed" it typically means there is an issue with the IP addresses of the client and host-monitor.
- If you are running both services on a local device. Make sure the ip's are
localhost:50486
and port 50486 is open. - If you are running the host-service on your local device and the ./client on an external machine. Please check the section above. It is important that you have opened and forwared a port in your router configuration. The port-forwarding rule should take your public IP -> computer's local IP. The client's configuration should contain your host-monitor's public IP and open Port.
- If you are running both services on a local device. Make sure the ip's are
- The host-monitor, or web-client are failing to start.
- The most common issue is missing dependencies, remember to run
npm i
in in their respective folders.
- The most common issue is missing dependencies, remember to run
- The ./client is missing XX library.
- Most of the libraries that are required are statically linked (grpc, protobufs, pthread) but you system may be missing some. Look up information regarding installing the specifc library. If all else fails, please open an issue.
If non of the above are related to your issue, feel free to open an issue.
View deployment model here
Contributions are greatly encouraged. Please make a pull-request.