zabbix-监控应用程序(Mysql、Nginx)

news2024/11/19 17:35:03
  • 基础环境:zabbix服务端、两台zabbix被监控端、分别安装Mysql和Nginx
  • 环境拓扑图:
  • 实验目标:可以通过zabbix监控到被监控端上安装的mysql与nginx,通过zabbix实时检测mysql和nginx的数据。
  • 实验步骤:
  • 1.在8.7服务器上安装Mysql和zabbix-agent:
    • 将文件夹拖拽至8.7服务器上(需要软件可以私信博主)
    • 进入文件夹:cd mysql5.6-rpm/
    • yum -y localinstall *.rpm(开始安装)
    • 启动mysql:systemctl start mysqld
    • 修改密码:mysqladmin -uroot -p password
    • 安装agent修改配置文件:
      • vim /etc/zabbix/zabbix_agentd.conf
      • 启动anentd
  • 2.安装php动态程序识别mysql
    • yum install php php-mysql -y
  • 3.下载使用percona的模版(里面提供mysql的监控项)
    • wget https://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.8/binary/redhat/7/x86_64/percona-zabbix-templates-1.1.8-1.noarch.rpm
    • rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm
    • 安装之后会提供两个目录,一个是脚本目录,一个是模板目录
    • 其中脚本目录里有2个脚本,用来获取数据库信息
  • 4.进入到脚本目录中修改数据库登录信息:
    • cd /var/lib/zabbix/percona/scripts/
    • vim get_mysql_stats_wrapper.sh
      • 修改第19行,添加mysql账号和密码
    • 修改第二个脚本:
      • vim ss_get_mysql_stats.php
      • 修改第30,31行
    • 5.复制自定义监控项配置文件到zabbix目录
      • cd /var/lib/zabbix/percona/templates/
      • cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
    • 6.重启agent:systemctl restart zabbix-agent
    • 7.查看mysql所有的监控项(导入的190个监控项):zabbix-agent -p
    • 8.测试监控项是否有数据:
      • 在监控端上测试(8.5):zabbix_get -s 192.168.8.7 -k MySQL.table-cache
      • 存在数据代表,被监控端上的Mysql可以被监控
    • 9.在zabbix的web界面上将模版导入(通过web界面来监控关于mysql的190个监控项)
      • 将提前准备好的模版导入进入(需要模版文件的可以私信小编)
      • 将聚合图形勾选上之后点击导入,模版就导入完毕了
    • 10.主机连接模版
      • 添加主机:
        • 最后将主机添加上去即可。
        • 查看190个监控项的数据:
        • 至此zabbix监控Mysql就完成了
    • 11.接下来配置8.6主机,安装nginx,监控nginx
      • 首先安装zabbix-agent
        • 修改配置文件,将Server指向192.168.8.5
        • vim /etc/zabbix/zabbix_agentd.conf
      • 安装nginx,可以使用yum安装也可以拖包本地安装:
        • yum -y install nginx
        • 修改nginx默认配置文件,将状态检测模块配置加入
        • vim /etc/nginx/conf.d/default.conf
          • 定位到11行下,添加:
          • location /nginx_status {
          • stub_status on;
          • access_log off;
          • }
      • 重启nginx:systemctl restart nginx
      • 本机上测试是否可以看到检测出的数据(也可以通过浏览器查看)
    • 12.编辑nginx状态检测的脚本:
      • cd /etc/zabbix/zabbix_agentd.d(存放监控项的目录)
      • vim nginx_monitor.sh
        • #!/bin/bash
        • NGINX_COMMAND=$1
        • CACHEFILE="/tmp/nginx_status.txt"
        • CMD="/usr/bin/curl http://127.0.0.1/nginx_status/"
        • if [ ! -f $CACHEFILE ];then
        • $CMD >$CACHEFILE 2>/dev/null
        • fi
        • # Check and run the script
        • TIMEFLM=`stat -c %Y $CACHEFILE`
        • TIMENOW=`date +%s`
        • if [ `expr $TIMENOW - $TIMEFLM` -gt 60 ]; then
        • rm -f $CACHEFILE
        • fi
        • if [ ! -f $CACHEFILE ];then
        • $CMD >$CACHEFILE 2>/dev/null
        • fi
        • nginx_active(){
        • grep 'Active' $CACHEFILE| awk '{print $NF}'
        • exit 0;
        • }
        • nginx_reading(){
        • grep 'Reading' $CACHEFILE| awk '{print $2}'
        • exit 0;
        • }
        • nginx_writing(){
        • grep 'Writing' $CACHEFILE | awk '{print $4}'
        • exit 0;
        • }
        • nginx_waiting(){
        • grep 'Waiting' $CACHEFILE| awk '{print $6}'
        • exit 0;
        • }
        • nginx_accepts(){
        • awk NR==3 $CACHEFILE| awk '{print $1}'
        • exit 0;
        • }
        • nginx_handled(){
        • awk NR==3 $CACHEFILE| awk '{print $2}'
        • exit 0;
        • }
        • nginx_requests(){
        • awk NR==3 $CACHEFILE| awk '{print $3}'
        • exit 0;
        • }
        • case $NGINX_COMMAND in
        • active)
        • nginx_active;
        • ;;
        • reading)
        • nginx_reading;
        • ;;
        • writing)
        • nginx_writing;
        • ;;
        • waiting)
        • nginx_waiting;
        • ;;
        • accepts)
        • nginx_accepts;
        • ;;
        • handled)
        • nginx_handled;
        • ;;
        • requests)
        • nginx_requests;
        • ;;
        • *)
        • echo 'Invalid credentials';
        • exit 2;
        • esac
      • 赋予执行权:chmod +x nginx_monitor.sh
    • 13.编写zabbix监控配置文件(编写监控项,在监控项中引用脚本):
      • vim /etc/zabbix/zabbix_agentd.d/nginx_status.conf
        • UserParameter=nginx_status[*],/bin/bash /etc/zabbix/zabbix_agentd.d/nginx_monitor.sh $1
      • 重启zabbix-agent:systemctl restart zabbix-agent.service
    • 14.测试是否可以取到nginx监控项的值:
      • 在监控端上使用zabbix_get取值:zabbix_get -s 192.168.8.6 -k nginx_status [accepts]
    • 15.通过web界面可以监控zabbix:
      • 导入模版(与上方检测mysql导入模版步骤一致,只不过模版文件不一致)
      • 需要模版文件可以私信小编
      • 链接模板:
        • 添加主机、在主机模版中选择nginx模版
    • 16.查看数据:
    • 至此使用zabbix监控应用程序MYsql和Nginx就完成了,感谢观看!!!

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

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

