<div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(68,68,68)">Oh... Got it, Angus. Thank you!</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(68,68,68)">
<br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(68,68,68)">I finally got it that for when using curl, I have first to get an AUTH token </div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(68,68,68)">
from keystone, in order to use that returned token in the HTTP GET for</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(68,68,68)">the API.</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(68,68,68)">
<br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(68,68,68)">Just sharing what I did:</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(68,68,68)">
<br></div><div class="gmail_default"><font color="#444444" face="verdana, sans-serif">$ curl -d '{"auth":{"passwordCredentials":{"username": "ceilometer", "password": "SECRET"}}}' -H "Content-type: application/json" <a href="http://localhost:35357/v2.0/tokens" target="_blank">http://localhost:35357/v2.0/tokens</a></font><br>
</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(68,68,68)"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(68,68,68)">
<br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(68,68,68)">Returns:<br>
</div><div class="gmail_default"><font color="#444444" face="verdana, sans-serif"><br></font></div><div class="gmail_default"><font color="#444444" face="verdana, sans-serif">{"access": {"token": {"issued_at": "2013-05-29T15:17:07.501333", "expires": "2013-05-30T15:17:07Z", "id": "MIICbgYJKoZIhvcNAQcCoIICXzCCAlsCAQExCTAHBgUrDgMCGjCCAUcGCSqGSIb3DQEHAaCCATgEggE0eyJhY2Nlc3MiOiB7InRva2VuIjogeyJpc3N1ZWRfYXQiOiAiMjAxMy0wNS0yOVQxNToxNzowNy41MDEzMzMiLCAiZXhwaXJlcyI6ICIyMDEzLTA1LTMwVDE1OjE3OjA3WiIsICJpZCI6ICJwbGFjZWhvbGRlciJ9LCAic2VydmljZUNhdGFsb2ciOiBbXSwgInVzZXIiOiB7InVzZXJuYW1lIjogImFkbWluIiwgInJvbGVzX2xpbmtzIjogW10sICJpZCI6ICJkOTIwZmM4NWVjZDk0MjZlYmQ5ZTNmOGM3MzAwZjVkNCIsICJyb2xlcyI6IFtdLCAibmFtZSI6ICJhZG1pbiJ9LCAibWV0YWRhdGEiOiB7ImlzX2FkbWluIjogMCwgInJvbGVzIjogW119fX0xgf8wgfwCAQEwXDBXMQswCQYDVQQGEwJVUzEOMAwGA1UECBMFVW5zZXQxDjAMBgNVBAcTBVVuc2V0MQ4wDAYDVQQKEwVVbnNldDEYMBYGA1UEAxMPd3d3LmV4YW1wbGUuY29tAgEBMAcGBSsOAwIaMA0GCSqGSIb3DQEBAQUABIGAiiB9a3o5N2piewbmZU3Ng9ShhPHB4WiigGUocdrNeE24+RktDoRrM+uZKptjd6aanlAGbrAUKpi5Uj-oNAbmKUt1CK-154aUaUpcy8NJFNwIZA2hBafbofOWU6FceVDIc1yztr0bZRdSD-vDl0hrISi0mL961yU+uXFQRxeNtqY="}, "serviceCatalog": [], "user": {"username": "admin", "roles_links": [], "id": "d920fc85ecd9426ebd9e3f8c7300f5d4", "roles": [], "name": "admin"}, "metadata": {"is_admin": 0, "roles": []}}}</font><br>
</div><div class="gmail_default"><font color="#444444" face="verdana, sans-serif"><br></font></div><div class="gmail_default"><font color="#444444" face="verdana, sans-serif"><br></font></div><div class="gmail_default" style>
<font color="#444444" face="verdana, sans-serif">Where the token is the value of the "id" therefore, a GET </font><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">to get all the meters, can be:</span></div>
<div class="gmail_default" style><font color="#444444" face="verdana, sans-serif"><br></font></div><div class="gmail_default" style><span style="color:rgb(68,68,68);font-family:verdana,sans-serif"><br></span></div><div class="gmail_default" style>
<span style="color:rgb(68,68,68);font-family:verdana,sans-serif">$ curl -k -D -H "X-Auth-Token: MIICbgYJKoZIhvcNAQcCoIICXzCCAl</span><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">sCAQExCTAHBgUrDgMCGjCCAUcGCSqG</span><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">SIb3DQEHAaCCATgEggE0eyJhY2Nlc3</span><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">MiOiB7InRva2VuIjogeyJpc3N1ZWRf</span><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">YXQiOiAiMjAxMy0wNS0yOVQxNToxNz</span><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">owNy41MDEzMzMiLCAiZXhwaXJlcyI6</span><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">ICIyMDEzLTA1LTMwVDE1OjE3OjA3Wi</span><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">IsICJpZCI6ICJwbGFjZWhvbGRlciJ9</span><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">LCAic2VydmljZUNhdGFsb2ciOiBbXS</span><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">wgInVzZXIiOiB7InVzZXJuYW1lIjog</span><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">ImFkbWluIiwgInJvbGVzX2xpbmtzIj</span><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">ogW10sICJpZCI6ICJkOTIwZmM4NWVj</span><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">ZDk0MjZlYmQ5ZTNmOGM3MzAwZjVkNC</span><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">IsICJyb2xlcyI6IFtdLCAibmFtZSI6</span><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">ICJhZG1pbiJ9LCAibWV0YWRhdGEiOi</span><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">B7ImlzX2FkbWluIjogMCwgInJvbGVz</span><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">IjogW119fX0xgf8wgfwCAQEwXDBXMQ</span><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">swCQYDVQQGEwJVUzEOMAwGA1UECBMF</span><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">VW5zZXQxDjAMBgNVBAcTBVVuc2V0MQ</span><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">4wDAYDVQQKEwVVbnNldDEYMBYGA1UE</span><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">AxMPd3d3LmV4YW1wbGUuY29tAgEBMA</span><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">cGBSsOAwIaMA0GCSqGSIb3DQEBAQUA</span><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">BIGAiiB9a3o5N2piewbmZU3Ng9ShhP</span><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">HB4WiigGUocdrNeE24+RktDoRrM+</span><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">uZKptjd6aanlAGbrAUKpi5Uj-</span><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">oNAbmKUt1CK-</span><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">154aUaUpcy8NJFNwIZA2hBafbofOWU</span><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">6FceVDIc1yztr0bZRdSD-</span><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">vDl0hrISi0mL961yU+uXFQRxeNtqY=</span><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">" -X 'GET' -v <a href="http://localhost:8777/v2/meters">http://localhost:8777/v2/meters</a></span><br>
</div><div class="gmail_default" style><font color="#444444" face="verdana, sans-serif"><div><br></div></font></div><div class="gmail_default" style><font color="#444444" face="verdana, sans-serif"><br></font></div><div class="gmail_default" style>
<span style="color:rgb(68,68,68);font-family:verdana,sans-serif">Which, indeed returned the metrics I was looking for.</span><br></div><div class="gmail_default" style><span style="color:rgb(68,68,68);font-family:verdana,sans-serif">Thank you a lot. I really appreciate it. </span><br>
</div><div class="gmail_default" style><font color="#444444" face="verdana, sans-serif"><br></font></div><div class="gmail_default" style><font color="#444444" face="verdana, sans-serif">I tried using ceilometer-client (I just git cloned it, and ran "sudo python setup.py install",</font></div>
<div class="gmail_default" style><font color="#444444" face="verdana, sans-serif">nothing went wrong apparently), but when trying to run it like this:</font></div><div class="gmail_default" style><font color="#444444" face="verdana, sans-serif"><br>
</font></div><div class="gmail_default" style><font color="#444444" face="verdana, sans-serif"><div class="gmail_default"><br></div><div class="gmail_default">$ ceilometer --os-username ceilometer --os-password ficrowstran02 --os-tenant-name admin --os-auth-url <a href="http://localhost:5000/v2.0">http://localhost:5000/v2.0</a> statistics<br>
</div><div><br></div><div style>Returns: "invalid literal for int() with base 10: '' </div><div style><br></div><div style><br></div><div style>Maybe because my AUTH Token is exceeds the 32/64-bit addressing of a integer? Not sure... I'll figure it out and do the follow-up here.</div>
<div style><br></div><div style><br></div><div style>Thank you for the great help!</div><div style><br></div><div><br></div><div><br></div></font></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 27, 2013 at 10:21 PM, Angus Salkeld <span dir="ltr"><<a href="mailto:asalkeld@redhat.com" target="_blank">asalkeld@redhat.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div><div>On 27/05/13 11:14 -0300, Bruno Oliveira wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Hello stackers,<br>
<br>
I'm having a really hard time setting up ceilometer-api so I thought<br>
if I could ask you guys for some enlightment.<br>
<br>
I can clearly see data being pulled in the screens that are running<br>
/ceilometer-collector, ./ceilometer-agent-compute ,./ceilometer-agent-central<br>
<br>
Even the screen running ceilometer-api-server starts with no problem.<br>
<br>
But I cannot reach the api at all via curl. Neither by using its<br>
actual port (8777)<br>
nor using the port set in the virtual host of apache. All I'm getting<br>
is auth error<br>
<br>
$ curl <a href="http://127.0.0.1:8777" target="_blank">http://127.0.0.1:8777</a> OR $ curl <a href="http://127.0.0.1:9090" target="_blank">http://127.0.0.1:9090</a><br>
==============================<u></u>===============<br>
<html><br>
<head><br>
<title>401 Unauthorized</title><br>
</head><br>
<body><br>
<h1>401 Unauthorized</h1><br>
This server could not verify that you are authorized to access the<br>
document you requested. Either you supplied the wrong credentials<br>
(e.g., bad password), or your browser does not understand how to<br>
supply the credentials required.<br /><br /><br>
Authentication required<br>
==============================<u></u>===============<br>
</blockquote>
<br></div></div>
Right, Authentication is required by the client, but you are not<br>
passing it any credentials.<br>
<br>
I'd suggest using python-ceilometerclient to do the auth for you:<br>
So use it like any other openstack client.<br>
<br>
try something like this:<br>
<br>
asalkeld@elf python-ceilometerclient (master)$ . ../devstack/openrc admin admin<br>
asalkeld@elf python-ceilometerclient (master)$ ceilometer resource-list<br>
+-----------------------------<u></u>---------+--------+---------+-<u></u>------------------------------<u></u>---+<br>
| Resource ID | Source | User ID | Project ID |<br>
+-----------------------------<u></u>---------+--------+---------+-<u></u>------------------------------<u></u>---+<br>
| a8ce423c-c1a1-41e3-af7c-<u></u>b38d92f5e36f | | None | 1076d9bd669d422bbd74e1e2f54d15<u></u>10 |<br>
+-----------------------------<u></u>---------+--------+---------+-<u></u>------------------------------<u></u>---+<br>
asalkeld@elf python-ceilometerclient (master)$ ceilometer meter-list<br>
+--------------+-------+------<u></u>-+----------------------------<u></u>----------+---------+---------<u></u>-------------------------+<br>
| Name | Type | Unit | Resource ID | User ID | Project ID |<br>
+--------------+-------+------<u></u>-+----------------------------<u></u>----------+---------+---------<u></u>-------------------------+<br>
| image | gauge | image | a8ce423c-c1a1-41e3-af7c-<u></u>b38d92f5e36f | None | 1076d9bd669d422bbd74e1e2f54d15<u></u>10 |<br>
| image.size | gauge | B | a8ce423c-c1a1-41e3-af7c-<u></u>b38d92f5e36f | None | 1076d9bd669d422bbd74e1e2f54d15<u></u>10 |<br>
| image.update | delta | image | a8ce423c-c1a1-41e3-af7c-<u></u>b38d92f5e36f | None | 1076d9bd669d422bbd74e1e2f54d15<u></u>10 |<br>
| image.upload | delta | image | a8ce423c-c1a1-41e3-af7c-<u></u>b38d92f5e36f | None | 1076d9bd669d422bbd74e1e2f54d15<u></u>10 |<br>
+--------------+-------+------<u></u>-+----------------------------<u></u>----------+---------+---------<u></u>-------------------------+<br>
asalkeld@elf python-ceilometerclient (master)$ ceilometer sample-list -m image.update<br>
+-----------------------------<u></u>---------+--------------+-----<u></u>--+--------+-------+----------<u></u>------------------+<br>
| Resource ID | Name | Type | Volume | Unit | Timestamp |<br>
+-----------------------------<u></u>---------+--------------+-----<u></u>--+--------+-------+----------<u></u>------------------+<br>
| a8ce423c-c1a1-41e3-af7c-<u></u>b38d92f5e36f | image.update | delta | 1.0 | image | 2013-05-28T01:14:40.238000 |<br>
+-----------------------------<u></u>---------+--------------+-----<u></u>--+--------+-------+----------<u></u>------------------+<br>
<br>
<br>
Remember you can only see the samples/meter/resources that you own or all if you are admin.<br>
<br>
<br>
-Angus<br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div><div>
<br>
<br>
On top of that, the only thing I had to do in a non-standard basis, was to<br>
setup ceilometer virtual host to answer request on port 9090 of apache<br>
instead of the default 80 (since horizon is bind to it).<br>
<br>
<br>
Here's a copy of my running ceilometer.conf<br>
==============================<u></u>=======<br>
/etc/ceilometer/ceilometer.<u></u>conf<br>
==============================<u></u>=======<br>
[DEFAULT]<br>
os_username=ceilometer<br>
os_password=MYSECRET<br>
os_tenant_name=admin<br>
os_auth_url=<a href="http://localhost:5000/v2.0" target="_blank">http://localhost:<u></u>5000/v2.0</a><br>
signing_dirname = /tmp/keystone-signing-<u></u>ceilometer<br>
metering_api_port=8777<br>
auth_strategy=keystone<br>
nova_control_exchange=nova<br>
hypervisor_inspector=libvirt<br>
libvirt_type=kvm<br>
glance_control_exchange=glance<br>
quantum_control_exchange=<u></u>quantum<br>
debug=true<br>
verbose=true<br>
(...)<br>
*logging writing parameters here*<br>
(...)<br>
log_dir=/var/log/ceilometer<br>
rpc_backend=ceilometer.<u></u>openstack.common.rpc.impl_<u></u>kombu<br>
rabbit_host=localhost<br>
rabbit_port=5672<br>
rabbit_userid=guest<br>
rabbit_password=ficrowstran02<br>
rabbit_retry_backoff=2<br>
rabbit_max_retries=0<br>
database_connection=mongodb://<u></u>localhost:27017/ceilometer<br>
sql_connection_debug=0<br>
cinder_control_exchange=cinder<br>
enable_v1_api=true<br>
<br>
[rpc_notifier2]<br>
<br>
[matchmaker_redis]<br>
<br>
[publisher_meter]<br>
metering_secret=METERING_<u></u>SECRET<br>
<br>
[keystone_authtoken]<br>
auth_host = localhost<br>
auth_port = 5000<br>
admin_user = ceilometer<br>
admin_password = MYSECRET<br>
admin_tenant_name = admin<br>
auth_uri = <a href="http://localhost:5000/v2.0/" target="_blank">http://localhost:5000/v2.0/</a><br>
==============================<u></u>=======<br>
<br>
<br>
The "ceilometer" user pointed at "admin_user" under the<br>
"[keystone_authtoken]" section, as well as in "os_username" under the<br>
"[DEFAULT]" section,<br>
was created in keystone and it'sbind to the admin tenant.<br>
<br>
<br>
$ keystone tenant-get admin<br>
+-------------+---------------<u></u>-------------------+<br>
| Property | Value |<br>
+-------------+---------------<u></u>-------------------+<br>
| description | |<br>
| enabled | True |<br>
| id | 670f5dd4070d44b6a8308277a236d1<u></u>af |<br>
| name | admin |<br>
+-------------+---------------<u></u>-------------------+<br>
<br>
$ keystone user-get ceilometer<br>
+----------+------------------<u></u>----------------+<br>
| Property | Value |<br>
+----------+------------------<u></u>----------------+<br>
| email | <a href="mailto:ceilometer@example.com" target="_blank">ceilometer@example.com</a> |<br>
| enabled | True |<br>
| id | a98ec068f5f349439acef431e826d7<u></u>ff |<br>
| name | ceilometer |<br>
| tenantId | 670f5dd4070d44b6a8308277a236d1<u></u>af |<br>
+----------+------------------<u></u>----------------+<br>
<br>
<br>
Finally, here's the ceilometer site running on apache. the user<br>
and group 'stackadmin' are valid users indeed in the machine<br>
<br>
$ id stackadmin<br>
<br>
uid=1000(stackadmin) gid=1000(stackadmin)<br>
groups=1000(stackadmin),4(adm)<u></u>,24(cdrom),27(sudo),30(dip),<u></u>46(plugdev),111(libvirtd),113(<u></u>lpadmin),114(sambashare<br>
<br>
<br>
==============================<u></u>=======<br>
/etc/apache2/sites-available/<u></u>ceilometer<br>
==============================<u></u>=======<br>
<VirtualHost *:9090><br>
WSGIDaemonProcess ceilometer user=stackadmin group=stackadmin threads=5<br>
WSGIScriptAlias / /opt/stack/ceilometer/<u></u>ceilometer/api/app.wsgi<br>
SetEnv APACHE_RUN_USER stackadmin<br>
SetEnv APACHE_RUN_GROUP stackadmin<br>
WSGIProcessGroup ceilometer<br>
ErrorLog /var/log/apache2/ceilometer_<u></u>error.log<br>
LogLevel warn<br>
CustomLog /var/log/apache2/ceilometer_<u></u>access.log combined<br>
</VirtualHost><br>
==============================<u></u>=======<br>
<br>
<br>
Despite of everything, I keep getting that "401 Unauthorized"<br>
auth error.<br>
<br>
Do you guys have any suggestions of what I can try to fix it ?<br>
<br>
Thank you all.<br>
<br>
--<br>
<br>
Bruno de Oliveira<br>
Developer, System Analyst<br>
<br></div></div>
______________________________<u></u>_________________<br>
Mailing list: <a href="https://launchpad.net/~openstack" target="_blank">https://launchpad.net/~<u></u>openstack</a><br>
Post to : <a href="mailto:openstack@lists.launchpad.net" target="_blank">openstack@lists.launchpad.net</a><br>
Unsubscribe : <a href="https://launchpad.net/~openstack" target="_blank">https://launchpad.net/~<u></u>openstack</a><br>
More help : <a href="https://help.launchpad.net/ListHelp" target="_blank">https://help.launchpad.net/<u></u>ListHelp</a><br>
</blockquote>
<br>
______________________________<u></u>_________________<br>
Mailing list: <a href="https://launchpad.net/~openstack" target="_blank">https://launchpad.net/~<u></u>openstack</a><br>
Post to : <a href="mailto:openstack@lists.launchpad.net" target="_blank">openstack@lists.launchpad.net</a><br>
Unsubscribe : <a href="https://launchpad.net/~openstack" target="_blank">https://launchpad.net/~<u></u>openstack</a><br>
More help : <a href="https://help.launchpad.net/ListHelp" target="_blank">https://help.launchpad.net/<u></u>ListHelp</a><br>
</blockquote></div><br></div></div>