【zabbix6监控java-tomcat全流程】

news2024/11/15 4:26:06

目录

  • 一、监控主机安装zabbix-server
    • 1、zabbix的安装
    • 2、配置数据库
    • 3、为zabbix server配置数据库
    • 4、启动服务,web界面安装
  • 二、被监控主机安装tomcat
    • 1、安装JDK
    • 2、安装tomcat
  • 三、zabbix的服务端安装zabbix-java-gateway
  • 四、被监控主机tomcat的配置
  • 五、web界面添加主机

一、监控主机安装zabbix-server

环境:rockylinux :8
rocky liunx官网:https://rockylinux.org/zh-CN/download
在这里插入图片描述
下载最小的镜像就满足需求了。

zabbix的官网:

yum安装zabbix,由于官网下载比较慢。我们可以去阿里云上下载;

https://mirrors.aliyun.com/zabbix/zabbix/6.0/rhel/8/x86_64/?spm=a2c6h.25603864.0.0.28953e16x19Axr

在这里插入图片描述
下载这种进行安装:

解释:zabbix是lnmp环境的服务,采用nginx+php+mysql来进行一个部署,采用yum安装,很多的服务的配置文件都会帮你写好,不需要自己修改,只修改哈端口,ip,数据库等,zabbix的数据库表不能帮你自动创建,所有zabbix官方会把这些库表写好,自己导进去就行了。 zabbix-agent2是用go语言写点,性能并发更好一点。
服务端安装zabbix-agent2后,就能采集数据,发给zabbix-server

1、zabbix的安装

dnf install zabbix-server-mysql -y
dnf install zabbix-agent2 -y
yum install zabbix-web-mysql zabbix-nginx-conf.noarch nginx -y
yum install zabbix-web-mysql zabbix-nginx-conf.noarch nginx -y

2、配置数据库

启动服务:
systemctl start mysqld
登录数据库:
mysql
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix identified with mysql_native_password by "redhat";
mysql> grant all privileges on zabbix.* to zabbix;
mysql> flush privileges;
导入数据库:
yum install zabbix-sql-scripts.noarch -y
cd /usr/share/zabbix-sql-scripts/mysql/
zcat server.sql.gz | mysql zabbix
mysql zabbix < double.sql
mysql zabbix < history_pk_prepare.sql

3、为zabbix server配置数据库

vi /etc/zabbix/zabbix_server.conf 
DBName=zabbix
DBUser=zabbix
DBPassword=redhat

4、启动服务,web界面安装

systemctl enable --now nginx.service php-fpm.service zabbix-server.service zabbix-agent2.service
yum install zabbix-web-service -y
systemctl enable --now zabbix-web-service.service
修改nginx配置文件:
vi /etc/nginx/conf.d/zabbix.conf 
server {
        listen          8080;
        server_name     192.168.145.144;
}
systemctl start nginx
登录浏览器界面:192.168.145.144:8080
默认登陆用户名及密码:
用户名:Admin
密码:zabbix

二、被监控主机安装tomcat

1、安装JDK

环境:redhat:9
下面以安装jdk21.0.4为例:
jdk的官网:https://www.oracle.com/java/technologies/downloads/?er=221886#java21
1、检查当前环境是否有jdk环境
rpm -qa | grep java
2、下载jdk包
在这里插入图片描述
我安装的是rpm包:直接在linux上输入:
[root@localhost ~]# wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.rpm
[root@localhost ~]# yum localinstall jdk*
验证jdk是否安装成功:
[root@localhost ~]# java -version
java version “21.0.4” 2024-07-16 LTS
Java™ SE Runtime Environment (build 21.0.4+8-LTS-274)
Java HotSpot™ 64-Bit Server VM (build 21.0.4+8-LTS-274, mixed mode, sharing)

2、安装tomcat

tomcat的官网:https://tomcat.apache.org/
在这里插入图片描述
在这里插入图片描述

[root@localhost ~]# wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.26/bin/apache-tomcat-10.1.26.tar.gz
[root@localhost bin]# tar -xvf apache-tomcat-10.1.26.tar.gz
[root@localhost bin]# ./startup.sh    #启动,浏览器测试http://192.168.2.129:8080/

三、zabbix的服务端安装zabbix-java-gateway

JMX是一种用于监视和管理Java应用程序的标准API,允许你收集应用程序的运行时信息,如内存使用情况、线程状态、CPU负载等,并且还可以通过JMX远程连接进行配置和管理。你可以使用JMX客户端来连接到运行JMX的Java应用程序,以收集信息和执行管理操作。

