国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Docker環(huán)境下的中間件監(jiān)控,沒錯(cuò)就兩步

Object / 928人閱讀

摘要:在很多企業(yè)環(huán)境中,都采用作為服務(wù)。對的監(jiān)控,較為常用的方式是使用。那么,到全的環(huán)境下,如何搭建并實(shí)現(xiàn)以上的監(jiān)控系統(tǒng),今天就由數(shù)人云工程師來分享一下。以及其他依賴文件可以在碼云中獲得。

本文來自KVM群直播的實(shí)錄分享。在很多企業(yè)環(huán)境中,都采用 tomcat 作為web 服務(wù)。對 tomcat 的監(jiān)控,較為常用的方式是使用 JMX。那么,到全 Docker 的環(huán)境下,如何搭建并實(shí)現(xiàn)以上的監(jiān)控系統(tǒng),今天就由 數(shù)人云工程師來分享一下。

JMX(Java Management Extensions,即Java管理擴(kuò)展)是Java平臺(tái)上為應(yīng)用程序、設(shè)備、系統(tǒng)等植入管理功能的框架。JMX可以跨越一系列異構(gòu)操作系統(tǒng)平臺(tái)、系統(tǒng)體系結(jié)構(gòu)和網(wǎng)絡(luò)傳輸協(xié)議,靈活的開發(fā)無縫集成的系統(tǒng)、網(wǎng)絡(luò)和服務(wù)管理應(yīng)用,本文通過一個(gè)示例演示如何通過JMX對tomcat進(jìn)行監(jiān)控。以下示例使用到了tomcat, jmxtrans, supervisord, influxdb, granfana 等組件

部署圖

從下圖可以看出監(jiān)控主要流程如下:

jmxtrans通過jmx獲取TOMCAT運(yùn)行時(shí)信息并存入influxDB

grafana從influxDB獲取數(shù)據(jù)并顯示

構(gòu)建tomcat + jmxtrans 鏡像 開啟TOMCAT監(jiān)控

修改catalina.sh文件,在Execute The Requested Command 這一行之前加上參數(shù)
`
CATALINA_OPTS="$CATALINA_OPTS-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8081 -Djava.rmi.server.hostname=192.168.99.205-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.authenticate=false”`

說明: 如果加在后面,可能會(huì)導(dǎo)致無法開啟jmx接口

參數(shù)說明

Djava.rmi.server.hostname=192.168.99.205 :tomcat部署所在的主機(jī)IP,基于實(shí)際情況進(jìn)行修改。### 通過jconsole驗(yàn)證,是否開啟java jmx 打開jconsole輸入tomcat地址即可訪問jmx

如果看到以下頁面,則說明jmx已經(jīng)開啟,可以獲取監(jiān)控信息。

Tomcat的信息主要在這里

jmxtrans配置文件

ok,現(xiàn)在tomcat中JMX接口已經(jīng)打開,但是如何獲取需要我們關(guān)注的信息呢?這個(gè)時(shí)候就需要jmxtrans來幫忙了

從上邊的圖,我們可以看到,Tomcat中內(nèi)置了許多監(jiān)控項(xiàng),我們可以通過jmxtrans的配置文件來取得需要的監(jiān)控監(jiān)控項(xiàng)

