cosmos-sdk/networks
Greg Szabo 68c9214721 DataDog log gathering (#1931)
* Added datadog service log gathering

* Updated PENDING.md

* monitoring script fixes so logs don't fill the disk space
2018-08-12 03:38:53 -04:00
..
local networks: clean up & some fixes to prepare for docs (#1986) 2018-08-11 17:10:54 -04:00
remote DataDog log gathering (#1931) 2018-08-12 03:38:53 -04:00
Makefile Merge PR #1821: Added seed node update scripts 2018-08-01 03:13:22 +02:00
README.md networks: clean up & some fixes to prepare for docs (#1986) 2018-08-11 17:10:54 -04:00
add-cluster.sh Merge PR #1234: Cloud network setup scripts 2018-07-24 06:27:39 +02:00
add-datadog.sh Merge PR #1234: Cloud network setup scripts 2018-07-24 06:27:39 +02:00
del-cluster.sh Merge PR #1234: Cloud network setup scripts 2018-07-24 06:27:39 +02:00
del-datadog.sh Merge PR #1234: Cloud network setup scripts 2018-07-24 06:27:39 +02:00
list.sh Merge PR #1234: Cloud network setup scripts 2018-07-24 06:27:39 +02:00
new-testnet.sh Merge PR #1234: Cloud network setup scripts 2018-07-24 06:27:39 +02:00
upgrade-gaiad.sh Merge PR #1234: Cloud network setup scripts 2018-07-24 06:27:39 +02:00

README.md

Terraform & Ansible

Automated deployments are done using Terraform to create servers on AWS then Ansible to create and manage testnets on those servers.

Prerequisites

export AWS_ACCESS_KEY_ID="2345234jk2lh4234"
export AWS_SECRET_ACCESS_KEY="234jhkg234h52kh4g5khg34"
export TESTNET_NAME="remotenet"
export CLUSTER_NAME= "remotenetvalidators"
export SSH_PRIVATE_FILE="$HOME/.ssh/id_rsa"
export SSH_PUBLIC_FILE="$HOME/.ssh/id_rsa.pub"

These will be used by both terraform and ansible.

Create a remote network

SERVERS=1 REGION_LIMIT=1 make validators-start

The testnet name is what's going to be used in --chain-id, while the cluster name is the administrative tag in AWS for the servers. The code will create SERVERS amount of servers in each availability zone up to the number of REGION_LIMITs, starting at us-east-2. (us-east-1 is excluded.) The below BaSH script does the same, but sometimes it's more comfortable for input.

./new-testnet.sh "$TESTNET_NAME" "$CLUSTER_NAME" 1 1

Quickly see the /status endpoint

make validators-status

Delete servers

make validators-stop

Logging

You can ship logs to Logz.io, an Elastic stack (Elastic search, Logstash and Kibana) service provider. You can set up your nodes to log there automatically. Create an account and get your API key from the notes on this page, then:

yum install systemd-devel || echo "This will only work on RHEL-based systems."
apt-get install libsystemd-dev || echo "This will only work on Debian-based systems."

go get github.com/mheese/journalbeat
ansible-playbook -i inventory/digital_ocean.py -l remotenet logzio.yml -e LOGZIO_TOKEN=ABCDEFGHIJKLMNOPQRSTUVWXYZ012345

Monitoring

You can install the DataDog agent with:

make datadog-install