Vision is a stack for monitoring and logging. It provides :
http://xxx:9200
http://xxx:9393
http://xxx:9999/
http://xxx:8083
http://xxx:4352
Download and install a release :
$ curl https://github.com/nlamirault/vision/releases/download/x.y.z/vision-x.y.z-linux.tar.gz
$ tar zxvf vision-x.y.z
$ cd vision-x.y.z
$ ./init.sh
Start services using Docker Compose:
$ docker-compose up -d
Start services using SystemD:
$ cp -r vision-*.service /lib/systemd/system/
Install Topbeat and Packetbeat
Launch Elasticsearch and Kibana services
Loading the templates into Elasticsearch
$ curl -XPUT 'http://localhost:9200/_template/packetbeat' \
-d@beats/topbeat.template.json
$ curl -XPUT 'http://localhost:9200/_template/packetbeat' \
-d@beats/packetbeat.template.json
Running topbeat metrics :
$ topbeat -c beats/topbeat.yml
Running packetbeat metrics :
$ packetbeat -c beats/packetbeat.yml
Testing the installation:
$ curl -XGET 'http://localhost:9200/topbeat-*/_search?pretty'
$ curl -XGET 'http://localhost:9200/packetbeat-*/_search?pretty'
Loading Kibana dashboards:
$ curl -L -O http://download.elastic.co/beats/dashboards/beats-dashboards-1.0.0.tar.gz
$ tar zxvf beats-dashboards-1.0.0.tar.gz
$ cd beats-dashboards-1.0.0
$ ./load.sh
Then open the Kibana website (http://localhost:9393
), then select Topbeat index,
and open Topbeat dashboard. Do same with Packetbeat index and dashboard.
Install Telegraf
Running telegraf metrics :
$ telegraf -config telegraf/telegraf.conf
Then open the Grafana dashboard (http://localhost:9191
) and import the
Vision Telegraf dashboard from (grafana/grafana-telegraf.json
)
You could explore metrics into the InfluxDB UI on http://localhost:8083
with the query :
SHOW MEASUREMENTS
Install Prometheus and Prometheus node exporter
Launch services :
$ ./prometheus -config.file=prometheus/vision.yml
$ ./node_exporter
Check Prometheus installation on : http://localhost:9090
and
http://localhost:9090/consoles/node.html
hen open the Grafana dashboard (http://localhost:9191
) and import the
Vision Prometheus dashboard from (grafana/grafana-prometheus.json
)
Install Filebeat
Launch Elasticsearch and Kibana services
Loading the Index Template into Elasticsearch
$ curl -XPUT 'http://localhost:9200/_template/packetbeat' \
-d@beats/filebeat.template.json
Running filebeat metrics :
$ filebeat -c beats/filebeat.yml
You could use services files to launch Vision monitoring tools using SystemD.
$ sudo cp systemd/*.service /lib/systemd/system/
$ sudo systemctl enable vision-telegraf
$ sudo systemctl enable vision-topbeat
$ sudo systemctl enable vision-packetbeat
Creates a virtual machine called vision-dev for the development environment :
$ ./docker-machine create -d virtualbox vision-dev
$ eval "$(./docker-machine env vision-dev)"
Check vision machine runnning :
$ ./docker-machine ls
Launch vision :
$ ./docker-compose up
Open your browser and navigate to the IP address associated with the vision virtual machine :
$ ./docker-machine ip
To see which environment variables are available to the web service, run:
$ ./docker-compose run web env
With our app running locally, we can now push this exact same environment to a cloud hosting provider with Docker Machine
Set your credentials in your environment :
$ source XXXXXXX.sh
Deploy a new instance :
$ docker-machine -D create -d digitalocean \
--digitalocean-access-token $DIGITALOCEAN_TOKEN \
vision-prod
Now we have two Machines running, one locally and one on Digital Ocean:
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
vision-dev * virtualbox Running tcp://w.x.y.z:2376
vision-prod digitalocean Running tcp://a.b.c.d:2376
Set vision-prod as the active machine and load the Docker environment :
$ ./docker-machine active vision-prod
$ eval "$(./docker-machine env vision-prod)"
Finally, let's build the application in the Cloud :
$ ./docker-compose build
$ ./docker-compose up -d
Feel free to ask question or make suggestions in our [Issue Tracker][].
See LICENSE for the complete license.
A changelog is available.
Nicolas Lamirault nicolas.lamirault@gmail.com