使用WildFly 9和Jolokia监视DevOps样式
DevOps是當今最熱門的話題之一。 而且圍繞它的主題范圍很廣,因此很難真正找到完整的描述或涵蓋體面粒度的所有內容。 可以肯定的一件事:最重要的部分之一是提供正確的度量標準和信息以監視應用程序。
Java EE和JMX
監視Java EE服務器的標準方法是JMX。 使用JConsole,VisualVM或Oracle Mission-Control Suite等工具可以實現此目的。 這種方法有很多優點,并且大多數運營團隊在過去實際上經常使用這種方法。 但這并不完全適用于DevOps方式。 它是一個單獨的工具,在沒有安裝所有工具和操作系統(Nagios等)的情況下,DevOps團隊沒有一種好的方法來實際編寫腳本。 如今,使用http端點公開配置和運行時信息感覺更加自然,而且使用起來也更加容易。
Jolokia –使用JSON的JMX到HTTP
對于JMX,一種非常方便的方法是使用Jolokia 。 Jolokia是一個JMX-HTTP橋,可替代JSR-160連接器。 這是一種基于代理的方法,支持許多平臺。 除了基本的JMX操作外,它還通過獨特的功能(例如批量請求和細粒度的安全策略)增強了JMX遠程處理功能。 最近,它與許多JBoss項目捆綁在一起(例如WIldFly-Camel子系統),并且可以輕松地在自己的應用程序中使用。
裝有Jolokia的簡單Java EE 7應用
只需創建一個簡單的Java EE 7項目(也許使用Adam Bien的maven工件 )并向其中添加一個依賴項即可:
<dependency><groupId>org.jolokia</groupId><artifactId>jolokia-core</artifactId><version>1.3.1</version></dependency>下一步是在web.xml中配置Jolokia AgentServlet并將其映射到適合您需求的模式:
<servlet><servlet-name>jolokia-agent</servlet-name><servlet-class>org.jolokia.http.AgentServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>jolokia-agent</servlet-name><url-pattern>/metrics/*</url-pattern></servlet-mapping>照常構建您的應用程序,并根據需要訪問相關指標。 完整的。 Jolokia參考資料解釋了不同的操作和類型 。
將您的應用程序部署到WildFly 9
將WildFly 9下載并解壓縮到您選擇的文件夾中。 使用bin / standalone.xml啟動。
指標示例
雖然您可以訪問服務器中定義的每個JMX MBean,但這里是一系列指標,這些指標可以幫助您立即使用。
堆內存使用情況:
- http:// localhost:8080 / javaee-devops / metrics / read / java.lang:type = Memory / HeapMemoryUsage
服務器環境概述:
- http:// localhost:8080 / javaee-devops / metrics / read / jboss.as:core-service = server-environment
您不僅可以讀取JMX屬性,還可以執行操作,例如訪問server.log文件的最新10行:
- http:// localhost:8080 / javaee-devops / metrics / exec / jboss.as.expr:subsystem = logging / readLogFile / server.log / UTF-8 / 10/0 / true
保護端點
如您所料,可以像訪問應用程序一樣訪問AgentServlet。 為了防止這種情況,您必須對其進行保護。 好消息是,使用WildFly中的基本身份驗證和應用程序領域,這是可能的。 第一步是將用戶添加到應用程序領域。 這可以通過bin / add-user.sh | bat腳本來完成。 確保添加角色“ SuperUser”。 現在將以下內容添加到您的web.xml中:
<security-constraint><display-name>Metrics Pages</display-name><web-resource-collection><web-resource-name>Protected Metrics Site</web-resource-name><description>Protected Metrics Site</description><url-pattern>/metrics/*</url-pattern></web-resource-collection><auth-constraint><description/><role-name>SuperUser</role-name></auth-constraint><user-data-constraint><transport-guarantee>NONE</transport-guarantee></user-data-constraint></security-constraint><login-config><auth-method>BASIC</auth-method><realm-name>ApplicationRealm</realm-name></login-config><security-role> <role-name>SuperUser</role-name> </security-role>這里要做的最后一件事是向WEB-INF /添加一個名為jboss-web.xml的文件。 這將僅包含三行:
<jboss-web><security-domain>other</security-domain> </jboss-web>現在,無論何時嘗試訪問度量標準端點,服務器都會向您發出基本身份驗證請求。
尋找更多?
這只是基于WildFly公開的標準JMX指標的一個簡單示例。 您可以肯定地注冊自己的MBean或通過將單個調用聚合為一個來擴展它。 另一個選擇是,將hawt.io用作可立即使用的可擴展UI,該UI已經為WildFly和許多其他子系統提供了各種指標。 但這是非常簡單的方法。 Jolokia的下一個主要版本可能會提供更多功能,使DevOps的使用更加便捷。
翻譯自: https://www.javacodegeeks.com/2015/07/monitoring-devops-style-with-wildfly-9-and-jolokia.html
總結
以上是生活随笔為你收集整理的使用WildFly 9和Jolokia监视DevOps样式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ddos怎么用(ddos这么使用)
- 下一篇: 安卓好平板推荐(安卓好平板)