Advertising:

Zabbix Sender en puro BASH: Difference between revisions

From Zabbix-ES
Jump to navigation Jump to search
(Created page with "==zabbix_sender.sh== #!/bin/bash export zbx_server="zabbix_server_ip" export zbx_port="10051" export zbx_hostname="hostname" export zbx_key="trap01" export zbx_value="...")
 
No edit summary
Line 2: Line 2:
  #!/bin/bash
  #!/bin/bash
   
   
  export zbx_server="zabbix_server_ip"
  export zbx_server="'''zabbix_server_ip'''"
  export zbx_port="10051"
  export zbx_port="10051"
  export zbx_hostname="hostname"
  export zbx_hostname="'''hostname'''"
  export zbx_key="trap01"
  export zbx_key="trap01"
  export zbx_value="{ \\\"AlertName\\\" : \\\"$1\\\", \\\"Result\\\" : $3, \\\"HitCount\\\" : $4, \\\"From\\\" : $5, \\\"To\\\" : $6 }"
  export zbx_value="{ \\\"AlertName\\\" : \\\"$1\\\", \\\"Result\\\" : $3, \\\"HitCount\\\" : $4, \\\"From\\\" : $5, \\\"To\\\" : $6 }"
Line 19: Line 19:
  #!/bin/bash
  #!/bin/bash
   
   
  export zbx_server="zabbix_server_ip"
  export zbx_server="'''zabbix_server_ip'''"
  export zbx_port="10051"
  export zbx_port="10051"
  export zbx_hostname="hostname"
  export zbx_hostname="'''hostname'''"
  export zbx_key="trap01"
  export zbx_key="trap01"
  export zbx_value="{ \\\"AlertName\\\" : \\\"$1\\\", \\\"Result\\\" : $3, \\\"HitCount\\\" : $4, \\\"From\\\" : $5, \\\"To\\\" : $6 }"
  export zbx_value="{ \\\"AlertName\\\" : \\\"$1\\\", \\\"Result\\\" : $3, \\\"HitCount\\\" : $4, \\\"From\\\" : $5, \\\"To\\\" : $6 }"

Revision as of 07:26, 29 June 2021

zabbix_sender.sh

#!/bin/bash

export zbx_server="zabbix_server_ip"
export zbx_port="10051"
export zbx_hostname="hostname"
export zbx_key="trap01"
export zbx_value="{ \\\"AlertName\\\" : \\\"$1\\\", \\\"Result\\\" : $3, \\\"HitCount\\\" : $4, \\\"From\\\" : $5, \\\"To\\\" : $6 }"
export DATA='{"request":"sender data","data":[{"host":"'${zbx_hostname}'","key":"'${zbx_key}'","value":"'${zbx_value}'"}]}'

printf -v LENGTH '%016x' "${#DATA}"
PACK=""
for (( i=14; i>=0; i-=2 )); do PACK="$PACK\\x${LENGTH:$i:2}"; done
printf "ZBXD\1$PACK%s" "$DATA" > /dev/tcp/${zbx_server}/${zbx_port}

zabbix_sender.sh + Netcat

Nota: Con NC tenemos un mejor control del socker y por consiguiente de los errores.
#!/bin/bash

export zbx_server="zabbix_server_ip"
export zbx_port="10051"
export zbx_hostname="hostname"
export zbx_key="trap01"
export zbx_value="{ \\\"AlertName\\\" : \\\"$1\\\", \\\"Result\\\" : $3, \\\"HitCount\\\" : $4, \\\"From\\\" : $5, \\\"To\\\" : $6 }"
export DATA='{"request":"sender data","data":[{"host":"'${zbx_hostname}'","key":"'${zbx_key}'","value":"'${zbx_value}'"}]}'

printf -v LENGTH '%016x' "${#DATA}"
PACK=""
for (( i=14; i>=0; i-=2 )); do PACK="$PACK\\x${LENGTH:$i:2}"; done
resp=$(printf "ZBXD\1$PACK%s" "$DATA" | nc ${zbx_server} ${zbx_port})
if [ -z "${resp##*failed\:\ 1*}" ] ; then
   >&2 echo "Err: sending failed"
   exit 1
fi