Abiquo 6.0.1 introduces a new module to display private cloud billing data on the Abiquo billing dashboard.
Before you begin:
Configure pricing, e.g. with cost codes (see Create a new cost code) for VM templates and/or Hardware profiles, or resource prices in a pricing model, to assign positive costs to resources (such as VMs). If you don't have this configuration, every billing entry will be set to zero and your billing data will have no costs!
If you are already using billing with CSV format output, please contact Abiquo Support.
To display private cloud billing data on the Abiquo billing dashboard widgets:
Configure the Abiquo billing integration to output in DBMS format.
See DBMS Billing Integration and Abiquo billing integration user guide.
In the dbms.properties file, you must set row_per_usage to true.
You may need to regenerate the abiquo_billing.abiquo_billing_data table. See next steps.DB: If you have data in the abiquo_billing.abiquo_billing_data table
Back up the database
Contact Abiquo Support before you delete the table
DB: If the table abiquo_billing.abiquo_billing_data is empty, and you need to change the file dbms.properties, delete the table and regenerate billing data before you continue.
UI: Create a new global role (suggested name: abiquo_billing) and assign these privileges only:
Home → List enterprises within scope
Home → Allow user to switch enterprise
Home → Manage bills
UI: Create a new user (suggested user name: abiquo.billing) and assign it to the the role created in the previous step.
OS: Enable the EPEL 7 repository.
sudo yum install --assumeyes epel-release
OS: Install the package abiquo-billing-private on an appropriate server (typically, this would be the Reporting server).
OS: Edit the file /opt/abiquo-billing-private/run.sh and at the end of every Python script call, append the parameter -p and the appropriate value:
-p VMX_04 for VMware vCenter Server
-p VCENTER_CLUSTER for VMware vCenter Cluster
OS: Edit the file /opt/abiquo-billing-private/config/config.yml and enter the required information.
For example, if you have a replica database on your reporting server which is accessed by the database user billing:abiquo_database: host: localhost username: billing password: yourmysqlsecurepasswordforthebillinguser port: 3306 database: kinton billing_database: host: localhost username: billing password: yourmysqlsecurepasswordforthebillinguser port: 3306 database: abiquo_billing abiquo: api_url: https://localhost/api user: abiquo.billing password: yoursupersecurepassword
Deploy a VM to start collecting billing information.
There is a cron entry to run this process nightly, see Additional information below. To run the process on demand, get the command from the cron entry.
In the UI, the private billing information should now display on the Dashboard, and by default this is on the Hybrid tab.
Additional information
The log and cron details are as follows.
The log files for the private billing nightly process are at /var/log/abiquo-billing-private-*-pusher.log
The log rotate configuration for the process is at /etc/logrotate.d/abiquo-billing-private
The cron entry that executes the process nightly is at /etc/cron.d/abiquo-billing-private
You can use the Abiquo CSV generator to retrieve billing data from Private, AWS, Azure and OCI and generate CSVs for the customer, and send them to an FTP
Push customer details to VMs
You may store tenant details as enterprise properties. In order to match accounting details with customer resources, you can also push the tenant details to their VMs.
For more details, see https://abiquo.atlassian.net/wiki/spaces/doc/pages/327581812/Manage+enterprise+credentials+and+properties#Inject-enterprise-properties-as-VM-variables