Browse Source

moved db/csv to data folder & updated volumes

pull/1/head
david 3 years ago
parent
commit
59ddad60e7
  1. 4
      .dockerignore
  2. 2
      .gitignore
  3. 33
      README.md
  4. 0
      data/.keep
  5. 2
      database.js
  6. 2
      docker-compose.yml
  7. 12
      netmon.py
  8. 24
      swarm/docker-compose.netmon.yml
  9. 2
      swarm/netmonDeploy.bash
  10. 2
      swarm/netmonStatus.bash

4
.dockerignore

@ -4,4 +4,6 @@ db.sqlite3
data.csv
public/styles/style.css
README.md
Dockerfile
Dockerfile
data/db.sqlite3
data/data.csv

2
.gitignore vendored

@ -2,6 +2,8 @@ node_modules/
rubbish/
db.sqlite3
data.csv
data/db.sqlite3
data/data.csv
public/styles/style.css
swarm/.env.deploy
swarm/.env.netmon.brent

33
README.md

@ -3,13 +3,14 @@
super basic way to run
```
touch db.sqlite3
*untested now
mkdir data
docker run --rm -d \
--name netmon \
-p 4000:3000 \
-e dstHost=1.1.1.1 \
-e dstPort=53 \
--mount type=bind,source=$(pwd)/db.sqlite3,target=/app/db.sqlite3 \
-v $(pwd)/data:/app/data \
daveplsno/netmon:latest
```
@ -44,3 +45,31 @@ python3 -m http.server 8000
python3 netmon.py monitor
npm run dev
```
## docker img update steps
update tag
`docker-compose build`
`docker push daveplsno/netmon:<tag>`
misc container things
```
docker run --rm \
--name netmonThrowaway \
-p 4000:3000 \
-e dstHost=1.1.1.1 \
-e dstPort=53 \
daveplsno/netmon:2
# used this to migrate data between old/new mounts
docker run --rm -it --name pls -w /app \
-v netmon_netmon-data:/dataOld \
-v netmon_data-david:/dataNew \
nikolaik/python-nodejs:python3.9-nodejs16-alpine sh
docker run --rm -it --name pls -w /app \
-v netmon_netmon-data-shannon:/dataOld \
-v netmon_data-shannon:/dataNew \
nikolaik/python-nodejs:python3.9-nodejs16-alpine sh
```

0
data/.keep

2
database.js

@ -1,6 +1,6 @@
var sqlite3 = require('sqlite3').verbose();
const db = new sqlite3.Database('db.sqlite3', (err) => {
const db = new sqlite3.Database('data/db.sqlite3', (err) => {
if (err) {
console.error(err.message);
throw err;

2
docker-compose.yml

@ -5,4 +5,4 @@ services:
netmon-build:
build:
context: .
image: daveplsno/netmon:latest
image: daveplsno/netmon:4

12
netmon.py

@ -15,7 +15,7 @@ path = Path(__file__).resolve().parent
def update_db(payload):
conn = None
try:
db = (str(path) + "/db.sqlite3")
db = (str(path) + "/data/db.sqlite3")
conn = sqlite3.connect(db)
c = conn.cursor()
@ -76,12 +76,12 @@ def secs_to_HMS(secs):
def record_file_exist():
""" Check if records file exist """
return os.path.isfile('data.csv')
return os.path.isfile('data/data.csv')
def create_record_file():
""" Create a new record file """
with open('data.csv', 'a') as csvfile:
with open('data/data.csv', 'a') as csvfile:
columns = ['timestamp', 'status']
writer = csv.DictWriter(csvfile, fieldnames=columns)
writer.writeheader()
@ -90,7 +90,7 @@ def create_record_file():
def last_record_status():
""" Get last record """
result = None
with open('data.csv', 'r') as csvfile:
with open('data/data.csv', 'r') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
result = row
@ -99,7 +99,7 @@ def last_record_status():
def write_record(status):
""" Create a new record """
with open('data.csv', 'a') as csvfile:
with open('data/data.csv', 'a') as csvfile:
columns = ['timestamp', 'status']
writer = csv.DictWriter(csvfile, fieldnames=columns)
writer.writerow({'timestamp': str(current_timestamp()), 'status': status})
@ -110,7 +110,7 @@ def get_total_downtime():
seconds = 0
down = None
up = None
with open('data.csv', 'r') as csvfile:
with open('data/data.csv', 'r') as csvfile:
reader = csv.DictReader(csvfile)
for record in reader:
try:

24
swarm/docker-compose.netmon.yml

@ -6,18 +6,18 @@ networks:
external: true
volumes:
netmon-data:
netmon-data-brent:
netmon-data-shannon:
netmon-data-josh:
data-david:
data-brent:
data-shannon:
data-josh:
services:
app:
image: daveplsno/netmon:latest
image: daveplsno/netmon:4
hostname: netmon
env_file: .env.netmon
volumes:
- netmon-data:/app
- data-david:/app/data
networks:
- swarmnet-public
deploy:
@ -37,11 +37,11 @@ services:
- traefik.http.services.${netmonTraefikGrp? Variable not set}.loadbalancer.server.port=3000
brent:
image: daveplsno/netmon:latest
image: daveplsno/netmon:4
hostname: netmonBrent
env_file: .env.netmon.brent
volumes:
- netmon-data-brent:/app
- data-brent:/app/data
networks:
- swarmnet-public
deploy:
@ -61,11 +61,11 @@ services:
- traefik.http.services.${netmonBrentTraefikGrp? Variable not set}.loadbalancer.server.port=3000
shannon:
image: daveplsno/netmon:latest
image: daveplsno/netmon:4
hostname: netmonShannon
env_file: .env.netmon.shannon
volumes:
- netmon-data-shannon:/app
- data-shannon:/app/data
networks:
- swarmnet-public
deploy:
@ -85,11 +85,11 @@ services:
- traefik.http.services.${netmonShannonTraefikGrp? Variable not set}.loadbalancer.server.port=3000
josh:
image: daveplsno/netmon:latest
image: daveplsno/netmon:4
hostname: netmonJosh
env_file: .env.netmon.josh
volumes:
- netmon-data-josh:/app
- data-josh:/app/data
networks:
- swarmnet-public
deploy:

2
swarm/netmonDeploy.bash

@ -2,7 +2,7 @@
export $(cat .env.deploy)
# deploy to swarm
docker stack deploy -c docker-compose.netmon.yml netmon
docker stack deploy -c docker-compose.netmon.yml --prune netmon
# unset the env vars
unset $(cat .env.deploy | cut -f 1 -d '=' $1)

2
swarm/netmonStatus.bash

@ -1,2 +1,2 @@
#!/bin/bash
docker service ps netmon_app
docker stack services netmon
Loading…
Cancel
Save