sudo yum update -y
sudo yum install -y gcc openssl-devel bzip2-devel libffi-devel
cd /usr/src
sudo wget https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tgz
sudo tar xzf Python-3.10.0.tgz
Organization ID / user IDs: https://cloud.elastic.co/account/members
Billing api key: https://cloud.elastic.co/account/keys
Api_key:
This API key is used to read from the monitoring cluster; it requires read privileges to the .monitoring-es-8* index names.
API KEY - consumption_destination
POST /_security/api_key
{
"name": "consumption_framework_destination",
"role_descriptors": {
"consumption_framework": {
"indices": [
{
"names": [
"consumption*"
],
"privileges": [
"read",
"view_index_metadata",
"index",
"auto_configure"
]
}
],
"cluster": [
"manage_ingest_pipelines",
"manage_ilm",
"manage_index_templates"
]
}
}
}
API KEY - monitoring_source
In the monitoring_source cluster, the script will be reading the .monitoring-es-8* indices. The user (or API key) used to connect to the cluster will therefore need to have the corresponding read permission. The below API call can be used to provision the required API key on the monitoring_source cluster:
POST /_security/api_key
{
"name": "consumption_framework_source",
"role_descriptors": {
"consumption_framework": {
"indices": [
{
"names": [
".monitoring-es-8*"
],
"privileges": [
"read"
]
}
]
}
}
}
In the kibana_exports folder of the ZIP archive, there are .ndjson files for Kibana; these are saved objects intended for upload.
In Kibana, go to Stack Management -> Saved Objects and click Import (upper right, as of 8.12.1). Next, select Import again and then choose the .ndjson file (e.g. 8.11.2.ndjson) from your local filesystem. Click Done to close the sidebar window.
Using virtual environment
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt
To delete the env
deactivate
andrm -r ./venv
Next, import initial Elasticsearch Service / Elastic Cloud billing data: get-billing-data
will recover the billing data from ESS, and index it into the target cluster. This will populate the organization overview dashboard.
python3 main.py get-billing-data --config-file config.yml --lookbehind=24 --force --debug
Finally, pull initial cluster usage data from the Monitoring Cluster:
python3 main.py consume-monitoring --config-file config.yml --lookbehind=24 --force --debug
docker build -t elastic_consumption_framework:local .
docker run --rm elastic_consumption_framework:local --help
docker run --rm -v $(pwd)/config.yml:/app/config.yml elastic_consumption_framework:local get-billing-data --config-file /app/config.yml --lookbehind 24 --force --debug
docker run --rm -v $(pwd)/config.yml:/app/config.yml elastic_consumption_framework:local init --config-file /app/config.yml --lookbehind 24 --force --debug
Review the config.yml
docker run --rm -v $(pwd)/config.yml:/app/config.yml elastic_consumption_framework:local -- cat /app/config.yml