zabbix监控mysql数据库、nginx、Tomcat
文章目录
- 一.zabbix监控mysql数据库
- 1.环境规划
- 2.zabbix-server安装部署(192.168.198.17)
- 3.zabbix-mysql安装部署(192.168.198.15)
- 3.1 部署 zabbix 客户端
- 3.2 服务端验证 zabbix-agent2 的连通性(192.168.198.17)
- 3.3 Web 页面中添加mysql主机
- 3.3.1 点击左边菜单栏【配置】中的【主机】,点击【创建主机】
- 3.4 自定义监控内容(在客户端创建自定义 key:192.168.198.15)
- 3.4.1 明确需要执行的 linux 命令
- 3.4.2 创建 zabbix 的监控项配置文件,用于自定义 key
- 3.4.3 在服务端验证新建的监控项
- 4. 可对mysql创建的主机根据实际修改
- 二.zabbix实现对nginx运行状态的监控
- 1.自定义key实现监控nginx运行状态
- 1.1 在zabbix-agent服务器中安装并开启nginx
- 1.2 配置zabbix agent自定义参数
- 1.3 修改 zabbix 配置文件
- 1.4 服务端验证
- 1.5 添加主机及模块等
- 三.zabbix监控Tomcat
- 1.实验环境的部署(客户端)
- 2.服务端的配置
- 2.1 zabbix监测界面的配置
一.zabbix监控mysql数据库
1.环境规划
host | IP | 部署 |
---|---|---|
zabbix-server | 192.168.198.17 | zabbix服务器搭建 |
zabbix-mysql | 192.168.198.15 | zabbix客户端搭建 |
2.zabbix-server安装部署(192.168.198.17)
请参考以下配置:https://blog.csdn.net/Katie_ff/article/details/132171211?spm=1001.2014.3001.5501
3.zabbix-mysql安装部署(192.168.198.15)
需要提前在客户端安装mysql服务,具体安装过程如下:
https://blog.csdn.net/Katie_ff/article/details/131640949?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169190624516800192230012%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=169190624516800192230012&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogfirst_rank_ecpm_v1~rank_v31_ecpm-5-131640949-null-null.268v1koosearch&utm_term=mysql&spm=1018.2226.3001.4450
3.1 部署 zabbix 客户端
#关闭防火墙和selinux,更改主机名并运行bash刷新主机名
systemctl disable --now firewalld
setenforce 0hostnamectl set-hostname mysql
su
#服务端和客户端都配置时间同步
yum install -y ntpdate
ntpdate -u ntp.aliyun.com13 Aug 13:23:05 ntpdate[76508]: adjust time server 203.107.6.88 offset 0.007140 sec
#客户端配置时区,与服务器保持一致
mv /etc/localtime{,.bak}
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
date
2023年 08月 13日 星期日 13:23:23 CST
#设置 zabbix 的下载源,安装 zabbix-agent2
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm cd /etc/yum.repos.d
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repoyum install -y zabbix-agent2
#修改 agent2 配置文件
vim /etc/zabbix/zabbix_agent2.conf
......
Server=192.168.198.17 #80行,指定 zabbix 服务端的 IP 地址
ServerActive=192.168.198.17 #120行,指定 zabbix 服务端的 IP 地址
Hostname=mysql #134行,指定当前 zabbix 客户端的主机名
#启动 zabbix-agent2
systemctl start zabbix-agent2
systemctl enable zabbix-agent2netstat -natp | grep zabbix
tcp6 0 0 :::10050 :::* LISTEN 44454/zabbix_agent2
3.2 服务端验证 zabbix-agent2 的连通性(192.168.198.17)
#安装 zabbix 主动获取数据的命令
yum install -y zabbix-get
zabbix_get -s '192.168.198.15' -p 10050 -k 'agent.ping'
1zabbix_get -s '192.168.198.15' -p 10050 -k 'system.hostname'
mysql
3.3 Web 页面中添加mysql主机
3.3.1 点击左边菜单栏【配置】中的【主机】,点击【创建主机】
【主机名称】设置成 mysql
【可见的名称】设置成 MySQL-192.168.198.15
【群组】选择 Linux server
【Interfaces】的【IP地址】设置成 192.168.198.15
点击添加
再点击上方菜单栏【模板】
【Link new tamplates】搜索 mysql ,选择 【Template DB MySQL by Zabbix agent】
点击 【添加】
3.4 自定义监控内容(在客户端创建自定义 key:192.168.198.15)
3.4.1 明确需要执行的 linux 命令
who | wc -l
3
3.4.2 创建 zabbix 的监控项配置文件,用于自定义 key
vim /etc/zabbix/zabbix_agent2.conf
#可以将自定义的监控项配置文件创建在 zabbix_agent2.d 目录中
273 Include=/etc/zabbix/zabbix_agent2.d/*.conf
#自定义监控项的格式如下
296 # Format: UserParameter=<key>,<shell command>
cd /etc/zabbix/zabbix_agent2.d/
vim UserParameter_login.conf
#添加内容
UserParameter=login.user,who|wc -l
systemctl restart zabbix-agent2
3.4.3 在服务端验证新建的监控项
[root@zbx-server opt]# zabbix_get -s '192.168.198.18' -p 10050 -k 'login.user'
3
此处为3是在客户端有三个用户,则监控的是这三个用户
[root@mysql zabbix_agent2.d]# who
root :0 2023-07-11 00:52 (:0)
root pts/0 2023-07-11 01:08 (:0)
root pts/1 2023-08-13 13:21 (192.168.198.1)
4. 可对mysql创建的主机根据实际修改
根据实际筛选
二.zabbix实现对nginx运行状态的监控
利用zabbix实现对nginx运行状态的监控 (要么运行 要么不运行)(配置对应的触发器)
1.自定义key实现监控nginx运行状态
1.1 在zabbix-agent服务器中安装并开启nginx
(1)编译安装nginx
#拖入nginx-1.12.2安装包
cd /opt
#解压
tar zxvf nginx-1.12.2.tar.gz -C /opt/
#编译安装
cd nginx-1.12.2/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
make -j2 && make install
注:如执行make -j2 && make install出现了以下错误:
make: *** 没有规则可以创建“default”需要的目标“build”。 停止。
错误原因:这是因为安装nginx 编译时缺少一些依赖造成的
解决办法:安装依赖:
yum -y install gcc openssl openssl-devel pcre-devel zlib zlib-devel
再次执行:
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
make -j2 && make install
(2)优化路径
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
(3)添加 Nginx 系统服务
vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service
注:如果systemctl start nginx.service启动不了,检查 “nginx” 用户是否存在于系统中。您可以运行以下命令检查用户是否存在:
id nginx
id: nginx: no such user
如不存在创建用户并重启:
useradd -r nginx
passwd nginx
systemctl restart nginx
(4)修改nginx配置
vim /usr/local/nginx/conf/nginx.conf
在server块里面新增一个location块:
location /nginx_status {stub_status on;access_log off;#allow 192.168.198.0/24; #允许访问的范围#deny all;
}
#启动nginx
/usr/local/nginx/sbin/nginx
netstat -antp | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 88019/nginx: master
#验证nginx状态页面:
[root@nginx nginx-1.12.2]# curl http://192.168.198.15/status
Active connections: 1
server accepts handled requests1 1 1
Reading: 0 Writing: 1 Waiting: 0
1.2 配置zabbix agent自定义参数
vim /etc/zabbix/zabbix_agentd.conf
Include=/etc/zabbix/zabbix_agentd.d/*.conf #改为只导入conf文件
#重启agent
systemctl restart zabbix-agent2.service
#上传zabbix_linux_plugin.sh 脚本到/etc/zabbix/zabbix_agentd.d/并授权执行脚本测试,确认可以从本地获取nginx状态数据:
cd /etc/zabbix/zabbix_agent2.d/
vim zabbix_nginx.sh
#脚本内容如下:
#/bin/bash
#Description:Automated monitoring nginx performance and process nginx_status scriptsNGINX_PORT=80
NGINX_COMMAND=$1nginx_ping(){/sbin/pidof nginx |wc -l}nginx_active(){/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Active/ {print $NF}'}nginx_reading(){/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Reading/ {print $2}'}nginx_writing(){/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Writing/ {print $4}'}nginx_waiting(){/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Waiting/ {print $6}'}nginx_accepts(){/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $1}'}nginx_handled(){/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $2}'}nginx_requests(){/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $3}'}case $NGINX_COMMAND inping)nginx_ping;;active)nginx_active;;reading)nginx_reading;;writing)nginx_writing;;waiting)nginx_waiting;;accepts)nginx_accepts;;handled)nginx_handled;;requests)nginx_requests;;*)echo $"USAGE:$0 {ping|active|reading|writing|waiting|accepts|handled|requests}"
esac
#给脚本权限
chmod u+x /etc/zabbix/zabbix_agent2.d/zabbix_nginx.sh
#测试
./zabbix_linux_plugin.sh nginx_status 80 active
1.3 修改 zabbix 配置文件
vim /etc/zabbix/zabbix_agent2.d/userparameter_mysql.conf# 增加
UserParameter=nginx_status[*],/bin/bash /etc/zabbix/zabbix_agent2.d/zabbix_nginx.sh \$1
# 修改完成重启 zabbix-agent
systemctl restart zabbix-agent2.service
1.4 服务端验证
[root@zabbix ~]# zabbix_get -s 192.168.198.15 -k nginx_status[active]
1
1.5 添加主机及模块等
三.zabbix监控Tomcat
zabbix通过部署jmx来监控tomcat
zabbix提供了一个java gateway的应用去监控jmx(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。
1.实验环境的部署(客户端)
安装Tomcat服务,具体操作如下:
https://blog.csdn.net/Katie_ff/article/details/131442008?spm=1001.2014.3001.5501
#查看端口是否开启
netstat -natp | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 54333/java
#编辑发布目录
[root@tomcat tomcat]# cd webapps/ROOT/
vim test.jsp
The time is: <%=new java.util.Date() %>cd /usr/local/tomcat/bin
vim catalina.sh
ATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=1234"/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
浏览器端测试:http://192.168.198.15:8080/test.jsp
2.服务端的配置
安装请参考以下:
https://blog.csdn.net/Katie_ff/article/details/132171211?spm=1001.2014.3001.5501
yum install zabbix-java-gateway.x86_64 -y
cd /etc/zabbix/
vim zabbix_java_gateway.conf
LISTEN_IP="0.0.0.0" ##监听地址
LISTEN_PORT=10052 ##监听端口
PID_FILE="/var/run/zabbix/zabbix_java.pid" ##PID_FILE文件路径
START_POLLERS=5 ##开启的工作线程数量
systemctl start zabbix-java-gateway ##开启服务
systemctl enable zabbix-java-gateway ##设置开机自启
vim zabbix_server.conf
JavaGateway=192.168.198.17 ##IP地址
JavaGatewayPort=10052 ##端口
StartJavaPollers=5 ##采集数据的进程数
systemctl restart zabbix-server 重启进程
netstat -antlp
ps ax ##查看server开启的java进程是否为5个
2.1 zabbix监测界面的配置
配置–主机–tomcat–模板
相关文章:

zabbix监控mysql数据库、nginx、Tomcat
文章目录 一.zabbix监控mysql数据库1.环境规划2.zabbix-server安装部署(192.168.198.17)3.zabbix-mysql安装部署(192.168.198.15)3.1 部署 zabbix 客户端3.2 服务端验证 zabbix-agent2 的连通性(192.168.198.17&#x…...
深入探索二叉树算法:理解、构建和应用C语言
引言 二叉树是计算机科学中的一种重要数据结构,它在各种算法和应用中都扮演着重要角色。本篇博客将带您深入探索二叉树的世界,从基本概念到高级应用,逐步展开二叉树的奥秘,助您更好地理解、构建和应用二叉树算法。 什么是二叉树…...

(css)点击前隐藏icon图表 点击后显示
(css)点击前隐藏icon图表 点击后显示 效果 html <liv-for"(item,index) in sessionList":key"index"class"liClass":class"{ active: change2 index }"tabindex"2">...<el-tooltip class"item" effec…...

Tomcat的动静分离以及多实例部署
一、动静分离 Nginx实现负载均衡的原理: Nginx实现负载均衡是通过反向代理实现Nginx服务器作为前端,Tomcat服务器作为后端,web页面请求由Nginx服务来进行转发。 但不是把所有的web请求转发,而是将静态页面请求Ncinx服务器自己来处…...

uniapp+vue3项目中使用vant-weapp
创建项目 通过vue-cli命令行创建项目 Vue3/Vite版要求 node 版本^14.18.0 || >16.0.0 uni-app官网 (dcloud.net.cn) npx degit dcloudio/uni-preset-vue#vite my-vue3-project打开项目 点击顶部菜单栏终端/新建终端 执行安装依赖指令 yarn install 或 npm install 安装vant…...
WordPress:实现发布文章自动添加TAG标签
在给我们的WordPress博客更新文章时,大多数人应该会给文章添加一些TAG标签,文章添加TAG标签也是我们做WordPress优化必不可少的一项,但是如果每一篇文章的关键字标签都要手动添加链接,那也太麻烦了。今天给大家分享一篇自动给文章…...

ubuntu下FFmpeg安装和使用以及CMakeLists.txt模板
sudo apt install ffmpeg sudo apt-get install libavfilter-devcmakelist模板 CMakeLists.txt cmake_minimum_required(VERSION 3.16) project(ffmpeg_demo)# 设置ffmpeg依赖库及头文件所在目录,并存进指定变量 set(ffmpeg_libs_DIR /usr/lib/x86_64-linux-gnu) …...

数据结构顺序表和链表(超详细)
线性表: 线性表 ( linear list ) 是 n 个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使 用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串 ... 线性表在逻辑上是线性结构,也就…...
free 查看 buff/cache 很大,处理方法
如果 free 命令输出中的 buff/cache 很大,这意味着系统将一部分内存用于缓存文件系统的数据。这是正常的行为,因为缓存可以提高文件访问的速度。然而,如果需要释放缓存来腾出内存空间,可以尝试以下方法: 清理 PageCach…...

【Quarkus技术系列】「云原生架构体系」在云原生时代下的Java“拯救者”是Quarkus,那云原生是什么呢?
云原生时代下的Java"拯救者" 在云原生时代,其实Java程序是有很大的劣势的,以最流行的spring boot/spring cloud微服务框架为例,启动一个已经优化好,很多bean需要lazy load的application至少需要3-4秒时间,内…...
DHCP的工作原理
DHCP是一种网络管理协议,全称为动态主机配置协议(Dynamic Host Configuration Protocol)。它是一种基于TCP/IP协议的网络服务,允许网络管理员集中管理和分配IP地址和其他网络配置参数,以便客户端设备能够使用这些参数与…...
display:flex;兼容浏览器写法
通过在 display 属性中使用这些不同的值,可以确保在各种浏览器中都能正确显示 flex 布局。 需要注意的是,这只是一个示例,实际使用时可能还需要考虑其他兼容性问题,并根据具体情况进行调整。如果你需要更全面的兼容性解决方案&am…...
三、python Django ORM postgresql[数据定时备份、数据恢复]
一、数据定时备份 解释:备份指定数据库,能有效在发生错误时,预防错误,进行恢复 1.基本备份 #!/bin/bash sudo -u postgres pg_dump -U postgres -d dbname -Fc > /home/postgres/backup/backup.dump # sudo -u postgres&…...

c++字符串函数
在 C 中有大量用于操作 C-style 字符串的函数,它们集成在头文件 <cstring> 中。其常见的函 函数作用strcpy(s1,s2) 复制字符串 s2 到 s1strcat(s1,s2) 将字符串 s2 连接到 s1 末尾strlen(s) 计算字符串 s 长度strcmp(s1,s2) 比较字符串 s1 和 s2 …...
使用OkHttp发送POST请求的几种方式
使用OkHttp发送POST请求的几种方式 介绍pom依赖基本的POST请求带授权的POST请求POST方式发送JSON数据Multipart POST 请求 介绍 本文将介绍 OkHttp 客户端的基本用法。 主要介绍 OkHttp 3.x 版本中发送Post请求的几种方式。 pom依赖 <dependency><groupId>com.sq…...

时序预测 | MATLAB实现EEMD-GRU、GRU集合经验模态分解结合门控循环单元时间序列预测对比
时序预测 | MATLAB实现EEMD-GRU、GRU集合经验模态分解结合门控循环单元时间序列预测对比 目录 时序预测 | MATLAB实现EEMD-GRU、GRU集合经验模态分解结合门控循环单元时间序列预测对比效果一览基本介绍模型搭建程序设计参考资料 效果一览 基本介绍 1.MATLAB实现EEMD-GRU、GRU时…...

学习笔记整理-JS-04-流程控制语句
文章目录 一、条件语句1. if语句的基本使用2. if else if多条件分支3. if语句算法题4. switch语句5. 三元运算符 二、循环语句1. for循环语句2. for循环算法题3. while循环语句4. break和continue5. do while语句 三、初识算法1. 什么是算法2. 累加器和累乘器3. 穷举法4. 综合算…...

stable-diffusion-webui 界面汉化
本教程通过安装 sd-webui-bilingual-localization 插件来达到汉化目的, 项目地址为:https://github.com/journey-ad/sd-webui-bilingual-localization 一、安装插件 先进入插件安装界面 在搜索栏搜索 zh_CN Localization 中文语言包, 项目地址: https://github.com/dtlnor/st…...

问道管理:信创概念走势活跃,恒银科技斩获四连板
信创概念9日盘中走势活泼,截至发稿,新晨科技、竞业达、恒银科技等涨停,宇信科技涨近10%,中孚信息涨近9%,华是科技、神州数码涨超7%。 新晨科技今天“20cm”涨停,公司昨日晚间公告,近来收到投标代…...

centos 7镜像(iso)下载图文教程(超详细)
声明:本教程为本人学习笔记,仅供参考 文章目录 前言一、阿里云镜像站下载centos 7 二、清华源下载centos 7小结 前言 声明:本教程为本人学习笔记,仅供参考 本教程将提供两种方式下载centos 7 系统镜像 1、阿里巴巴开源镜像站 2、…...

龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...

stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...

什么是VR全景技术
VR全景技术,全称为虚拟现实全景技术,是通过计算机图像模拟生成三维空间中的虚拟世界,使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验,结合图文、3D、音视频等多媒体元素…...
十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建
【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...