jolokia_使用WildFly 9和Jolokia监视DevOps样式

jolokia

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
{"request": {"mbean": "java.lang:type=Memory","attribute": "HeapMemoryUsage","type": "read"},"value": {"init": 67108864,"committed": 241696768,"max": 477626368,"used": 141716336},"timestamp": 1437392335,"status": 200
}

服务器环境概述:

  • 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

wildfly读取日志文件

保护端点

如您所料,可以像访问应用程序一样访问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

jolokia

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/337184.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机的本质是哲学

点击蓝字关注我们因公众号更改推送规则&#xff0c;请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络&#xff0c;侵删学什么抽象模型庄子说过吾生有崖&#xff0c;知无涯。以有限的生命去学习无尽的知识是很愚蠢的。所以&#xff0c;学习的终极目标一定不是知识本…

用户首次登录之前必须更改密码_技术丨带你玩转Win10系统的用户账户

由于微软关于Win10家庭版系统用户和组的功能设置&#xff0c;在一般情况下&#xff0c;用户无法直接进行用户账户的管理。但通过简单的设置&#xff0c;同样能够玩转Win10系统的用户账户。今天我们将探索并学习&#xff1a;如何实现用户账户的设置与更改。Microsoft账户登录首次…

mac 大写锁定延迟_延迟分析中的案例研究:锁定与同步

mac 大写锁定延迟特别是在这篇文章中&#xff0c;我们将讨论&#xff1a; java.concurrent.Lock创建的垃圾 比较锁与同步 如何以编程方式测量延迟 争用对锁和同步的影响 遗漏对延迟测试的影响 回到我最喜欢的主题之一&#xff0c;垃圾创建/分配。 有关此主题的更多详细信…

很好玩的12个c语言面试题

点击蓝字关注我们因公众号更改推送规则&#xff0c;请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络&#xff0c;侵删12个C语言面试题&#xff0c;涉及指针、进程、运算、结构体、函数、内存&#xff0c;看看你能做出几个&#xff01;1.gets()函数问&#xff1a;请…

python 百分比数据_如何使用python计算数据列相对于另一列的百分比排名

这是一个解决方案。整理训练数据。然后对验证数据使用searchsorted。import pandas as pdimport numpy as np# Generate Dummy Datadf_train pd.DataFrame({Values: 1000*np.random.rand(15712)})#Sort Datadf_train df_train.sort_values(Values)# Calculating Rank and Ran…

java 开发 jvm_Java开发人员应了解的JVM流行语

java 开发 jvm本文将与您分享一些JVM“流行语”&#xff0c;它们对于Java开发人员在执行任何JVM性能和垃圾回收调优之前理解和记住非常重要。 本文末尾还提供了一些技巧&#xff0c;包括一些高级性能调优最佳实践。 将来的文章中将探讨有关Oracle HotSpot并发GC收集器&#xff…

C/C++在Java、Android和Objective-C三大平台下实现混合编程

点击蓝字关注我们因公众号更改推送规则&#xff0c;请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络&#xff0c;侵删Android和iOS开发都支持C开发&#xff0c;可以一套代码多平台使用。同时C难以反编译的特性也可以为Android开发带来代码的保密&#xff0c;另一n…

Linux Shell 004-四则运算

Linux Shell 004-四则运算 本节关键字&#xff1a;Linux、Bash Shell、四则运算 相关指令&#xff1a;echo、let、set、unset Bash Shell支持的四则运算 算术运算&#xff1a;默认情况下&#xff0c;shell就只能支持简单的整数运算 运算内容&#xff1a;加&#xff08;&…

vs不一致的行尾对话框怎么调出_SolidWorks工程图打开后图纸没有了空白了怎么办?还能找回来吗?...

SolidWorks工程图打开后图纸没有了空白了怎么办&#xff1f;还能找回来吗&#xff1f;答案是肯定的。不知道大家使用SolidWorks有没有遇到这种情况&#xff0c;如下图所示&#xff1a;就是我们本来画好标注好的工程图&#xff0c;竟然没了&#xff0c;怎么造成的呢&#xff1f;…

jpa 忽略bean_在WildFly上将JPA和CDI Bean与骆驼一起使用