{
 "servers" : [ {
   "port" : "8081",
   "host" : "127.0.0.1",
   "queries" : [
      {
       "obj" : "java.lang:type=Memory",
       "attr" : [ "HeapMemoryUsage","NonHeapMemoryUsage" ],
       "resultAlias":"jvmMemory",
       "outputWriters" : [ {
         "@class" : "com.googlecode.jmxtrans.model.output.InfluxDbWriterFactory",
         "url" : "http://192.168.99.205:8086/",
         "username" : "root",
         "password" : "root",
         "database" : "shurenyun"
        }]
     }
     {
       "obj" : "Catalina:type=GlobalRequestProcessor,name="http-apr-8080"",
       "attr" : [ "bytesSent" ],
       "resultAlias":"tomcatByteSent",
       "outputWriters" : [ {
         "@class" :"com.googlecode.jmxtrans.model.output.InfluxDbWriterFactory",
         "url" : "http://192.168.99.205:8086/",
         "username" : "root",
         "password" : "root",
         "database" : "shurenyun"
        }]
      }
}
說明:

port: 之前配置的jmx端口(8081)
obj: 需要監(jiān)控的對象,這個(gè)值可以從jconsole中獲取

attr: 監(jiān)控的對象屬性,可以從這個(gè)地方獲取

resulteAlias:為該屬性定義的別名,在influxDB中會(huì)用到
url: influxDB的地址
username & password: influxDB的賬號(hào)密碼
database: 數(shù)據(jù)庫名字,jmxtrans會(huì)自己創(chuàng)建

安裝supervisord

Supervisor (http://supervisord.org) 是一個(gè)用 Python 寫的進(jìn)程管理工具,可以很方便的用來啟動(dòng)、重啟、關(guān)閉進(jìn)程(不僅僅是Python 進(jìn)程) 安裝supervisord也非常簡單


不過由于大家都知道的原因,建議在通過apt-get安裝的時(shí)候先換成國內(nèi)的源,例如

`debhttp://mirrors.163.com/debian/ jessie main non-free contrib
deb http://mirrors.163.com/debian/ jessie-updatesmain non-free contrib
deb http://mirrors.163.com/debian/ jessie-backportsmain non-free contrib
deb-src http://mirrors.163.com/debian/ jessie mainnon-free contrib
deb-src http://mirrors.163.com/debian... main non-free contrib
deb-src http://mirrors.163.com/debian... main non-free contrib
deb http://mirrors.163.com/debian... main non-free contrib
deb-src http://mirrors.163.com/debian... main non-free contrib`

通過Dockerfile 完成以上工作

使用Dockerfile一鍵完成以上工作。

Dockerfile以及其他依賴文件可以在碼云中獲得。
附碼云地址:https://git.oschina.net/thoma...

influxdb 部署

這里為了方便演示,我們直接使用host模式啟動(dòng)一個(gè)influxdb
docker run -d --net=hostinfluxdb:latest

查看數(shù)據(jù)

按照下圖提示:

選擇Database:shurenyun

輸入SHOW MEASUREMENTS 查看當(dāng)前DB信息
可以看到DB里邊已經(jīng)有數(shù)據(jù)了


influxdb

部署&配置grafana 部署grafana

照例使用容器部署

docker run -i -p 3000:3000grafana/grafana
登錄 grafana, 賬號(hào)密碼:admin/admin

配置 配置數(shù)據(jù)源


配置監(jiān)控頁面

按照下面提示配置grafana dashbord即可看到實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)

OK, 到此我們就完成了一個(gè)完整的tomcat監(jiān)控流程, 如果有報(bào)警的需求,可以考慮對接zabbix,不過這里暫時(shí)不涉及這一話題,如果有興趣的話數(shù)人云會(huì)在后續(xù)的分享中加入zabbix的內(nèi)容,同時(shí)以上部署方式在數(shù)人云(shurenyun.com)上可以同樣操作,歡迎試用,謝謝大家。

Q&A

Q1:這個(gè)方案是不是是不是也可以監(jiān)控gc之類的
A1:可以監(jiān)控gc

Q2:jmx監(jiān)控性能影響有考慮過嗎?
A2:監(jiān)控肯定會(huì)對系統(tǒng)性能有所影響,所以要合理取舍,選擇必要的監(jiān)控項(xiàng)去監(jiān)控

Q3:我在使用grafana的時(shí)候發(fā)現(xiàn)在將多個(gè)(20個(gè)點(diǎn))監(jiān)控項(xiàng)數(shù)據(jù)復(fù)合展示的時(shí)候,grafana會(huì)crash,這個(gè)東西有什么優(yōu)化部署的經(jīng)驗(yàn)嘛?
A3:我們測試的時(shí)候沒遇到這個(gè)問題,估計(jì)是數(shù)據(jù)源或者配置問題,幾十個(gè)監(jiān)控項(xiàng)出問題不應(yīng)該是性能,這個(gè)需要具體分析下crash的原因,如果確定是grafana的問題,建議還是直接去社區(qū)交流

Q4:應(yīng)用執(zhí)行的sql有辦法監(jiān)控嗎?
A4: 這個(gè)方案是基于jmx,只針對java,不支持sql

Q5:請問,能否監(jiān)控到每個(gè)java線程的狀態(tài),有沒有出現(xiàn)假死
A5:不能監(jiān)控到每個(gè)java線程的狀態(tài),因?yàn)樗陨淼奶匦运鶝Q定的

?

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/26686.html

相關(guān)文章

  • 【 全干貨 】5 分鐘帶你看懂 Docker

    摘要:本文從定義,作用,技術(shù)架構(gòu),安裝和使用等全方位帶你看懂。如圖中左邊紅框中和右邊的紅框中都唯一表示為同一個(gè)鏡像。最后,于開發(fā)者而言提供了一種開發(fā)環(huán)境的管理辦法,與測試人員而言保證了環(huán)境的同步,于運(yùn)維人員提供了可移植的標(biāo)準(zhǔn)化部署流程。 作者丨唐文廣:騰訊工程師,負(fù)責(zé)無線研發(fā)部地圖測試。 導(dǎo)語:Docker,近兩年才流行起來的超輕量級虛擬機(jī),它可以讓你輕松完成持續(xù)集成、自動(dòng)交付、自動(dòng)部署...

    Edison 評論0 收藏0
  • 斌哥的 Docker 進(jìn)階指南—監(jiān)控方案的實(shí)現(xiàn)

    摘要:本文轉(zhuǎn)自劉斌博文如何選擇監(jiān)控方案,文中劉斌從技術(shù)的角度深入解釋了監(jiān)控的數(shù)據(jù)采集原理,介紹了現(xiàn)有開源的監(jiān)控方案,以及能夠?qū)M(jìn)行監(jiān)控功能的主流服務(wù)工具。下一章,劉斌將為大家介紹監(jiān)控的開原方案,主流服務(wù),及其特點(diǎn)。 過去的一年中,關(guān)于 Docker 的話題從未斷過,而如今,從嘗試 Docker 到最終決定使用 Docker 的轉(zhuǎn)化率依然在逐步升高,關(guān)于 Docker 的討論更是有增無減。另一...

    X_AirDu 評論0 收藏0
  • 【 全干貨 】5 分鐘帶你看懂 Docker

    摘要:本文從定義,作用,技術(shù)架構(gòu),安裝和使用等全方位帶你看懂。最后,于開發(fā)者而言提供了一種開發(fā)環(huán)境的管理辦法,與測試人員而言保證了環(huán)境的同步,于運(yùn)維人員提供了可移植的標(biāo)準(zhǔn)化部署流程。顯示上圖內(nèi)容就表明安裝完成。 作者丨唐文廣:騰訊工程師,負(fù)責(zé)無線研發(fā)部地圖測試。 導(dǎo)語:Docker,近兩年才流行起來的超輕量級虛擬機(jī),它可以讓你輕松完成持續(xù)集成、自動(dòng)交付、自動(dòng)部署,并且實(shí)現(xiàn)開發(fā)環(huán)境、測試環(huán)...

    lavnFan 評論0 收藏0
  • sudo or gosu

    摘要:所謂的,正如其名,就是該鏡像的根命令。個(gè)人認(rèn)為,跟第二大不同,在于是對使用者鑒權(quán),而是對目標(biāo)權(quán)限進(jìn)行鑒權(quán)。即使遇到了這樣默認(rèn)行為是終止進(jìn)程的信號(hào),也不會(huì)直接終止,而會(huì)轉(zhuǎn)發(fā)出去。但是,和兩個(gè)信號(hào)是無法捕獲的,對此也無能為力。 太長不看:如果需要在Dockerfile的ENTRYPONNT中指定運(yùn)行命令的用戶,用gosu代替sudo可以避免某些信號(hào)處理上的邊界條件。不過這些邊界條件比較罕見...

    luckyyulin 評論0 收藏0

發(fā)表評論

0條評論

Object

|高級講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<