分布式應用:Zabbix監控Tomcat

目錄

一、理論

1.Zabbix監控Tomcat

二、實驗

1.Zabbix監控Tomcat

三、問題

1.獲取軟件包失敗

?2.tomcat 配置 JMX remote monitor不生效

?3.Zabbix客戶端日志報錯


一、理論

1.Zabbix監控Tomcat

(1)環境

zabbix服務端:192.168.204.214

zabbix客戶端:192.168.204.215

原理:

(2)客戶端安裝tomcat(yum方式)

yum install tomcat -ySystemctl start tomcatcd /var/lib/tomcat/webappsmkdir testcd test

(3)添加動態網頁內容

vim index.jsp                                                                   # 添加動態頁面內容:<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html><head><title>test</title></head><body><% out.println("動態頁面:test tomcat01");%></body></html>#頁面輸出內容為test tomcat01,tomcat02服務器上則將01改為02方便查看實驗效果#創建動態資源頁面

(3)修改配置
?

vim /etc/tomcat/server.xml
#修改主配置文件內容125行,原有內容不需要更改,對比此段內容添加即可<Host name="localhost" ?appBase="webapps"unpackWARs="true" autoDeploy="true"xmlNamespaceAware="false"><Context docBase="/var/lib/tomcat/webapps/test"path="" reloadable="true" />#指定自己的tomcat頁面訪問文件路徑

(4)重新啟動

systemctl restart tomcat

(5)服務端器安裝zabbix-java-gateway

wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-java-gateway-4.0.14-1.el7.x86_64.rpm

(6)安裝zabbix-java-gateway

 yum -y localinstall zabbix-java-gateway-4.0.14-1.el7.x86_64.rpm

(7)編輯gateway配置文件

vim /etc/zabbix/zabbix_java_gateway.conf

去掉LISTEN_IP、LISTEN_PORT(監聽端口)、START_POLLERS(進程數)的注釋符號

LISTEN_IP定義被監控機器的地址,不指定默認監聽全部機器 編輯server配置文件

vim /etc/zabbix/zabbix_server.conf

定義以下3個配置參數:

JavaGateway=192.168.204.214JavaGatewayPort=10052StartJavaPollers=5

啟動zabbix-java-gateway服務:

 systemctl start zabbix-java-gateway

重啟zabbix-server服務:

systemctl restart zabbix-server

(4)查看監聽端口

netstat -lntp |grep java

(5)開啟JMX

客戶端器編輯tomcat配置文件

vim /usr/libexec/tomcat/server

添加以下內容:

CATALINA_OPTS="$CATALINA_OPTS \-Dcom.sun.management.jmxremote \-Dcom.sun.management.jmxremote.port=8008 \-Dcom.sun.management.jmxremote.ssl=false \-Djava.rmi.server.hostname=192.168.204.215 \-Dcom.sun.management.jmxremote.authenticate=false"

hostname定義客戶端地址,端口8008(默認12345)

(6)腳本、重啟tomcat:

腳本

vim /opt/tomcat.sh#!/bin/bash
a=`netstat -natp |grep 8080|awk '{print $6}'|grep 'LISTEN'`
if [[ $a = 'LISTEN' ]];thenecho "0"  #表示tomcat啟動中
elseecho "1"  #表示tomcat未啟動
fi#添加權限
chmod 777 /opt/tomcat.sh

添加可識別配置文件

vim zabbix_agent2.confUserParameter=tomcat.status,source /opt/tomcat.sh
#實現對腳本的監控chmod +s /bin/nestat
#加上權限,避免netstat在服務端報錯

驗證

zabbix_get -s '192.168.204.215' -p 10050 -k 'tomcat.status'

重啟

systemctl restart tomcat

(7)查看監聽端口9999

netstat -lntp |grep 8008

(8)進入zabbix前端頁面添加主機

與普通情況添加監控主機不同,監控B機器的tomcat需要配置JMX接口 模板鏈接JMX相關的兩個模板:

Template App Apache Tomcat JMX

Template App Generic Java JMX

當JMX圖標變綠即表示配置成功

二、實驗

1.Zabbix監控Tomcat

(1)安裝

(2) 啟動

(3)設置文件

?

(4)監聽端口

?(5)安裝zabbix-java-gateway

下載

?安裝zabbix-java-gateway

(6) 編輯gateway配置文件

?去掉LISTEN_IP、LISTEN_PORT(監聽端口)、START_POLLERS(進程數)的注釋符號

?LISTEN_IP定義被監控機器的地址,不指定默認監聽全部機器

