zabbix-agent部署测试

1,安装客户端节点
yum install zabbix-agent -y  
2,修改客户端配置文件
zabbix_agent.conf:
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=*.*.*.*,
ServerActive=127.0.0.1
Hostname=*.*.*.*
Include=/etc/zabbix/zabbix_agentd.d/*.conf
UnsafeUserParameters=1

NGINX配置
配置nginx的status模块(这个需要在编译nginx时候就加上--with-http_stub_status_module)
//根据实际需求配置
cd /etc/nginx/conf.d/
vi nginx_satus.conf

server {
    listen       9900;
    server_name  localhost;

    location /NginxStatus {
    stub_status on;
    access_log off;
    }
}
测试
curl http://localhost:9900/NginxStatus

只在agent端配置
vim /etc/zabbix/zabbix_agentd.conf

UnsafeUserParameters=1
Include=/etc/zabbix/zabbix_agentd.d/*.conf

vim /etc/zabbix/zabbix_agentd.d/UserParameter_script.conf
//指定ngxin监控配置
#Nginx
UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/nginx_monitor.sh $1

Nginx监控脚本
cat /etc/zabbix/zabbix_agentd.d/nginx_monitor.sh
#!/bin/bash
HOST="localhost"
PORT="9900"
NGINX_COMMAND=$1
# 检测nginx进程是否存在
function nginx_process() {
    /usr/bin/pgrep nginx | wc -l
}
# 检测nginx性能
function nginx_active() {
    /usr/bin/curl "http://$HOST:$PORT/NginxStatus/" 2>/dev/null| awk '/Active/ {print $NF}'
}
function nginx_reading() {
    /usr/bin/curl "http://$HOST:$PORT/NginxStatus/" 2>/dev/null| awk '/Active/ {print $NF}'
}
function nginx_writing() {
    /usr/bin/curl "http://$HOST:$PORT/NginxStatus/" 2>/dev/null| awk '/Active/ {print $NF}'
}
function nginx_waiting() {
    /usr/bin/curl "http://$HOST:$PORT/NginxStatus/" 2>/dev/null| awk '/Active/ {print $NF}'
}
function nginx_accepts() {
    /usr/bin/curl "http://$HOST:$PORT/NginxStatus/" 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function nginx_handled() {
    /usr/bin/curl "http://$HOST:$PORT/NginxStatus/" 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function nginx_requests() {
    /usr/bin/curl "http://$HOST:$PORT/NginxStatus/" 2>/dev/null| awk NR==3 | awk '{print $3}'
}

# 执行function
#${NGINX_COMMAND}
case $NGINX_COMMAND in
	process)
	nginx_process;
	;;
	active)
	nginx_active;
	;;
	reading)
	nginx_reading;
	;;
	writing)
	nginx_writing;
	;;
	waiting)
	nginx_waiting;
	;;
	accepts)
	nginx_accepts;
	;;
	handled)
	nginx_handled;
	;;
	requests)
	nginx_requests;
	;;
      	*)
	echo $"USAGE:$0 {process|active|reading|writing|waiting|accepts|handled|requests}"
    	esac

客户端启动脚本:
vim  /etc/init.d/zabbix_agentd
option=$1
function start_func() {
        pid=`ps -ef | grep zabbix | grep -v grep | awk '{print $2}' | wc -l`
        if [ $pid == 0 ];then
                echo "zabbix_agent is starting..."
                /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf &
        else
                echo "zabbix_agent is running!"
        fi
}


function stop_func() {
        pid=`ps -ef | grep zabbix | grep -v grep | awk '{print $2}'`
        row=`ps -ef | grep zabbix | grep -v grep | awk '{print $2}' | wc -l`
        if [ $row == 0 ];then
                echo "zabbix_agent no running!!!"
        else
                echo "now stoping zabbix_agent..."
                ps -ef | grep zabbix | grep -v grep | awk '{print $2}' | xargs kill -9
                echo "done"
        fi
}

function restart_func() {
        stop_func
        start_func
}


case $option in
        start)
        start_func;
        ;;
        stop)
        stop_func;
        ;;
        restart)
        restart_func;
        ;;
        *)
        echo $"USAGE:$0 {start|stop|restart}"
        esac

Agent端重启zabbix_agent
# /etc/init.d/zabbix_agentd restart

server端测试(ip填写agent的IP):
docker run --rm  --name=zabbix-get pschmitt/zabbix-get -s 客户端IP -k  nginx.status[process]
zabbix_get -s 客户端IP -k  nginx.status[process]

docker run --rm  --name=zabbix-get pschmitt/zabbix-get -s 客户端IP -k  nginx.status[active]
zabbix_get -s 客户端IP -k  nginx.status[active]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值