Hawkular安裝
以下內(nèi)容介紹Hawkular安裝步驟,在安裝過程中不要使用root用戶溯捆,使用其他非root用戶進(jìn)行安裝仲墨。
Apache Cassandra安裝
安裝 ccm(Cassandra Cluster Manager)
ccm是用于在本地主機(jī)上創(chuàng)建、啟動和刪除Apache Cassandra疏遏。
預(yù)先準(zhǔn)備
安裝Python(本次環(huán)境是Python2.7版本)脉课。
-
安裝pyYAML:
sudo easy_install pyYaml
。
若出現(xiàn)sudo: easy_install: command not found
錯誤财异,則執(zhí)行:sudo apt-get install python-setuptools
完成后再執(zhí)行命令:
sudo easy_install pyYaml
安裝six :
sudo easy_install six
倘零。安裝ant:
sudo apt-get install ant
。安裝psutil戳寸。
安裝Java(>=Java7)呈驶。
-
ccm只適用于localhost。如果要創(chuàng)建多個節(jié)點(diǎn)集群疫鹊,需要使用別名袖瞻。在現(xiàn)代linux發(fā)行版上,不需要做任何事情拆吆,但在Mac OS X中聋迎,您將需要創(chuàng)建別名:
sudo ifconfig lo0 alias 127.0.0.2 up sudo ifconfig lo0 alias 127.0.0.3 up ...
之后127.0.0.1,127.0.0.2和127.0.0.3都為可用的。
安裝
執(zhí)行命令:
pip install ccm
為Hawkular創(chuàng)建Cassandra集群
執(zhí)行命令:
ccm create hawkular -v 3.0.12 -n 1
ccm updateconf "start_rpc: true"
ccm start
現(xiàn)在Cassandra在機(jī)器上的默認(rèn)端口上運(yùn)行枣耀。
常用命令:
ccm stop #停止當(dāng)前集群的節(jié)點(diǎn)
ccm start #啟動當(dāng)前集群未啟動的節(jié)點(diǎn)
ccm create #創(chuàng)建集群
ccm list #查看所有的集群
ccm switch cluster_name #切換集群
ccm status #查看當(dāng)前集群狀態(tài)
ccm remove #刪除當(dāng)前集群或者指定的集群(刪除所有數(shù)據(jù))
Hawkular Services安裝
下載安裝包hawkular-services霉晕。
下載名為:hawkular-services-dist-x.y.z.Final.zip (或者是 .tar.gz)的安裝包,請下載0.35.0及之前的版本奕枢,因?yàn)?.36.0版本中存在未修復(fù)的問題娄昆。-
解壓安裝包,解壓目錄根據(jù)需要選确毂颉(以下將Hawkular 解壓目錄稱為$HS_HOME)萌焰。本次下載的安裝包為: hawkular-services-dist-0.35.0.Final.zip,解壓命令如下:
sudo unzip hawkular-services-dist-0.35.0.Final.zip
-
進(jìn)入hawkular-services-dist-0.35.0.Final目錄谷浅,創(chuàng)建用戶(替換命令中的myUsername和myPassword)扒俯。
sudo sh ./bin/add-user.sh -a -u myUsername -p myPassword -g read-write,read-only
-
啟動Hawkular Services:
a.簡單啟動,命令如下:sh $HS_HOME/bin/standalone.sh
b.使用嵌入式WildFly代理啟動Hawkular Services(此功能用于監(jiān)控自身一疯,因?yàn)镠awkular Services基于WildFly撼玄,嵌入式代理可將指標(biāo)和庫存推送至Hawkular Services)。將myUsername和myPassword替換為步驟3中定義的用戶名墩邀、密碼掌猛,命令如下:
sh $HS_HOME/bin/standalone.sh -Dhawkular.rest.user=myUsername -Dhawkular.rest.password=myPassword -Dhawkular.agent.enabled=true
-
啟動成功后,訪問 http://localhost:8080眉睹,界面如下所示:
Hawkular Services狀態(tài)頁面 -
訪問http://localhost:8080/hawkular/metrics可查看Metrics服務(wù)狀態(tài)荔茬,如下圖:
Metrics Services狀態(tài)頁面
快速入門
示例流程:hawkular中添加Metrics废膘,然后使用grafana讀取所創(chuàng)建的Metrics,以下將介紹詳細(xì)的實(shí)現(xiàn)慕蔚。
添加Metrics
在hawkular的解壓目錄下新建文件metrics_day_1.json
丐黄,內(nèi)容如下:
[
{"timestamp": 1468533600000, "value": 10},
{"timestamp": 1468535400000, "value": 10},
{"timestamp": 1468537200000, "value": 9.7},
{"timestamp": 1468539000000, "value": 9.6},
{"timestamp": 1468540800000, "value": 9.6},
{"timestamp": 1468542600000, "value": 9.6},
{"timestamp": 1468544400000, "value": 9.5},
{"timestamp": 1468546200000, "value": 9.5},
{"timestamp": 1468548000000, "value": 9.5},
{"timestamp": 1468549800000, "value": 9.5},
{"timestamp": 1468551600000, "value": 9.5},
{"timestamp": 1468553400000, "value": 9.5},
{"timestamp": 1468555200000, "value": 9.6},
{"timestamp": 1468557000000, "value": 9.6},
{"timestamp": 1468558800000, "value": 9.7},
{"timestamp": 1468560600000, "value": 9.7},
{"timestamp": 1468562400000, "value": 9.8},
{"timestamp": 1468564200000, "value": 10},
{"timestamp": 1468566000000, "value": 10.2},
{"timestamp": 1468567800000, "value": 10.3},
{"timestamp": 1468569600000, "value": 10},
{"timestamp": 1468571400000, "value": 9.9},
{"timestamp": 1468573200000, "value": 10.1},
{"timestamp": 1468575000000, "value": 9.7},
{"timestamp": 1468576800000, "value": 9.2},
{"timestamp": 1468578600000, "value": 9.2},
{"timestamp": 1468580400000, "value": 9.9},
{"timestamp": 1468582200000, "value": 11},
{"timestamp": 1468584000000, "value": 12.4},
{"timestamp": 1468585800000, "value": 13.3},
{"timestamp": 1468587600000, "value": 14.3},
{"timestamp": 1468589400000, "value": 13.6},
{"timestamp": 1468591200000, "value": 11},
{"timestamp": 1468593000000, "value": 10.2},
{"timestamp": 1468594800000, "value": 10.1},
{"timestamp": 1468596600000, "value": 10.3},
{"timestamp": 1468598400000, "value": 10.9},
{"timestamp": 1468600200000, "value": 11.4},
{"timestamp": 1468602000000, "value": 11.7},
{"timestamp": 1468603800000, "value": 11.5},
{"timestamp": 1468605600000, "value": 11.1},
{"timestamp": 1468607400000, "value": 10.6},
{"timestamp": 1468609200000, "value": 10.1},
{"timestamp": 1468611000000, "value": 9.6},
{"timestamp": 1468612800000, "value": 9.2},
{"timestamp": 1468614600000, "value": 9.1},
{"timestamp": 1468616400000, "value": 9.1},
{"timestamp": 1468618200000, "value": 9.1}
]
執(zhí)行命令:
cd hawkular-services-dist-0.35.0.Final/
curl -u myUsername:myPassword -X POST http://localhost:8080/hawkular/metrics/gauges/temperature/raw -d @metrics_day_1.json -H "Content-Type: application/json" -H "Hawkular-Tenant: myTenant"
至此已經(jīng)添加了組織:myTenant,Metric:temperature
直接使用REST API查看
結(jié)果如下:
[root@localhost hawkular-services-dist-0.35.0.Final]# curl -u admin:admin123 \
> -X GET "http://localhost:8080/hawkular/metrics/gauges/temperature/raw?start=1468578600000&end=1468594800001&order=ASC" \
> -H "Content-Type: application/json" -H "Hawkular-Tenant: myTenant"
[{"timestamp":1468578600000,"value":9.2},{"timestamp":1468578600000,"value":9.2},{"timestamp":1468580400000,"value":9.9},{"timestamp":1468580400000,"value":9.9},{"timestamp":1468582200000,"value":11.0},{"timestamp":1468582200000,"value":11.0},{"timestamp":1468584000000,"value":12.4},{"timestamp":1468584000000,"value":12.4},{"timestamp":1468585800000,"value":13.3},{"timestamp":1468585800000,"value":13.3},{"timestamp":1468587600000,"value":14.3},{"timestamp":1468587600000,"value":14.3},{"timestamp":1468589400000,"value":13.6},{"timestamp":1468589400000,"value":13.6},{"timestamp":1468591200000,"value":11.0},{"timestamp":1468591200000,"value":11.0},{"timestamp":1468593000000,"value":10.2},{"timestamp":1468593000000,"value":10.2},{"timestamp":1468594800000,"value":10.1},{"timestamp":1468594800000,"value":10.1}]
給grafana安裝hawkular-datasource插件
詳細(xì)教程參見官方文檔孔飒。
-
使用grafana-cli直接安裝灌闺,命令如下:
grafana-cli plugins install hawkular-datasource
插件會安裝在grafana的plugins目錄下,默認(rèn)是在
/var/lib/grafana/plugins
里坏瞄。 手動安裝桂对,直接下載[插件安裝包]( download the .zip file)到grafana/data/plugins目錄下,然后解壓惦积。
配置數(shù)據(jù)源
示例配置如下圖所示:
Tenant填寫創(chuàng)建的組織名接校,Token不用填寫。
配置面板
新建面板之后狮崩,做如下配置:
配置完成后蛛勉,調(diào)整查詢時間(此次測試數(shù)據(jù)產(chǎn)生的時間在2016年7月15日),然后就可以在面板中查看測試數(shù)據(jù)了睦柴,如下圖:
Troubleshooting
使用hawkular-services-dist-0.36.0.Final.zip包安裝诽凌,啟動hawkular時出現(xiàn)問題:
10:33:47,567 ERROR [org.jboss.resteasy.resteasy_jaxrs.i18n] (default task-7) RESTEASY002010: Failed to execute: javax.ws.rs.NotFoundException: RESTEASY003210: Could not find resource for full path: http://localhost:8080/hawkular/inventory/status
at org.jboss.resteasy.core.registry.ClassNode.match(ClassNode.java:75)
at org.jboss.resteasy.core.registry.RootClassNode.match(RootClassNode.java:48)
at org.jboss.resteasy.core.ResourceMethodRegistry.getResourceInvoker(ResourceMethodRegistry.java:445)
at org.jboss.resteasy.core.SynchronousDispatcher.getInvoker(SynchronousDispatcher.java:257)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:194)
at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:221)
at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
訪問 http://localhost:8080,界面如下:
解決辦法:使用hawkular-services-dist-0.35.0.Final.zip(.tar.zip)及之前的安裝包坦敌。
補(bǔ)充
配置hawkular連接manageiq步驟:
-
拉取manageiq鏡像:
sudo docker pull manageiq/manageiq:fine-2
-
運(yùn)行manageiq:
sudo docker run --privileged -d -p 8443:443 manageiq/manageiq:fine-2
-
連接manageiq和hawkular:
詳細(xì)步驟參見官方配置文檔中的ADDING HAWKULAR AS PROVIDER IN MANAGEIQ部分侣诵,注意此處訪問的是https://localhost:8443。
在配置中出現(xiàn)不能連接hawkular時可運(yùn)行如下命令:iptables -I INPUT 1 -i docker0 -j ACCEPT
-
連接成功之后可以如下圖所示: