progetti:cloud-areapd:operations:production_cloud:caos
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
progetti:cloud-areapd:operations:production_cloud:caos [2018/01/10 10:25] – [CPU Efficiency] chiarel1@infn.it | progetti:cloud-areapd:operations:production_cloud:caos [2018/05/07 15:14] (current) – [Collector] chiarel1@infn.it | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== CAOS ====== | ||
+ | The instances of CAOS are hosted on '' | ||
+ | * Cloud Area Padovana: [[https:// | ||
+ | * Cloud Veneto: [[https:// | ||
+ | * EGI Fed-Cloud: [[https:// | ||
+ | |||
+ | The links are reachable only from inside the Padova LAN. To connect from outside a SSH tunnel must be opened, e.g: | ||
+ | |||
+ | < | ||
+ | $ ssh -v -o TCPKeepAlive=yes -N -L 4000: | ||
+ | </ | ||
+ | |||
+ | and then go to: | ||
+ | * Cloud Area Padovana: [[https:// | ||
+ | * Cloud Veneto: [[https:// | ||
+ | * EGI Fed-Cloud: [[https:// | ||
+ | |||
+ | ===== Operations ===== | ||
+ | |||
+ | The instances are managed by '' | ||
+ | |||
+ | The templates are located in the following directories: | ||
+ | * Cloud Area Padovana: ''/ | ||
+ | * Cloud Veneto: ''/ | ||
+ | * EGI Fed-Cloud: ''/ | ||
+ | |||
+ | Inside each directory a '' | ||
+ | |||
+ | ==== MySQL databases ==== | ||
+ | |||
+ | The instances store data in the following MySQL databases: | ||
+ | * Cloud Area Padovana: '' | ||
+ | * Cloud Veneto: '' | ||
+ | * EGI Fed-Cloud: '' | ||
+ | |||
+ | ==== How to start/stop an instance ==== | ||
+ | |||
+ | Instances can be started by '' | ||
+ | |||
+ | < | ||
+ | # cd / | ||
+ | # docker-compose up -d | ||
+ | </ | ||
+ | |||
+ | Instances can be stopped by '' | ||
+ | |||
+ | < | ||
+ | # cd / | ||
+ | # docker-compose down | ||
+ | </ | ||
+ | ==== How to update an instance ==== | ||
+ | |||
+ | To update an instance, e.g. after changing the version of an image or changing configuration variables, issue the following command | ||
+ | < | ||
+ | docker-compose up -d | ||
+ | </ | ||
+ | |||
+ | === Update for Ocata (ongoing) === | ||
+ | |||
+ | In the collector section of the '' | ||
+ | < | ||
+ | CAOS_COLLECTOR_OPENSTACK_VERSION=ocata | ||
+ | </ | ||
+ | This enables the correct collection of the wall clock time. | ||
+ | ==== How to create a new instance ==== | ||
+ | === 1. Create a docker network === | ||
+ | === 2. Create a database === | ||
+ | Create a database, for example: | ||
+ | <code sql> | ||
+ | CREATE DATABASE caos; | ||
+ | |||
+ | GRANT ALL ON caos.* TO ' | ||
+ | GRANT ALL ON caos.* TO ' | ||
+ | </ | ||
+ | === 3. Create a openstack user === | ||
+ | < | ||
+ | openstack user create --password=*** caos | ||
+ | openstack role add --project admin --user caos admin | ||
+ | </ | ||
+ | |||
+ | Then check connectivity to the DB and eventually migrate the schema with | ||
+ | |||
+ | < | ||
+ | docker-compose run --rm tsdb dbcheck | ||
+ | docker-compose run --rm tsdb migrate | ||
+ | </ | ||
+ | === 4. Create a r/o user in mongo === | ||
+ | |||
+ | < | ||
+ | use ceilometer | ||
+ | |||
+ | db.createUser({ | ||
+ | user: " | ||
+ | pwd: " | ||
+ | roles: [ | ||
+ | { role: " | ||
+ | ] | ||
+ | }) | ||
+ | </ | ||
+ | ===== HTTPS/SSL ===== | ||
+ | |||
+ | HTTPS/SSL communication is managed by the nginx proxy. The certificates (self-signed) are located at: | ||
+ | * certificate: | ||
+ | * private key: ''/ | ||
+ | |||
+ | After changing the above files, remember to restart the proxy: | ||
+ | |||
+ | < | ||
+ | # cd / | ||
+ | # docker-compose restart | ||
+ | </ | ||
+ | ===== Configuration ===== | ||
+ | |||
+ | The TSDB, collector and dashboard can be easily configured through environment variables, whose meaning is explained below. | ||
+ | ==== TSDB ==== | ||
+ | |||
+ | ^ Variable | ||
+ | | CAOS_TSDB_LOGGER_LOG_FILE_LEVEL | ||
+ | | CAOS_TSDB_PORT | ||
+ | | CAOS_TSDB_DB_USERNAME | ||
+ | | CAOS_TSDB_DB_PASSWORD | ||
+ | | CAOS_TSDB_DB_NAME | ||
+ | | CAOS_TSDB_DB_HOSTNAME | ||
+ | | CAOS_TSDB_DB_PORT | ||
+ | | CAOS_TSDB_DB_POOL_SIZE | ||
+ | | CAOS_TSDB_AUTH_TOKEN_TTL | ||
+ | | CAOS_TSDB_AUTH_SECRET_KEY | ||
+ | | CAOS_TSDB_AUTH_IDENTITY_USERNAME | ||
+ | | CAOS_TSDB_AUTH_IDENTITY_PASSWORD | ||
+ | |||
+ | |||
+ | ==== Collector ==== | ||
+ | |||
+ | ^ Variable | ||
+ | | OS_* | | Openstack auth variables | ||
+ | | CAOS_COLLECTOR_TSDB_API_URL | ||
+ | | CAOS_COLLECTOR_TSDB_USERNAME | ||
+ | | CAOS_COLLECTOR_TSDB_PASSWORD | ||
+ | | CAOS_COLLECTOR_OPENSTACK_VERSION | ||
+ | | CAOS_COLLECTOR_CEILOMETER_POLLING_PERIOD | ||
+ | | CAOS_COLLECTOR_CEILOMETER_BACKEND | ||
+ | |||
+ | The following variables are used if '' | ||
+ | ^ Variable | ||
+ | | CAOS_COLLECTOR_MONGODB | ||
+ | | CAOS_COLLECTOR_MONGODB_CONNECTION_TIMEOUT | 1 | MongoDB connection timeout (seconds) | | ||
+ | |||
+ | The following variables are used if '' | ||
+ | |||
+ | ^ Variable | ||
+ | | CAOS_COLLECTOR_CEILOMETER_GNOCCHI_POLICY_GRANULARITY | 300 | The granularity of the policy used to store data in gnocchi (seconds) | | ||
+ | |||
+ | |||
+ | ==== Dashboard ==== | ||
+ | |||
+ | ^ Variable | ||
+ | | CAOS_DASHBOARD_TSDB_HOST | localhost | TSDB host | | ||
+ | | CAOS_DASHBOARD_TSDB_PORT | 4444 | TSDB port| | ||
+ | | CAOS_DASHBOARD_BASE_NAME | site | If the dashboard is exposed as a sub-url, this must match the sub-url. For example if the dashboard will be exposed at http:// | ||
+ | | CAOS_DASHBOARD_SITE_NAME | Site Name | Name of the site, shown on login page| | ||
+ | |||
+ | |||
+ | ==== CPU/RAM allocation ratio ==== | ||
+ | |||
+ | CPU and RAM allocation ratio can be set in the file '' | ||
+ | |||
+ | <code yaml> | ||
+ | schedulers: | ||
+ | ... | ||
+ | |||
+ | hypervisors: | ||
+ | misfire_grace_time: | ||
+ | minute: ' | ||
+ | jobs: | ||
+ | - ' | ||
+ | </ | ||
+ | |||
+ | The default allocation ratios (4 for cpu and 1.5 for ram) are set within the '' | ||
+ | |||
+ | If changes are made to the configuration file, remember to restart the collector: | ||
+ | |||
+ | < | ||
+ | # cd / | ||
+ | # docker-compose restart collector | ||
+ | </ | ||
+ | |||
+ | **Notes for Ocata**: starting with Ocata the collector will read the allocation ratios using the nova placement api. Therefore the above configuration is not required anymore, but it can be used to override the values. | ||
+ | ===== Meaning of the graphs ===== | ||
+ | |||
+ | ==== CPU ==== | ||
+ | |||
+ | CPU related data | ||
+ | |||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | | ||
+ | ==== CPU Efficiency ==== | ||
+ | |||
+ | Ratio between **'' | ||
+ | ==== VCPU ==== | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | |||
+ | ==== VRAM ==== | ||
+ | * **'' | ||
+ | * **'' | ||
+ | |||
+ | ==== Instances ==== | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | |||
+ | ==== Usages ==== | ||
+ | Resource usages in percent with respect of their quota. | ||
+ | |||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' |