Java Gateway则是使用JMX技术来远程管理和监控分布式Java应用程序的代理。它位于Java应用程序和JMX客户端之间,充当中间件,将JMX请求转发到Java应用程序中的相应MBean,并返回结果给JMX客户端。Java Gateway可以处理与多个Java应用程序的连接,从而提供集中的监控和管理接口
[root@localhost ~]# yum install zabbix-java-gateway
[root@localhost ~]# grep -n '^[a-Z]' /etc/zabbix/zabbix_java_gateway.conf 
17:LISTEN_PORT=10052
27:PID_FILE="/var/run/zabbix/zabbix_java_gateway.pid"
[root@localhost ~]# grep -v '^#' /etc/zabbix/zabbix_server.conf | grep 'Java'
JavaGateway=127.0.0.1
JavaGatewayPort=10052
StartJavaPollers=5
[root@localhost ~]# systemctl enable zabbix-java-gateway.service --now
[root@localhost ~]# systemctl restart zabbix-server.service 

四、被监控主机tomcat的配置

JMX配置

搭建好tomcat后,进入tomcat下的bin目录,修改catalina.sh文件

vim catalina.sh

无密码远程监视配置方式
搜索 Execute The Requested Command ,在下方添加以下内容(ip修改成自己的):

CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=10.1.1.52 -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

验证JMX是否开启成功
进入tomcat的bin目录下,利用脚本重启tomcat,然后查看1099端口是否开放:

#重启tomcat
./shutdown.sh
./startup.sh
#查看端口状态
netstat -ant

在这里插入图片描述

五、web界面添加主机

在这里插入图片描述

在这里插入图片描述
完成!

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

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

相关文章

动态规划题目:单词拆分/三角形最小路径和 - leetcode

动态规划思想 / 步骤 &#xff1a; 先将 当前要求 总结成一个 精炼的 小问题 &#xff0c; 然后 将 求解题目 转换为 求解N个 小问题 &#xff0c; 每个小问题的 求解过程相同 &#xff0c;但是 过程涉及 的 数据 是不同的 &#xff0c; 例如第三个 小问…

windows qt编译报错 无法打开包括文件: “EGL/egl.h”: No such file or directory

windows mingw32 qt creator QtAV 推荐ffmpeg依赖包 QT5.14.2 如果出现&#xff1a;无法打开包括文件: “EGL/egl.h”: No such file or directory 可能是Qt6的问题.在QT5上安装。 编译步骤&#xff1a; git clone https://github.com/wang-bin/QtAV.git cd QtAV &&…

ABAQUS应用10-Abaqus/Standard求解器定义接触时的有限滑移和小滑移

[toc] 0、背景 之前在做混塔参数化建模的过程中&#xff0c;Part之间的接触设置问题困扰过我很久。有一个老哥手动操作一遍以后发现需要定义小滑移接触。今天正好看见曹老师公众号讲解了这部分的设置&#xff0c;为防止丢失&#xff0c;收录在这里。同时欢迎大家关注曹老师公…

【Git学习 | 第2篇】在IDEA中使用Git

文章目录 在IDEA中使用Git1. IDEA中配置Git2. 获取Git仓库2.1 本地初始化仓库2.2 从远程仓库克隆 3. 本地仓库操作4. 远程仓库操作5. 分支操作 在IDEA中使用Git 1. IDEA中配置Git IDEA中使用Git&#xff0c;本质上使用的本地安装的Git软件配置步骤&#xff1a; 2. 获取Git仓库…

【Python与GUI开发】事件处理与打包分发

文章目录 前言 一、高级事件处理 1.自定义事件 2.拖放操作 3.复杂控件的事件处理 二、打包和分发 Tkinter 应用 1.PyInstaller 2.cx_Freeze 3.spec 文件 4.分发注意事项 三、实战示例&#xff1a;文件浏览器 总结 前言 在前面的讨论中&#xff0c;我们深入理解了 T…

Pikachu SQL注入训练实例

1 数字类型注入 打开Burp Suit工具&#xff0c;选择Proxy&#xff0c;之后点击Open Browser打开浏览器&#xff0c;在浏览器中输入http://localhost:8080/pikachu-master打开Pikachu漏洞练习平台。 选择“数字型注入”&#xff0c;之后点击下拉框随便选择一个ID&#xff0c;…

linux进程——父子进程层面的PID,fork的原理与理解

前言&#xff1a;本篇内容主要讲解进程中系统调用fork和父子进程的概念与原理&#xff0c; 想要系统学习linux进程的友友们只管看本篇文章是不行的。 还要学习一些linux进程的周边知识以及linux进程其他方面的知识&#xff0c;博主的linux专栏中已经加入了这些文章方便友友们进…

【Java数据结构】初始线性表之一:链表