(7) 編輯server配置文件

?定義以下3個配置參數:

?(8)啟動zabbix-java-gateway服務

?(9) 重啟zabbix-server服務

?(10)查看監聽端口

(11)開啟JMX

客戶端器編輯tomcat配置文件

重啟 監聽端口

(12)腳本、重啟tomcat

腳本

?賦權

?

重啟

(13)驗證

授權

驗證

0是tomcat啟動中

???????

(14)進入zabbix前端頁面添加主機

進入zabbix前端頁面添加主機

與普通情況添加監控主機不同,監控B機器的tomcat需要配置JMX接口 模板鏈接JMX相關的兩個模板:

Template App Apache Tomcat JMX

Template App Generic Java JMX

當JMX圖標變綠即表示配置成功:

?

監控項

?

?

監控JVM

?

(15)自定義監控tomcat

三、問題

1.獲取軟件包失敗

(1)報錯

?(2)原因分析

證書過期

(3)解決方法

命令結尾附加

--no-check-certificate

成功

?2.tomcat 配置 JMX remote monitor不生效

(1)原因分析

centos 7 上的 tomcat 配置 JMX remote monitor,由于tomcat安裝方法的不同,jmx 配置方法也有所不同

(2)解決方法

配置 $CATALINA_OPTS

打開tomcat啟動文件 /usr/libexec/tomcat/server,在變量 $FLAGS 賦值語句下面添加:

CATALINA_OPTS="$CATALINA_OPTS \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=8008 \
-Dcom.sun.management.jmxremote.ssl=false \
-Djava.rmi.server.hostname=192.168.204.215 \
-Dcom.sun.management.jmxremote.authenticate=true \
-Dcom.sun.management.jmxremote.password.file=/usr/share/tomcat/conf/jmxremote.password \
-Dcom.sun.management.jmxremote.access.file=/usr/share/tomcat/conf/jmxremote.access"

配置分析:

-Dcom.sun.management.jmxremote: 啟用 jmxremote 功能;
-Dcom.sun.management.jmxremote.port=8008:jmxremote 監聽端口,用于客戶端連接,樣例設為 8008;
-Dcom.sun.management.jmxremote.ssl=false:是否啟用 SSL 連接,樣例設為 false;
-Dcom.sun.management.jmxremote.authenticate=true:開啟用戶認證連接;
-Dcom.sun.management.jmxremote.password.file=/usr/share/tomcat/conf/jmxremote.password:認證用戶密碼文件,樣例設為 /usr/share/tomcat/conf/jmxremote.password;
-Dcom.sun.management.jmxremote.access.file=/usr/share/tomcat/conf/jmxremote.access:認證用戶權限配置文件,樣例設為 /usr/share/tomcat/conf/jmxremote.access。如果不啟用用戶認證,將選項 Dcom.sun.management.jmxremote.authenticate 的值設為false,也無需再設置選項 Dcom.sun.management.jmxremote.password.file 和 Dcom.sun.management.jmxremote.access.file。

JMX 遠程連接的用戶認證文件
從 jre 的安裝目錄找到 jmxremote.access 和 jmxremote.password.template,復制到 $CATALINA_OPTS 中設置的認證文件位置,將 jmxremote.password.template 重命名為 jmxremote.password。

cp /usr/lib/jvm/jre/lib/management/jmxremote.access /usr/share/tomcat/conf/
cp /usr/lib/jvm/jre/lib/management/jmxremote.password.template /usr/share/tomcat/conf/jmxremote.password

jmxremote.access 文件末尾添加認證用戶名和用戶權限,示例中 jmxuser 為用戶名,readwrite 為該用戶的 jmx 權限:

jmxuser readwrite

jmxremote.password 文件末尾添加認證用戶名和用戶密碼,示例中 jmxuser 為用戶名,與 jmxremote.access 中一致,jmxpassword 為該用戶的 jmx 遠程連接密碼:

jmxuser jmxpassword

最后,更改文件權限和屬主:

cd /usr/share/tomcat/conf/
chmod 600 jmxremote.password jmxremote.access
chown tomcat.tomcat jmxremote.password jmxremote.access

firewalld 設置

可以直接關閉 firewalld:

systemctl stop firewalld
systemctl disable firewalld

或者針對 JMX 監聽的端口(包括兩個隨機端口和選項 -Dcom.sun.management.jmxremote.port 指定的固定端口)設置開放規則。首先查看java 監聽的端口:

ss -lnp | grep java

任何開放端口:

firewall-cmd --add-port=8008/tcp --add-port=<random-port-1>/tcp --add-port=<random-port-2>/tcp

