Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mephux/envdb
LEGACY use https://github.com/mephux/kolide -- Envdb - Ask your environment questions with osquery.
https://github.com/mephux/envdb
Last synced: 3 months ago
JSON representation
LEGACY use https://github.com/mephux/kolide -- Envdb - Ask your environment questions with osquery.
- Host: GitHub
- URL: https://github.com/mephux/envdb
- Owner: djcas9
- License: apache-2.0
- Archived: true
- Created: 2015-04-01T20:51:40.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2016-05-08T23:55:18.000Z (over 8 years ago)
- Last Synced: 2024-05-22T19:09:27.742Z (6 months ago)
- Language: JavaScript
- Homepage:
- Size: 41.4 MB
- Stars: 520
- Watchers: 26
- Forks: 31
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-incident-response - Envdb - Envdb turns your production, dev, cloud, etc environments into a database cluster you can search using osquery as the foundation. It wraps the osquery process with a (cluster) node agent that can communicate back to a central location. (IR tools Collection / All in one Tools)
README
!!!!!!!!!!!!!!!!!! LEGACY use https://github.com/mephux/kolide
# Envdb - Environment Database
* NOTE: envdb is still beta software.
Envdb turns your production, dev, cloud, etc environments into a database
cluster you can search using [osquery](https://github.com/facebook/osquery) as the foundation.Envdb allows you to register each computer, server or asset as a node in a cluster. Once a new
node is connected it becomes available for search from the Envdb ui.
Envdb was built using golang so the whole application, node client and server comes as one single binary.
This makes it really easy to deploy and get working in seconds.Video Intro: [https://youtu.be/ydYr7Ykwzy8](https://youtu.be/ydYr7Ykwzy8)
## How it works.
Envdb wraps the osquery process with a node agent (node as in cluster node) that can communicate back to a central location.
When that node gets a new query, it's executed and then sent back to the tcp server for rendering. Once the
request is processed it's then sent to any avaliable web clients using websockets.Envdb has an embedded sqlite database for node storage and saved searches.
ui --websockets--> server --tcp--> node client.
## Download
Pre-built versions (deb/tar.gz) of envdb are avaliable for linux 386/amd64.
[linux downloads](https://github.com/mephux/envdb/releases)Building on macosx is easy tho, checkout the section below.
## Building
Make sure you have Go installed. I used Go version 1.4.1.
#### deps
* `go get github.com/jteeuwen/go-bindata/...`
* `go get github.com/elazarl/go-bindata-assetfs`#### make
* `git clone https://github.com/mephux/envdb.git`
* `cd envdb`
* `make`## Usage
* **NOTICE**: The default username and password for the UI.
* username: **[email protected]**
* password: **envdb**```
usage: envdb [] [] [ ...]The Environment Database - Ask your environment questions
Flags:
--help Show help.
--debug Enable debug logging.
--dev Enable dev mode. (read assets from disk and
enable debug output)
-q, --quiet Remove all output logging.
--version Show application version.Commands:
help []
Show help for a command.server []
Start the tcp server for node connections.node --server=127.0.0.1 []
Register a new node.users []
User Management (Default lists all users).
```#### Server
```
$ envdb help serverusage: envdb [] server [] []
Start the tcp server for node connections.
Flags:
-p, --port=3636 Port for the server to listen on.
-P, --http-port=8080
Port for the web server to listen on.Args:
[] Daemon command. (start,status,stop)
```Running the server without a `command` (start, stop or status) will run the server in the foreground.
* Note: By default this will start the tcp server on port 3636 and the web server on port 8080.
#### Node Client
```
$ envdb help nodeusage: envdb [] node --server=127.0.0.1 []
Register a new node.
Flags:
-s, --server=127.0.0.1
Address for server to connect to.
-p, --port=PORT Port to use for connection.Args:
A name used to uniquely identify this node.
````sudo envdb node --server SomeBoxName`
* That's it - it's really that simple.
#### User Management
* list users
`envdb users`* add a new user
`envdb users --add`* remove a new user
`envdb users --remove `## More UI
## Self-Promotion
Like envdb? Follow the repository on
[GitHub](https://github.com/mephux/envdb) and if
you would like to stalk me, follow [mephux](http://dweb.io/) on
[Twitter](http://twitter.com/mephux) and
[GitHub](https://github.com/mephux).## TODO
* add in memeory pagination for results.
* Node/Server auth, verification and validation.
* Code cleanup (will continue forever).