zabbix linux 客户端编译安装

zabbix agent编译安装

setenforce 0
sed -i "s/=enforcing/=disabled/g" /etc/selinux/config
yum install -y gcc gcc-c++ make pcre-devel
useradd -s /sbin/nologin zabbix
cd /usr/local/src/
wget http://download.zhufunin.com/zabbix/zabbix-4.2.0.tar.gz
tar -zxvf zabbix-4.2.0.tar.gz
cd zabbix-4.2.0
./configure --prefix=/usr/local/zabbix --enable-agent
make && make install
chown zabbix:zabbix -R /usr/local/zabbix

环境变量配置

echo 'export PATH=$PATH:/usr/local/zabbix/sbin/:/usr/local/zabbix/bin/' >> /etc/profile
source /etc/profile

zabbix agent 的配置,/usr/local/zabbix/etc/zabbix_agentd.conf

PidFile=/usr/local/zabbix/zabbix_agentd.pid
LogFile=/usr/local/zabbix/zabbix_agentd.log
#Hostname=
Server=192.168.1.112
ServerActive=192.168.1.112
UnsafeUserParameters=1
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf

连接数监控的配置文件

  • tcp-status-params.conf

  • zabbix_tcp_conn_status.sh

/usr/local/zabbix/etc/zabbix_agentd.conf.d/tcp-status-params.conf

UserParameter=tcp.status[*],/usr/local/zabbix/etc/zabbix_agentd.conf.d/zabbix_tcp_conn_status.sh $1

/usr/local/zabbix/etc/zabbix_agentd.conf.d/zabbix_tcp_conn_status.sh

#!/bin/bash
#this script is used to get tcp and udp connetion status
#tcp status
metric=$1
tmp_file=/tmp/tcp_status.txt
#/bin/netstat -an|awk '/^tcp/{++S[$NF]}END{for(a in S) print a,S[a]}' > $tmp_file
/usr/sbin/ss  -tan|awk 'NR>1{++S[$1]}END{for (a in S) print a,S[a]}' > $tmp_file

#ESTAB
#SYN-SENT
#SYN-RECV
#FIN-WAIT-1
#FIN-WAIT-2
#TIME-WAIT
#UNCONN
#CLOSE-WAIT
#LAST-ACK
#LISTEN
#CLOSING



case $metric in
closed)
output=$(awk '/UNCONN/{print $2}' $tmp_file)
if [ "$output" == "" ];then
echo 0
else
echo $output
fi
;;
listen)
output=$(awk '/LISTEN/{print $2}' $tmp_file)
if [ "$output" == "" ];then
echo 0
else
echo $output
fi
;;
synrecv)
output=$(awk '/SYN-RECV/{print $2}' $tmp_file)
if [ "$output" == "" ];then
echo 0
else
echo $output
fi
;;
synsent)
output=$(awk '/SYN-SENT/{print $2}' $tmp_file)
if [ "$output" == "" ];then
echo 0
else
echo $output
fi
;;
established)
output=$(awk '/ESTAB/{print $2}' $tmp_file)
if [ "$output" == "" ];then
echo 0
else
echo $output
fi
;;
timewait)
output=$(awk '/TIME-WAIT/{print $2}' $tmp_file)
if [ "$output" == "" ];then
echo 0
else
echo $output
fi
;;
closing)
output=$(awk '/CLOSING/{print $2}' $tmp_file)
if [ "$output" == "" ];then
echo 0
else
echo $output
fi
;;
closewait)
output=$(awk '/CLOSE-WAIT/{print $2}' $tmp_file)
if [ "$output" == "" ];then
echo 0
else
echo $output
fi
;;
lastack)
output=$(awk '/LAST-ACK/{print $2}' $tmp_file)
if [ "$output" == "" ];then
echo 0
else
echo $output
fi
;;
finwait1)
output=$(awk '/FIN-WAIT-1/{print $2}' $tmp_file)
if [ "$output" == "" ];then
echo 0
else
echo $output
fi
;;
finwait2)
output=$(awk '/FIN-WAIT-2/{print $2}' $tmp_file)
if [ "$output" == "" ];then
echo 0
else
echo $output
fi
;;
*)
echo -e "e[033mUsage: sh  $0 [closed|closing|closewait|synrecv|synsent|finwait1|finwait2|listen|established|lastack|timewait]e[0m"

esac
View Code

以上的两个文件,添加后,需要修改权限,

chown zabbix:zabbix -R /usr/local/zabbix
chmod 755 /usr/local/zabbix/etc/zabbix_agentd.conf.d/zabbix_tcp_conn_status.sh

zabbix agent启动

/usr/local/zabbix/sbin/zabbix_agentd

检查进程
1. 查看日志 tail -20 /usr/local/zabbix/zabbix_agentd.log
2. 查看进程 ps aux |grep zabbix
3. 查看端口 netstat -lpntu |grep zabbix

原文地址:https://www.cnblogs.com/faberbeta/p/12923570.html