为什么要有链表 上一节我们描述了顺序表&#xff1a;【Java数据结构】初识线性表之一&#xff1a;顺序表-CSDN博客 并且进行了简单模拟实现。通过源码知道&#xff0c;ArrayList底层使用数组来存储元素。 由于其底层是一段连续空间&#xff0c;当在ArrayList任意位置插入或者…

GESP CCF C++ 七级认证真题 2024年6月

第 1 题 下列C代码的输出结果是&#xff08; &#xff09;。 #include <iostream> #include <cmath> using namespace std; int main() { cout << sin(3.1415926 / 2); return 0; } A. 0 B. 1 C.0.5 D.0.7071 第 2 题 对于如下图的二叉树&#x…

「C++」类和对象(1)

欢迎来到海盗猫鸥的博客~~ 本篇我们将学习部分C中的类和对象相关知识沃~ (• ω •)&#xff89;算我一个&#xff5e; 目录 类的定义 类的定义及使用 访问限定符 类域 实例化 实例化概念&#xff1a; 对象大小&#xff1a; 内存对齐规则&#xff1a; 注意点&#xff…

卸载docker简单且ok的方法

杀死所有容器 docker kill $(docker ps -a -q) 删除所有容器 docker rm $(docker ps -a -q) 删除所有镜像 docker rmi $(docker images -q) 停止docker服务 systemctl stop docker 查看安装列表 yum list installed|grep docker 依次卸载已安装的docker yum -y remove docke…

入职前回顾一下git-01

git安装 Linux上安装git 在linux上建议用二进制的方式来安装git&#xff0c;可以使用发行版包含的基础软件包管理工具来安装。 红帽系 sudo yum install gitDebian系 sudo apt install gitWindows上安装git 去官网下载和操作系统位数相同的安装包.或者可以直接安装GitHub…

【C++】类和对象·this指针

C中的类与C语言中的结构体有很多的相似的地方&#xff0c;可以说本质上除了结构体只能定义成员变量&#xff0c;以及结构体默认的访问控制权限是public之外与class没啥区别。但是结构体变量每次调用函数的时候需要指针&#xff0c;而类中的成员函数明明被保存在公共代码段&…

SCI一区级 | Matlab实现SSA-CNN-GRU-Multihead-Attention多变量时间序列预测

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.【SCI一区级】Matlab实现SSA-CNN-GRU-Multihead-Attention麻雀算法优化卷积门控循环单元融合多头注意力机制多变量时间序列预测&#xff0c;要求Matlab2023版以上&#xff1b; 2.输入多个特征&#xff0c;输出单个…

“深入JVM内部:揭秘Java程序运行的神秘黑盒“(二)

一.双亲委派模型(在加载环节) 简单描述了如何查找 .class 文件的策略. 概念&#xff1a;如果一个类加载器收到了类加载的请求&#xff0c;它首先不会自己去尝试加载这个类&#xff0c;而是把这个请求委派给父类加载器去完成&#xff0c;每一个层次的类加载器都是如此&#x…

C++ | Leetcode C++题解之第238题除自身以外数组的乘积

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<int> productExceptSelf(vector<int>& nums) {int length nums.size();// L 和 R 分别表示左右两侧的乘积列表vector<int> L(length, 0), R(length, 0);vector<int> answer(l…

RK3568平台(文件系统篇)Buildroot文件系统

一.Buildroot文件系统概述 Buildroot 是Linux平台上一个开源的嵌入式Linux系统自动构建框架。整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。可通过Buildroot配置&#xff0c;编译出一个完整的可以直接烧写到机器上运行的Linux系统软件。 获取buildroot官方源码&am…

人工智能 (AI) 应用:一个异常肺呼吸声辅助诊断系统

关键词&#xff1a;深度学习、肺癌、多标签、轻量级模型设计、异常肺音、音频分类 近年来&#xff0c;流感对人类的危害不断增加&#xff0c;COVID-19疾病的迅速传播加剧了这一问题&#xff0c;导致大多数患者因呼吸系统异常而死亡。在这次流行病爆发之前&#xff0c;呼吸系统…

【Vue3】4个比较重要的设计模式!!

大家好,我是CodeQi! 一位热衷于技术分享的码仔。 在我投身于前端开发的职业生涯期间,曾有一次承接了一个大型项目的维护工作。此项目运用的是 Vue 框架,然而其代码结构紊乱不堪,可维护性极度糟糕😫。 这使我深刻领会到,理解并运用 Vue 中的重要设计模式是何等关键! …

Codeforces Round 958 (Div. 2)(A~C)题

A. Split the Multiset 思路: 最优的策略是每次操作分出 k−1&#x1d458;−1 个 1&#xff0c;然后考虑最后是否会剩下一个单独的 1。 代码: #include<bits/stdc.h> using namespace std; #define N 1000005 typedef long long ll; typedef unsigned long long ull;…