lefteris
cdf2510b18
|
3 years ago | |
---|---|---|
WriteToMongo@c74bc894cd | 3 years ago | |
dummyservice@5a53c9243b | 3 years ago | |
files | 3 years ago | |
playground-client@3b32a00f03 | 3 years ago | |
readmongo@0ec4dd0ccc | 3 years ago | |
.gitmodules | 3 years ago | |
Details | 3 years ago | |
Example.sh | 3 years ago | |
README.md | 3 years ago | |
docker-compose.yml | 3 years ago | |
install.sh | 3 years ago | |
inventory.yml | 3 years ago | |
mongo.yml | 3 years ago | |
monitorall.yml.sh | 3 years ago | |
node.yml | 3 years ago | |
runw.sh | 3 years ago | |
terminate_all.sh | 3 years ago |
README.md
System and Service Monitoring and Analysis in a Cloud Environment with Services based on Containers
Requirements to run
- Docker
- Npm - node
- Vue CLI
Installation Process
git clone <insert_git_project_url>
cd Thesis
chmod 700 install.sh
./install.sh
Run Web-client
./runw.sh
Run the rest services
docker-compose up
...and you are done.
You can access the web-client on and monitor some logs:
Add your own Service to the system
All you have to do is add it to the docker-compose file or run it afterwords with a simple docker run command. You need to configure the logging driver though. Example:
docker run --network="thesis_playground-net" --log-driver=fluentd --log-opt tag="mongo.node3" -p 3003:3001 dummyservice
You will need to mention a tag as "mongo.whateveryouwant" to be able to see your logs. If your service is a mongoDB, a nodejs app, or a redis you can pick the right tag so you can see your logs. Tags that are already known to the app are "mongo.node", "mongo.redis", "mongo.mongodb"
IMPORTANT if you run this localy.
For the web-client to run you will need to visit https://api-login.swarmlab.io:8089/ and login with your credentials so you will get a token. The token is visible in the url after your login.
Then, you will need to copy the url and paste it into the file runLlo.vue, which is into playground-client/src/components/doclive/
The line of code that needs to be replaced is the line 626 where you can see a url string. Replace it with your url and save it. The project will refresh and now you will be able to use the web-client.
Ansible Deployment for Swarlab-Hybrid (not finished)
An extra deployment method is currently under development so the files:
mongo.yml
monitorall.yml.sh
node.yml
inventory.yml
are to be ignored completely at the moment.
Important files (in greek)
Playground-client
Αρχικά, πρόκειται για ένα σχετικά βασικό vue.js project. Οπότε η κατανόηση του κώδικα απαιτεί μία τυπική γνώση της δομής ενός vue αρχείου.
playground-client/src/components/runLlo.vue
Component που ασχολείται με την τύπωση των logs on-event. Ο κώδικας ειναι σχολιασμένος.
playground-client/src/components/AdhocView.vue
Component που ασχολείται με την τύπωση των logs στο στάδιο της ευρετηρίασης και του διαγράμματος. Ο κώδικας είναι σχολιασμένος.
readmongo
Project γραμμένο σε node.js/express.js
readmongo/swarmlab-app/src/run/app.js
Βασικό αρχείο που τρέχει κατά την εκτέλεση του server. Όλες οι σόκετ συνδέσεις και τα api-endpoints είναι γραμμένα εδώ. Ο κώδικας περιέχει αρκετά σχόλια για μελέτη.
WriteToMongo
Project που χρησιμοποιεί το εργαλείο fluentd
WriteToMongo/fluent/fluent.conf
Βασικό αρχείο που διαχειρίζεται τα logs που του έρχονται. Χρειάζεται μελέτη του documentation για την πλήρη κατανόηση της διαχείρισης που γίνεται.
dummyservice
"Χαζό" μικρό node.js project με κάποια απλά api endpoints, για την παραγωγή test logs. Έχει το ίδιο structure με το readmongo service.
Containers και Πορτες (ports)
Redis - 6379
Ακούει στην πόρτα 6379 και το όνομα του container που λαμβάνει μετά την εκτέλεση του docker-compose είναι το "redisserver"
MongoDB - 27017
Ακούει στην πόρτα 27017 και το όνομα του container είναι "mongo"
Fleuntd - 24224
Ακούει στην πόρτα 24224 και το όνομα του container που λαμβάνει είναι "fluentd"
Server γραμμένος σε node.js - 3000
Ακούει στην πόρτα 3000 και το όνομα του container είναι readmongo_service
Χαζό service -3001
Ακούει στην πόρτα 3001 και το όνομα του container είναι dummy_service