重啟 tomcat 后隨機端口會變,這時候又要重新設置端口規則。

重啟 tomcat,JMX 連接

使用 JDK 自帶的 jconsole 或 VisualVM 連接 JVM Remote。

?3.Zabbix客戶端日志報錯

(1)報錯

?(2)原因分析

因為使用了netstat -p參數。

權限問題,zabbix_agentd是zabbix用戶啟動的,默認不能執行netstat -p等命令,導致從服務器取到的自動發現腳本為空

(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
(3)解決方法?

為了方便普通用戶執行一些特權命令,SUID/SGID程序允許普通用戶以root身份暫時執行該程序,并在執行結束后再恢復身份。

chmod +s /bin/netstat

?成功

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/40552.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/40552.shtml
英文地址,請注明出處:http://en.pswp.cn/news/40552.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

推薦 4 個 yyds 的 GitHub 項目

本期推薦開源項目目錄&#xff1a; 1. 開源的 Markdown 編輯器 2. MetaGPT 3. SuperAGI 4. 一個舒適的筆記平臺 01 開源的 Markdown 編輯器 Cherry 是騰訊開源的 Markdown 編輯器&#xff0c;基于 Javascript具有輕量簡潔、易于擴展等特點&#xff0c; 它可以運行在瀏覽器或服…

UVM學習知識點

這里是引用 include 和 import pkg區別 1.作用 include與C語言中類似&#xff0c;用于在一個文件中插入另一個文件&#xff1b;import用于在一個作用域中引入一個package&#xff08;或其中的內容&#xff09;&#xff0c;使得這些內容在當前作用域中可以不添加其所在的packag…

常用游戲運營指標DAU、LTV及參考范圍

文章目錄 前言運營指標指標范圍參考值留存指標的意義總結 前言 作為游戲人免不了聽到 DAU 、UP值、留存 等名詞&#xff0c;并且有些名詞聽起來還很像&#xff0c;特別是一款上線的游戲&#xff0c;這些游戲運營指標是衡量游戲業務績效和用戶參與度的重要數據&#xff0c;想做…

Tesseract用OpenCV進行文本檢測

我沒有混日子&#xff0c;只是辛苦的時候沒人看到罷了 一、什么是Tesseract Tesseract是一個開源的OCR&#xff08;Optical Character Recognition&#xff09;引擎&#xff0c;OCR是一種技術&#xff0c;它可以識別和解析圖像中的文本內容&#xff0c;使計算機能夠理解并處理…

Maven之mirrorof范圍

mirrorOf 是 central 還是 * 的問題 在配置阿里對官方中央倉庫的鏡像服務器時&#xff0c;我們使用到了 <mirror> 元素。 <mirror><id>aliyunmaven</id><mirrorOf>central</mirrorOf><name>阿里云公共倉庫</name><url>…

vmalert集成釘釘告警

vmalert通過在alert.rules中配置告警規則實現告警&#xff0c;告警規則語法與Prometheus兼容&#xff0c;依賴Alertmanager與prometheus-webhook-dingtalk實現釘釘告警&#xff0c;以下步驟&#xff1a; 1、構建vmalert 從源代碼構建vmalert&#xff1a; git clone https://…

vue computed和watch的區別

conputed 原理 computed計算屬性,依賴一個值的變化而變化且具有緩存作用,computed在vue內部維護了一個dirty屬性,默認為true當取值的時候dirty為true,執行用戶的方法,且將值緩存起來吧dirty設為false再次取值的時候判斷dirty,dirty為false的時候直接從緩存里面取當依賴的數據…

在docker下進行mysql的主從復制

搭建步驟 1、拉取鏡像 docker pull mysql:latest2、查看鏡像 docker images3、創建啟動容器 Master docker run -p 3306:3306 --name mysql-master -e MYSQL_ROOT_PASSWORD123456 -d mysql:latestSlave docker run -p 3307:3306 --name mysql-slave -e MYSQL_ROOT_PASSWO…

企業權限管理(十)-用戶詳情

用戶詳情 UserController findById方法 Controller RequestMapping("/user") public class UserController {Autowiredprivate IUserService userService;//查詢指定id的用戶RequestMapping("/findById.do")public ModelAndView findById(String id) thro…

Sublime Text 4 Build 4151 4152 發布及注冊方法

Sublime Text 是一個商業代碼編輯器。它原生支持許多編程語言和標記語言&#xff0c;用戶可以通過插件來擴展它的功能&#xff0c;這些插件通常是由社區建立的&#xff0c;并以自由軟件許可證的形式維護。為了方便插件&#xff0c;Sublime Text 有一個 Python API。 Sublime T…

【劍指Offer 57】和為s的連續正數序列,Java解密。

LeetCode 劍指Offer 75道練習題 文章目錄 劍指Offer:和為s的連續正數序列示例:限制:解題思路:劍指Offer:和為s的連續正數序列 【題目描述】 輸入一個正整數 target ,輸出所有和為 target 的連續正整數序列(至少含有兩個數)。 序列內的數字由小到大排列,不同序列按照首…

糖尿病視網膜病變,黃斑病變,年齡相關檢測研究(Matlab代碼)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;歡迎來到本博客????&#x1f4a5;&#x1f4a5; &#x1f3c6;博主優勢&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客內容盡量做到思維縝密&#xff0c;邏輯清晰&#xff0c;為了方便讀者。 ??座右銘&a…

VMware虛擬安裝Ubuntu,然后切換Ubuntu內核版本

無論你選擇哪種方法&#xff0c;一旦進入 GRUB 引導菜單&#xff0c;你應該能夠選擇需要的內核版本并啟動系統。 打開終端&#xff1a;你可以通過按下 Ctrl Alt T 快捷鍵來打開終端。 使用 sudo&#xff1a;切換內核需要管理員權限&#xff0c;因此你需要使用 sudo 命令。首…

分類預測 | MATLAB實現CNN-BiGRU-Attention多輸入分類預測

分類預測 | MATLAB實現CNN-BiGRU-Attention多輸入單輸出分類預測 目錄 分類預測 | MATLAB實現CNN-BiGRU-Attention多輸入單輸出分類預測預測效果基本介紹模型描述程序設計參考資料 預測效果 基本介紹 Matlab實現CNN-BiGRU-Attention多特征分類預測&#xff0c;卷積雙向門控循環…

解決“先commit再pull”造成的git沖突

一、問題場景 在分支上修改了代碼然后commit&#xff08;沒有push&#xff09;&#xff0c;此時再git pull&#xff0c;拉下了別人的修改&#xff0c;但是報錯無法merge 二、解決步驟 1.在idea下方工具欄選擇git -> log&#xff0c;可以看到版本變化鏈表&#xff0c;右鍵…

【文件上傳】大文件分片上傳、斷點續傳、秒傳前后端實現

1、大文件上傳面臨的問題&#xff1a; 在傳統的文件上傳中&#xff0c;由于文件過大&#xff0c;導致網絡傳輸時間長&#xff0c;這過程中會遇到網絡不穩定或者不小心關閉的瀏覽器&#xff08;電腦&#xff09;的情況&#xff0c;從而導致文件上傳中斷。中斷之后&#xff0c;又…

題解:ABC277C - Ladder Takahashi

題解&#xff1a;ABC277C - Ladder Takahashi 題目 鏈接&#xff1a;Atcoder。 鏈接&#xff1a;洛谷。 難度 算法難度&#xff1a;普及。 思維難度&#xff1a;入門。 調碼難度&#xff1a;入門。 綜合評價&#xff1a;簡單。 算法 深度優先搜索簡單圖論 思路 把每…

【Apollo】賦能移動性:阿波羅自動駕駛系統的影響

前言 Apollo (阿波羅)是一個開放的、完整的、安全的平臺&#xff0c;將幫助汽車行業及自動駕駛領域的合作伙伴結合車輛和硬件系統&#xff0c;快速搭建一套屬于自己的自動駕駛系統。 開放能力、共享資源、加速創新、持續共贏是 Apollo 開放平臺的口號。百度把自己所擁有的強大、…

動態內存分配及管理——C語言

目錄 一、為什么存在動態內存分配 二、動態內存函數介紹 2.1 malloc 2.2 free 2.3 calloc 2.4 realloc 三、常見的動態內存錯誤 3.1 對NULL指針的解引用操作 3.2 對動態開辟空間的越界訪問 3.3 對非動態開辟內存使用free釋放 3.4 使用free釋放一塊動態開辟內存的一部…

搭建Web服務器并用cpolar發布至公網訪問

本地電腦搭建Web服務器并用cpolar發布至公網訪問 文章目錄 本地電腦搭建Web服務器并用cpolar發布至公網訪問前言1. 首先在電腦安裝PHPStudy、WordPress、cpolar2. 安裝cpolar&#xff0c;進入Web-UI界面3. 安裝wordpress4. 進入wordpress網頁安裝程序5. 利用cpolar建立的內網穿…