• Zabbix技术分享——如何快速部署zabbix-agent客户端


           zabbix使用过程中,zabbix agent通常部署在被监控目标上,用于主动监控本地资源和应用程序,并将目标的可用性、完整性及其他统计信息数据发送给zabbix server,以减轻zabbix server的压力。这一期乐维君将为大家介绍如何快速部署zabbix-agent客户端。

    1、快速部署包制作

    1.1 下载zabbix-agent部署包

    https://www.zabbix.com/download_agents?version=6.2&release=6.2.3&os=Linux&os_version=3.0&hardware=amd64&encryption=No+encryption&packaging=Archive&show_legacy=0

    选择好跟server对应的大版本,参考之前的zabbix监控系统部署使用的6.2版本(链接),这里的agent也使用6.2版本的agent进行部署。

    这是一个二进制的agent安装包,可以直接解压后启动。但是为了快速进行部署,可以编写一个脚本进行快速部署。

    下载6.2.2二进制agent部署包

    curl -O https://cdn.zabbix.com/zabbix/binaries/stable/6.2/6.2.2/zabbix_agent-6.2.2-linux-3.0-amd64-static.tar.gz

    然后修改安装包命名,格式为zabbix_agent-[version].tar.gz

    1.2编写部署脚本

    vim install_zabbix_agent.sh

    1. #!/bin/bash
    2. ## 变量定义
    3. # 脚本所在路径
    4. BASE_DIR=$(cd $(dirname $0);pwd)
    5. # Zabbix_server连接IP
    6. SERVER_IP=$1
    7. # agent部署路径,默认/usr/local/zabbix_agent
    8. INSTALL_DIR=$2
    9. if [[ ! ${INSTALL_DIR} ]];then
    10. INSTALL_DIR=/usr/local/zabbix_agent
    11. fi
    12. if [[ ! -d ${INSTALL_DIR} ]];then
    13. mkdir -p ${INSTALL_DIR}/logs
    14. fi
    15. # agent部署包
    16. INSTALL_PACK=$3
    17. if [[ ! ${INSTALL_PACK} ]];then
    18. INSTALL_PACK=$(find ${BASE_DIR} -name "zabbix*.tar.gz")
    19. fi
    20. # agent监听端口,默认10050
    21. AGENT_PORT=$4
    22. if [[ ! ${AGENT_PORT} ]];then
    23. AGENT_PORT=10050
    24. fi
    25. ## 环境监测
    26. # 判断zabbix用户是否存在,不存在则创建
    27. id zabbix &> /dev/null
    28. if [[ $? != 0 ]];then
    29. useradd zabbix
    30. fi
    31. # 判断端口是否被占用
    32. PORT_IF=$(ss -tanlu|grep -v 'Port'|grep "${AGENT_PORT}" | awk '{printf $5 "\n"}' | awk -F ':' '{printf $NF "\n"}' | sort | uniq)
    33. if [[ ${PORT_IF} ]];then
    34. echo "端口 ${AGENT_PORT} 已被占用,退出安装"
    35. exit 1
    36. fi
    37. ## 开始安装agent
    38. # 解压安装包
    39. tar -zxf ${INSTALL_PACK} -C ${INSTALL_DIR}
    40. # 授权部署路径
    41. chown -R zabbix:zabbix ${INSTALL_DIR}
    42. # 修改配置文件
    43. sed -i "s@Server=127.0.0.1@Server=${SERVER_IP}@g" ${INSTALL_DIR}/conf/zabbix_agentd.conf
    44. sed -i "s@ServerActive=127.0.0.1@ServerActive=${SERVER_IP}@g" ${INSTALL_DIR}/conf/zabbix_agentd.conf
    45. sed -i "s@Hostname=Zabbix server@Hostname=${SERVER_IP}@g" ${INSTALL_DIR}/conf/zabbix_agentd.conf
    46. sed -i "s@# ListenPort=10050@ListenPort=${AGENT_PORT}@g" ${INSTALL_DIR}/conf/zabbix_agentd.conf
    47. sed -i "s@# PidFile=/tmp/zabbix_agentd.pid@PidFile=${INSTALL_DIR}/logs/zabbix_agent.pid@g" ${INSTALL_DIR}/conf/zabbix_agentd.conf
    48. sed -i "s@LogFile=/tmp/zabbix_agentd.log@LogFile=${INSTALL_DIR}/logs/zabbix_agentd.log@g" ${INSTALL_DIR}/conf/zabbix_agentd.conf
    49. # 创建agent启动文件
    50. cat > /usr/lib/systemd/system/zabbix_agentd.service << EOF
    51. [Unit]
    52. Description=Zabbix_agent service
    53. After=syslog.target
    54. After=network.target
    55. [Service]
    56. Type=simple
    57. User=zabbix
    58. Restart=always
    59. KillMode=mixed
    60. PIDFile=${INSTALL_DIR}/logs/zabbix_agent.pid
    61. ExecStart=${INSTALL_DIR}/sbin/zabbix_agentd -c ${INSTALL_DIR}/conf/zabbix_agentd.conf
    62. ExecStop=/bin/kill -SIGTERM $MAINPID
    63. LimitNOFILE=infinity
    64. LimitNPROC=infinity
    65. TimeoutStartSec=0
    66. Delegate=yes
    67. Restart=on-failure
    68. StartLimitBurst=3
    69. StartLimitInterval=60s
    70. [Install]
    71. WantedBy=default.target
    72. EOF
    73. # 启动Zabbix_agent服务
    74. systemctl daemon-reload
    75. systemctl start zabbix_agentd.service
    76. systemctl status zabbix_agentd.service &> /dev/null
    77. if [[ $? = 0 ]];then
    78. echo "zabbix_agentd服务启动完成"
    79. else
    80. echo "zabbix_agentd服务启动失败,请使用命令:systemctl status zabbix_agentd.service 查看失败原因"
    81. fi

    给予脚本执行权限

    chmod +x install_zabbix_agent.sh

    然后将脚本与agent部署包打包成一个新的压缩包

    tar -zcf install_agent.tar.gz *

    2、使用快速部署包进行agent部署

    上传安装包install_agent.tar.gz到服务器

    解压安装包

    tar -zxf install_agent.tar.gz

    执行脚本进行安装

    ./install_zabbix_agent.sh 192.168.75.31

    注意:

    执行该脚本进行部署需要最少需要输入1个参数

    第一个参数:Zabbix_server的连接IP(必须)

    第二个参数:部署路径(可选,默认为:/usr/local/zabbix_agent)

    第三个参数:部署包(可选,默认为:解压后的agent包)

    第四个参数:Zabbi_agent的监听端口(可选,默认为:10050)

    查看agent运行状态

    systemctl status zabbix_agentd.service

    3、Zabbix界面添加监控

    配置>主机>创建主机(右上角)>补充信息(主机名称,链接模板,主机群组,接口类型为agent)>添加

    添加完agent后,到最新数据查看最新添加的主机监控,可见主机监控数据正常获取。

    这一期的Zabbix的技术分享到这就结束了,更多Zabbix agent内容,还可以查看我的往期内容:

    1.Zabbix-agent的工作模式详解

    2. 实现zabbix_agent的自动注册

    我是乐维君,专注运维技术分享,关注我,运维更无忧。

  • 相关阅读:
    Nginx---经常使用的一些模块、功能
    线性代数的一些知识点
    使用HTML制作静态网站作业——我的校园运动会(HTML+CSS)
    JavaFX:获取屏幕尺寸
    9问502
    LeetCode 0542. 01 矩阵
    深度学习与总结JVM专辑(二):垃圾回收基础(图文+代码)
    微服务版mall电商项目本地开发环境启动前后端服务详细指导教程
    Flask 自建扩展
    【C++深入浅出】日期类的实现
  • 原文地址:https://blog.csdn.net/weixin_43631631/article/details/127497982