文章目录
- [0. 老男孩思想-一个人的背书](#0. 老男孩思想-一个人的背书)
 - [1. zabbix各种客户端](#1. zabbix各种客户端)
 - 
- [1.1 Windows Server监控](#1.1 Windows Server监控)
 - [1.2 网络设备监控](#1.2 网络设备监控)
 - [1.3 java应用监控](#1.3 java应用监控)
 - [1.4 前端监控java程序故障](#1.4 前端监控java程序故障)
 
 - [2. 相关项监控](#2. 相关项监控)
 - [3. 思维导图](#3. 思维导图)
 
0. 老男孩思想-一个人的背书
学历、能力、态度、特长、人品、口碑(身边的人、领导)

1. zabbix各种客户端
| 客户端 | 监控方式 | 
|---|---|
| linux服务器 | zabbix-agent/zabbix-agent2 | 
| Windows Server | zabbix-agent/zabbix-agent2 | 
| 网络设备(路由器、防火墙) | snmp协议 | 
| java应用 | 1.jmx监控 2.自定义监控 | 
| 硬件设备 | ipmi(【老男孩教育-李导-手把手带你玩转物理服务器】 https://www.bilibili.com/video/BV1rb411n7a8/?share_source=copy_web\&vd_source=c657b73410fb550859862bc71fe979b9) | 
- JMX(Java Management Extensions)是Java平台提供的监控和管理工具,允许开发者和管理员通过标准接口监控JVM、应用程序性能、配置参数等。
 
1.1 Windows Server监控
- 官方下载客户端监控:
[Download Zabbix agents](https://www.zabbix.com/cn/download_agents?version=7.0+LTS&release=7.0.16&os=Windows&os_version=Any&hardware=amd64&encryption=OpenSSL&packaging=MSI&show_legacy=0) 

- 软件包:
zabbix_agent2-7.0.10-windows-amd64-openssl.msi 链接: https://pan.baidu.com/s/1UQ6G-Ekt8u1NWxgYkT_VlQ?pwd=zgkp 提取码: zgkp - 正常安装软件即可,不要修改安装路径
 


- 前端添加主机
 


1.2 网络设备监控
- 常见网络设备:三层交换机、企业路由器、防火墙
 - SNMP协议:简单网络管理协议;默认端口:161
- v1、v2:仅需设置密码即可
 - v3:需设置用户名和密码
 
 - 以路由器为例
 



1.3 java应用监控
- 自定义监控
 - 键值执行的脚本:
 
            
            
              shell
              
              
            
          
          # 系统中需要运行tomcat;
[root@web03.oldboy.cn /server/scripts]# cat check_java.sh
#!/bin/bash
##############################################################
# File Name:check_java.sh
# Version:V1.0
# Author:SunKexu
# Organization:www.oldboyedu.com
# Desc:zabbix监控java程序
##############################################################
#1.vars
choice=$1
name=/app/tools/tomcat/
#2.获取pid 
pid=`jps -lvm|grep $name|awk '{print $1}'`
#3.case语句指定各种指标名字
case  "$choice" in 
     maxsize)  # 获取最大内存空间
         maxsize=`jmap -heap $pid|grep MaxHeapSize |awk '{print $3}'`
         echo $maxsize
         ;;
     edenfree)  # 获取eden内存空间
             free=`jmap -heap $pid |grep -A4 'Eden Space'|awk 'NR==4{print $3}'`
         echo $free
         ;;
     *) echo 666
esac
        - 编写键值的配置文件,需要重启zabbix-agent2:
 
            
            
              shell
              
              
            
          
          [root@web03.oldboy.cn /server/scripts]# cat /etc/zabbix/zabbix_agent2.d/web-java.conf 
# 编写自定义监控
UserParameter=web.java[*],sudo /bin/bash /server/scripts/check_java.sh "$1"
        - 命令中使用了sudo,zabbix执行命令使用的虚拟用户是zabbix,所以需要配置sudo权限:
 
            
            
              shell
              
              
            
          
          [root@web03.oldboy.cn /server/scripts]# tail -n 1 /etc/sudoers
zabbix  ALL=(ALL)   NOPASSWD: ALL
        - 前端添加监控项
 


1.4 前端监控java程序故障
- 故障现象:两个java程序的监控项,有一个能用,一个不能用
 - 故障复现:对同一台服务器开启多个窗口,在同一时间执行jmap命令
 

- 故障原因:linux系统底层程序锁,对正在执行读写的程序加锁,确保数据的安全性
 - 解决方法1:前端设置不同监控项的执行频率/时间间隔,使得两个命令在不同的时间执行;
 - 解决方法2:系统设置定时任务执行jmap命令,并将结果写入文件;前端监控项执行时,直接读取文件即可
 - 解决方法3:前端使用相关项监控
 
2. 相关项监控
- 主要项:zabbix键值;自定义键值
 - 相关项:从主要项中过滤,取出某个指标/数据
 
- 以执行jmap -heap为例
 - 脚本:
 
            
            
              shell
              
              
            
          
          [root@web03.oldboy.cn /server/scripts]# cat jmap.sh 
#!/bin/bash
##############################################################
# File Name:check_java.sh
# Version:V1.0
# Author:SunKexu
# Organization:www.oldboyedu.com
# Desc:zabbix监控java程序
##############################################################
#1.vars
name=/app/tools/tomcat/
#2.获取pid 
pid=`jps -lvm|grep $name|awk '{print $1}'`
#3.执行命令
jmap -heap $pid
        - 配置键值:
 
            
            
              shell
              
              
            
          
          [root@web03.oldboy.cn /server/scripts]# cat /etc/zabbix/zabbix_agent2.d/web-java.conf
# 编写自定义监控
UserParameter=web.java[*],sudo /bin/bash /server/scripts/check_java.sh "$1"
# jmap所有数据
UserParameter=web.java.all,sudo /bin/bash /server/scripts/jmap.sh
[root@web03.oldboy.cn /server/scripts]# systemctl restart zabbix-agent2.service 
        - 前端定义监控项
 

- 配置相关项
 





- 正则表达式:
Eden Space:\s+capacity.+\s+used.+\s+free += (\d+).* 
3. 思维导图
https://kdocs.cn/join/gpuxq6r?f=101\r\n邀请你加入共享群「老男孩教育Linux运维99期-孙克旭」一起进行文档协作