jpa 忽略bean我并没有真正为此计划&#xff0c;但是在一个免费的会议月份中&#xff0c;我有机会进行了一些深入的探讨&#xff0c;并向您展示了WildFly-Camel子系统提供的WildFly魔术上的更多Camel。 商业背景 该演示来自Christina Lin在JBoss Demo-Central上的一个演示 。 她…

【如何系统地学习 C++ 语言】关于C++,有哪些你需要提前知道的知识?

点击蓝字关注我们因公众号更改推送规则&#xff0c;请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络&#xff0c;侵删C是一种通用的、面向对象的编程语言&#xff0c;可用于开发操作系统、游戏、图形用户界面、后端以及高性能系统和应用程序。所以&#xff0c;尽管…

python rsa加密之后byte类型存储到数据库中_python3 rsa加密

遇到了跟你一样的问题。 此js封装的源码 如下。希望看到的大神解决了的话帮我一下。/*RSA, a suite of routines for performing RSA public-key computations in JavaScript.Copyright 1998-2005 David Shapiro.Dave Shapirodaveohdave.comchanged by Fuchun, 2010-05-06fcrpg…

jdk 11 模块系统_JDK 9:模块系统状态的重点

jdk 11 模块系统马克雷因霍尔德 &#xff08; Mark Reinhold &#xff09;的“模块系统状态 &#xff08;SOMS&#xff09;”已于本月初发布&#xff0c;它提供了信息丰富的可读性“对Jigsaw项目中原型的Java SE平台进行了增强的非正式概述&#xff0c;并被提议作为JSR 376的起…

【如何系统地学习 C++ 语言】从开发环境到C++进阶,应该怎么办?

点击蓝字关注我们因公众号更改推送规则&#xff0c;请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络&#xff0c;侵删开发环境如前面介绍的那样&#xff0c;C属于一种静态的编译型语言&#xff0c;所以&#xff0c;开发环境配置过程中就需要用到对应的编译器。C有…

小学生在家自学python_小学生都能学会的python(函数)

小学生都能学会的python(函数)神马是函数函数&#xff1a; 对功能或者动作的封装函数的定义def 函数名(形参列表):函数体(return)ret 函数名(实参列表)函数的返回值return&#xff0c;只要执行到return 函数的本次调用就会被停止1.如果函数不写return&#xff0c; 没有返回值。…

高度可定制化的方案_如何开发高度可定制的产品

高度可定制化的方案您是否听说过&#xff1a;“我们非常喜欢您的产品……除了一些小细节。”&#xff1f; 然后&#xff0c;CIO推出了一系列其他“必备”要求的清单&#xff0c;其中有数百个要添加到您的惊人产品中。 您是否听说过&#xff0c;甚至说过&#xff1a;“团队&…

文言文编程?厉害了程序员!

点击蓝字关注我们因公众号更改推送规则&#xff0c;请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络&#xff0c;侵删你能看出来&#xff0c;这首诗妙在哪里吗&#xff1f;来源&#xff1a;量子位&#xff08;ID&#xff1a;QbitAI&#xff09;&#xff0c;梦晨 萧…

sublime快捷键代码对齐_Python配置sublime运行环境

1、下载安装python和sublime&#xff0c;不再赘述&#xff0c;官网即可下载&#xff1b;2、打开subilme&#xff0c;打开Tools > Build System > New Build System..3、点击New Build System后&#xff0c;会生成一个空配置文件&#xff0c;在这个配置文件内覆盖配置信息…

C语言贪心算法

点击蓝字关注我们因公众号更改推送规则&#xff0c;请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络&#xff0c;侵删01基本概念贪心算法是指在对问题求解时&#xff0c;总是做出在当前看来是最好的选择。也就是说&#xff0c;不从整体最优上加以考虑&#xff0c;…

spark有什么作用_Spark 101:它是什么,它做什么以及为什么起作用

spark有什么作用最近&#xff0c;许多大数据的讨论都使用了新名称。 有人认为流行的新手Apache Spark ™是Hadoop的更易访问&#xff0c;更强大的替代品&#xff0c; Hadoop是大数据的首选原始技术。 其他人则认为Spark是Hadoop和其他技术的有力补充&#xff0c;它具有自己的优…