• zabbix自动发现linux系统挂载的nas盘,并实现读写故障的监控告警


    一.准备好被监控机器上面执行脚本,以备服务端发现和监控

    脚本的内容:

    ZABBI安装路径可执行文件及配置文件根据实际部署的路径更改

    1. #!/bin/bash
    2. >/zabbixconfpath/zbx_nas.conf >/zabbixscriptspath/findnas.sh >/zabbixscriptspath/checknas.sh >/zabbixscriptspath/checknaswrite.sh
    3. (
    4. cat <<EOF
    5. UserParameter=nas.discovery,/zabbixscriptspath/findnas.sh
    6. UserParameter=nas.check[*],/zabbixscriptspath/checknas.sh \$1
    7. UserParameter=nas.checkwrite[*],/zabbixscriptspath/checknaswrite.sh \$1
    8. EOF
    9. )>>/zabbixscriptspath/zbx_nas.conf
    10. (
    11. cat <<EOF
    12. #!/bin/bash
    13. mount_discovery () {
    14. mount | grep "type nfs" | grep -v "nfsd" | awk '{print \$3}' > /zabbixscriptspath/naslists.txt
    15. chown zabbixuser:zabbixuser /zabbixscriptspath/naslists.txt
    16. NAS_LIST=(\$(cat /zabbixscriptspath/naslists.txt))
    17. printf '{\n'
    18. printf '\t"data":[\n'
    19. for((i=0;i<\${#NAS_LIST[@]};++i))
    20. {
    21. num=\$(echo \$((\${#NAS_LIST[@]}-1)))
    22. if [ "\$i" != \${num} ];
    23. then
    24. printf "\t\t{ \n"
    25. printf "\t\t\t\"{#NASNAME}\":\"\${NAS_LIST[\$i]}\"},\n"
    26. else
    27. printf "\t\t{ \n"
    28. printf "\t\t\t\"{#NASNAME}\":\"\${NAS_LIST[\$num]}\"}]}\n"
    29. fi
    30. }
    31. }
    32. mount_discovery
    33. EOF
    34. )>>/zabbixscriptspath/findnas.sh
    35. (
    36. cat <<EOF
    37. #!/bin/bash
    38. timeout 3 df -h \$1 > /dev/null
    39. if [ \$? -ne 0 ]; then
    40. echo 1
    41. else
    42. echo 0
    43. fi
    44. EOF
    45. )>>/zabbixscriptspath/checknas.sh
    46. (
    47. cat <<EOF
    48. #!/bin/bash
    49. timeout 3 touch \$1/zabbixtestfiles.txt.txt.txt > /dev/null
    50. if [ \$? -ne 0 ]; then
    51. echo 1
    52. else
    53. echo 0
    54. fi
    55. EOF
    56. )>>/zabbixscriptspath/checknaswrite.sh
    57. chmod a+x /zabbixscriptspath/findnas.sh /zabbixscriptspath/checknas.sh /zabbixscriptspath/checknaswrite.sh
    58. systemctl restart zabbix-agent.service || ps -ef | grep zabbix-agent | grep -v grep | awk '{print $2}' | xargs -I {} kill {};sleep 1;su - zabbixuser -c "/zabbixpath/sbin/zabbix_agentd -c /zabbixpath/conf/zabbix_agentd.conf"

    二.ZABBIX监控模板导出的XML文件如下:

    1. "1.0" encoding="UTF-8"?>
    2. <zabbix_export>
    3. <version>6.0version>
    4. <date>2023-08-14T06:54:29Zdate>
    5. <groups>
    6. <group>
    7. <uuid>7df96b18c230490a9a0a9e2307226338uuid>
    8. <name>Templatesname>
    9. group>
    10. groups>
    11. <templates>
    12. <template>
    13. <uuid>d506374c76194ef2a89f16a5a1a2bdd0uuid>
    14. <template>zabbixtest-Template-naschktemplate>
    15. <name>zabbix-Template-naschkname>
    16. <groups>
    17. <group>
    18. <name>Templatesname>
    19. group>
    20. groups>
    21. <discovery_rules>
    22. <discovery_rule>
    23. <uuid>65640ddbe5274e79966964e0acdbc503uuid>
    24. <name>findnasname>
    25. <key>nas.discoverykey>
    26. <delay>60mdelay>
    27. <item_prototypes>
    28. <item_prototype>
    29. <uuid>98d3e0de995246b8ab905e11c39c774duuid>
    30. <name>chknas write on {#NASNAME}name>
    31. <key>nas.checkwrite[{#NASNAME}]key>
    32. <delay>60mdelay>
    33. <trigger_prototypes>
    34. <trigger_prototype>
    35. <uuid>bc3fd41f548f4c93b697d01d1af5c3d8uuid>
    36. <expression>last(/zabbixtest-Template-naschk/nas.checkwrite[{#NASNAME}])<>0expression>
    37. <name>NAS盘write{#NASNAME}状态异常name>
    38. <event_name>NAS盘write{#NASNAME}状态异常event_name>
    39. <status>DISABLEDstatus>
    40. <priority>HIGHpriority>
    41. trigger_prototype>
    42. trigger_prototypes>
    43. item_prototype>
    44. <item_prototype>
    45. <uuid>0c70897bc30446c5a07c1ecaa863c11duuid>

    三.导入模板,在被监控的主机上执行脚本和应用监控模板,实现对被监控主机NAS盘读写情况的监控

    并根据实际的需求启用/禁用触发器

  • 相关阅读:
    OpenAI一朝领导者山姆·奥尔特曼被解除职务,领导能力不再被认可?
    2008年武汉高校630操作系统真题B卷
    【21天学习挑战赛】算法——选择排序
    【JavaWeb】一篇文章掌握Servlet
    一文读懂K-Means原理与Python实现
    Kubernetes安装部署 1
    构造方法、方法重载、全局变量与局部变量
    【云原生 | 57】Docker三剑客之Docker Swarm֯使用其他服务发现后端
    第五十九章 IIS 7 或更高版本的替代选项 (Windows) - 替代选项 2:将本机模块与 - 映射 InterSystems IRIS 文件扩展名
    十二、虚拟 DOM 和 render() 函数(1)
  • 原文地址:https://blog.csdn.net/lsysafe/article/details/132287188