相关文章

推荐收藏!算法工程师面试常考的手撕面试题!

今天给大家分享一些算法工程师技术面试中常手撕的代码。 不管是秋招还是社招,互联网大厂的技术面试中的手撕代码这一部分总是绕不过去的一关。 如果你对这些感兴趣,可以文末找我们交流 手撕 numpy写线性回归的随机梯度下降(stochastic gra…

实习|基于SSM的实习管理系统设计与实现(源码+数据库+文档)

实习管理系统目录 目录 基于SSM的实习管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员功能介绍 (1)管理员登录 (2)实训方向管理 (3)公告信息管理 (4&#xff0…

基于布谷鸟搜索的多目标优化matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 1. 布谷鸟搜索算法基础 2. 多目标优化问题 3. 基于布谷鸟搜索的多目标优化算法 4. 解的存储和选择策略 5.算法步骤 5.完整程序 1.程序功能描述 基于布谷鸟搜索的多目标优化,…

互补滤波算法介绍+SCL源代码(收放卷线速度处理)

工程上对测量信号进行处理,我们可以利用低通滤波器,还可以利用滑动平均值滤波等,关于低通滤波器和滑动平均值滤波器,可以参考专栏相关文章,常用链接如下: 博途PLC一阶滞后低通滤波器(支持采样频率设置) https://rxxw-control.blog.csdn.net/article/details/132972093h…

《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第5章 决策树

文章目录 第5章 决策树5.1 决策树模型与学习5.1.1 决策树模型5.1.2 决策树与if-then规则5.1.3 决策树与条件概率分布5.1.4 决策树学习5.2 特征选择5.2.1 特征选择问题5.2.2 信息增益5.2.3 信息增益比5.3.1 ID3算法5.3.2 C4.5的生成算法5.4 决策树的剪枝5.5 CART算法5.5.1 CART生…

协作办公开源神器:ONLYOFFICE

目录 前言ONLYOFFICE为什么选择ONLYOFFICE强大的文档编辑功能多种协作方式多人在线协同支持跨端多平台连接器安全性极高本地部署 ONLYOFFICE 8.0版本震撼来袭可填写的 PDF 表单显示协作用户头像更新插件界面设计更快更强大 总结 前言 近几年来,随着互联网技术的不断…

【疑问】为什么声明和定义要分离

前言 我们在学习的时候接触过一个话:编写自定义函数的时候 要做到声明和定义分离 那么为什么呢 今天就来简单的了解一下 疑问:错误的发生 下面给出两个源文件和一个头文件以及报错信息 text.cc文件 #include"head.h"int main() {int a 1…

《熬夜整理》保姆级系列教程-玩转Wireshark抓包神器教程(1)-初识Wireshark

1.简介 前边已经介绍过两款抓包工具,应该是够用了,也能够处理在日常工作中遇到的问题了,但是还是有人留言让宏哥要讲解讲解Wireshark这一款抓包工具,说实话宏哥之前也没有用过这款工具,只能边研究边分享。换句话说就是…

Unity DOTween插件常用方法(二)

文章目录 1.3 动画设置1.4 动画队列 Sequence1.5 动画回调函数1.6 等待函数(协程中使用) 1.3 动画设置 SetLoops 设置循环动画; 参数: loops:指定循环的次数,设置为 -1 表示无限循环; loopType…

linux -- 并发 -- 并发来源与简单的解决并发的手段

互斥与同步 当多个执行路径并发执行时,确保对共享资源的访问安全是驱动程序员不得不面对的问题 互斥:对资源的排他性访问 同步:对进程执行的先后顺序做出妥善的安排 一些概念: 临界区:对共享的资源进行访问的代码片段…

年轻人“过年”行为大赏

【潮汐商业评论/原创】 前脚刚进家门,后脚快递电话一个接着一个。 临近春节,Julia是提前批回家的年轻人,与Julia一同到家的还有她的年货。上至大小家电,下到坚果零食,短短几天快递就堆满了客厅。 吃的喝的还能理解&…

Tencent Tinker:移动应用热修复的未来之路

Tencent Tinker:移动应用热修复的未来之路 1 引言 移动应用热修复是一项在移动应用开发领域中日益重要的技术,它可以帮助应用程序开发者快速修复线上应用的bug、漏洞和功能问题,而无需重新发布整个应用。这种能力对于提高用户体验、降低用户…

卸载Ubuntu双系统

卸载Ubuntu双系统 我们卸载Ubuntu双系统,可能出于以下原因: 1、Ubuntu系统内核损坏无法正常进入 2、Ubuntu系统分配空间不足,直接扩区较为复杂 3、以后不再使用Ubuntu,清理留出空间 123无论出于哪种原因,我们都是要…

vue项目在public中编写一个json文件 并用http请求获取 模仿数据接口

我们前后端分离是经常存在 前端已经开发到需要接口 但后端还没开始的情况的 如果直接在js中写假数据 后面还要改不少东西 多少有点麻烦 我们可以 直接在 public 静态资源目录下创建一个json文件 这里 我取名叫 city.json 大家可以根据自己喜好给json文件命名 我这个json文件的…

LEETCODE 170. 交易逆序对的总数

class Solution { public:int reversePairs(vector<int>& record) {if(record.size()<1)return 0;//归并 递归int left,right;left0;rightrecord.size()-1;int nummergeSort(left,right,record);return num;}int mergeSort(int left,int right, vector<int>…

WordPress可以做企业官网吗?如何用wordpress建公司网站?

我们在国内看到很多个人博客网站都是使用WordPress搭建&#xff0c;但是企业官网的相对少一些&#xff0c;那么WordPress可以做企业官网吗&#xff1f;如何用wordpress建公司网站呢&#xff1f;下面boke112百科就跟大家简单说一下。 WordPress是一款免费开源的内容管理系统&am…

前端JavaScript篇之对对象与数组的解构的理解、如何提取高度嵌套的对象里的指定属性?

目录 对对象与数组的解构的理解如何提取高度嵌套的对象里的指定属性&#xff1f; 对对象与数组的解构的理解 对象与数组的解构是一种通过模式匹配的方式&#xff0c;从对象或数组中提取值&#xff0c;并将其赋给变量的过程。它可以让我们以一种简洁的方式访问和使用对象或数组…

flask基于大数据的旅游景区推荐可视化大屏系统 juj13-vue

本论文分为六个章节。 第一章&#xff0c;绪论&#xff0c;其包含课题背景及意义&#xff0c;现国内外的发展现状&#xff0c;本课题要研究的内容&#xff0c;所使用开发工具的描述等信息。 第二章&#xff0c;主要介绍了系统的开发技术。 第三章&#xff0c;先讲述功能需求分析…

留学生怎么合理使用ChatGPT ?还有哪些同类工具可以使用?

一篇篇相关于ChatGPT的文章陆陆续续铺天盖地的出现在我们面前。今天我们来看看怎么使用这个宝藏工具&#xff01; 文章主要内容为&#xff1a; 1.它是什么&#xff1f; 2.它能做什么&#xff1f; 3.作为留学生我们怎么使用它&#xff1f; 4.其他同类工具推荐 5.个人观点 一…

第 8 章:Linux中使用时钟、计时器和信号

在本章中&#xff0c;我们将开始探索Linux环境中可用的各种计时器。随后&#xff0c;我们将深入了解时钟的重要性&#xff0c;并探讨UNIX时间的概念。接下来&#xff0c;我们将揭示在Linux中使用POSIX准确测量时间间隔的方法。之后&#xff0c;我们将进入std::chrono的领域&…