рдореИрдВрдиреЗ рдЬрд╝реИрдмрд┐рдХреНрд╕ рдХреЛ рдЕрдкрдиреЗ рдиреЛрдб рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдиреЗ рдФрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рд╕рд┐рдЦрд╛рдпрд╛

рдирдорд╕реНрдХрд╛рд░, рд╣реЗрдмреНрд░!

рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдкрдиреЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреА рдПрдХ рдЯреАрдо рдХреЗ рд╕рд╛рде рдмреНрд▓реЙрдХрдЪреЗрди рдореИрд╕реЗрдВрдЬрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдХреМрди рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИ - рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдВрдХ рджреЗрдЦреЗрдВ рдпрд╛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдкреВрдЫреЗрдВред

рдмреНрд▓реЙрдХрдЪреЗрди рд╡рд┐рдХрд╛рд╕ рдПрдХ рдирдпрд╛ рдФрд░ рдЕрдЬреНрдЮрд╛рдд рдХреНрд╖реЗрддреНрд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рдмрд╣реБрдд рд╣реА рдЧреИрд░-рдорд╛рдирдХ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдЦреБрд░реНрджрдмреАрди рдФрд░ рдирд╛рдЦреВрди рдХрд╣рд╛рдБ рд╣реИ! рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрднреНрдпрд╛рд╕ рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рджрд┐рд▓рдЪрд╕реНрдк рдорд╛рдорд▓реЛрдВ рдХреЛ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдмреНрд▓реЙрдЧ рдХреЛ рд░рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЖрдЬ рдХреА рдкреЛрд╕реНрдЯ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рдиреЛрдб рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддреНрд╡рд░рд┐рдд рд╕реВрдЪрдирд╛ рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд░реВрдВ, рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдореИрдВ рдЗрд╕реЗ рдЬрд▓реНрджреА рд╕реЗ рдЬреАрд╡рди рдореЗрдВ рд╡рд╛рдкрд╕ рд▓рд╛ рд╕рдХрддрд╛ рд╣реВрдВред



рдЬрд┐рд╕ рдпреЛрдЬрдирд╛ рдХрд╛ рдореИрдВрдиреЗ рдкрд╛рд▓рди рдХрд┐рдпрд╛


рдЬрд┐рд╕ рдХрд╛рд░реНрдп рдХреЛ рдореИрдВрдиреЗ рд╕реНрд╡рдпрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╡рд╣ рдпрд╣ рдерд╛: рд╣рд░ рдмрд╛рд░ рдЬрдм рдХреЛрдИ рдиреЛрдб рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛрддрд╛ рд╣реИ рдпрд╛ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддрддреНрдХрд╛рд▓ рд╕реВрдЪрдирд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рд╣рдо рдПрдХ рдкреНрд░рдЧрддрд┐рд╢реАрд▓ рдпреБрдЧ рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВ рдФрд░ рддреБрд░рдВрдд рд╕рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣реИ рдирд╛?

рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдЗрд╕ рдХрд╛рдо рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рдЬрд╝реИрдмрд┐рдХреНрд╕ рдХреЛ рд╕реНрд▓реИрдХ (рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреВрд▓) рд╣реЛрдЧрд╛ред рддрджрдиреБрд╕рд╛рд░, рдЬрд╝реИрдмрд┐рдХреНрд╕, рдиреЛрдб рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░реЗрдЧрд╛ рдФрд░ рд╕реНрд▓реИрдХ рдХреЗ рдкреАрдПрдо рдореЗрдВ рдореБрдЭреЗ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рднреЗрдЬреЗрдЧрд╛ред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди: рдХрджрдо рд╕реЗ рдХрджрдо


рдЪрд░рдг 1: рдЬрд╝рдмрд┐рдХреНрд╕


рдмреЗрд╢рдХ, рдЬрд╝реИрдмрд┐рдХреНрд╕ рдореЗрдВ рд╣рдорд╛рд░реЗ рдиреЛрдб рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдкреВрд░реНрд╡-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд┐рдЧрд░рд╛рдиреА рдЙрдкрдХрд░рдг рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдкрд╣рд▓реА рдЗрдЪреНрдЫрд╛ рдХреБрдВрдЬреА net.tcp.listen[port]. рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдиреЛрдб рдкреЛрд░реНрдЯ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдерд╛ net.tcp.listen[port].

рд▓реЗрдХрд┐рди рдПрдХ "рд▓реЗрдХрд┐рди" рд╣реИ: рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдиреЛрдб рд╕рдХреНрд░рд┐рдп рд╣реИ, рдпрд╣ рдмрдВрджрд░рдЧрд╛рд╣ рдкрд░ рд╕реБрдирддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдпрд╣рд╛рдВ рдореБрдЭреЗ рдЗрд╕ рддрдереНрдп рд╕реЗ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдХрд┐ рдЖрдкрдХреЛ рдиреЛрдб рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдореБрдЦреНрдп рд╕рдВрдХреЗрдд рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдиреЛрджрд╛ рдХреЛ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдареАрдХ рд╣реИ, рдмрдврд╝реЛред рдпрд╣рд╛рдВ рд╡рд┐рдХрд╛рд╕ рдореБрдЦреНрдп рд╕рдВрдХреЗрдд рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдХреБрдВрдЬреА system.run[command, mode] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред

рд╕рд╛рде рдореЗрдВ curl -s http://127.0.0.1:36666/api/blocks/getHeight ред

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдлреЙрд░реНрдо рдХрд╛ JSON рдкреНрд░рд╛рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ

 {"success":true,"nodeTimestamp":XXXXXXX,"height":XXXXXXX} 

JSON рдкреИрдХреЗрдЬ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП jq рдкреИрдХреЗрдЬ (https://stedolan.imtqy.com/jq/) рдЖрдпрд╛ред рдкрд╛рдЗрдк curl http://127.0.0.1:36666/api/blocks/getHeight | jq .height рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╕рд░рд▓ рдкрд░рд┐рдгрд╛рдо рд╣рд╕реНрддрд╛рдВрддрд░рдг curl http://127.0.0.1:36666/api/blocks/getHeight | jq .height {6666 / api / block / getHeight curl http://127.0.0.1:36666/api/blocks/getHeight | jq .height curl http://127.0.0.1:36666/api/blocks/getHeight | jq .height , рдФрд░ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкреНрд░рддреАрдХреНрд╖рд┐рдд рдКрдВрдЪрд╛рдИ рдХреЗ рдмрдЬрд╛рдп, рд╣рдореЗрдВ curl рдХрдорд╛рдВрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдпреБрдХреНрдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓реАред



рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдПрдХ рд╕рд╣рд╛рдпрдХ рдЖрдпрд╛ - рдПрд╕ рдПрд╕ -s , рдЙрд░реНрдл -silent ред рдирддреАрдЬрддрди, Zabbix рдХреБрдВрдЬреА system.run[curl -s http://127.0.0.1:36666/api/blocks/getHeight | jq .height] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ system.run[curl -s http://127.0.0.1:36666/api/blocks/getHeight | jq .height] system.run[curl -s http://127.0.0.1:36666/api/blocks/getHeight | jq .height] рд╣рдореЗрдВ рдирд┐рдЧрд░рд╛рдиреА XXXXXXXXX рдХреЗ рд▓рд┐рдП рд╡рд╛рдВрдЫрд┐рдд рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХреА рдиреЛрдб рдКрдВрдЪрд╛рдИ рдорд┐рд▓рддреА рд╣реИред



рдпреЛрдЬрдирд╛рдмрджреНрдз рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреНрд░рд┐рдЧрд░ рднреА рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдпреЛрдЬрдирд╛ рдпрд╣ рдереА: рдкрд┐рдЫрд▓реЗ рдФрд░ рдкрд┐рдЫрд▓реЗ рдореВрд▓реНрдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ, рдФрд░ рддрд╛рдХрд┐ рдЯреНрд░рд┐рдЧрд░ рдХрд╛рдо рдХрд░реЗ рдЕрдЧрд░ рд╡рд┐рдХрд╛рд╕ рдПрдХ рд╕реЗ рдХрдо рд╣реЛред

{ADAMANT Node Monitoring:system.run[curl -s http://127.0.0.1:36666/api/blocks/getHeight | jq .height].change()}<1

рдЪрд░рдг 2. рдЬрд╝реИрдмрд┐рдХреНрд╕ рдЯреВ рд╕реНрд▓реИрдХ




рдЕрдЧрд▓рд╛ рдХрд╛рд░реНрдп рд╕реНрд▓реИрдХ рдореЗрдВ рдЯреНрд░рд┐рдЧрд░ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдирд╛ рд╣реИред рдПрдХ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рд╕рд╛рдордЧреНрд░реА https://github.com/ericoc/zabbix-slack-alertscript рд▓реАред

рдирд┐рд░реНрджреЗрд╢ рд╕реНрдкрд╖реНрдЯ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЧрдВрднреАрд░рддрд╛ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдореЛрдЯрд┐рдХреЙрдиреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЧрдВрднреАрд░ рдирд╣реАрдВ рд╣реИред рд░рдВрдЧ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдмрдирд╛ рд░рд╣рддрд╛ рд╣реИ:

  url='********************************' username='Server' to="$1" subject="$2" recoversub='^RECOVER(Y|ED)?$' if [[ "$subject" == 'Warning' ]]; then color='#EBFF00' elif [ "$subject" == 'Not classified' ]; then color='#D8E3FF' elif [ "$subject" == 'Information' ]; then color='#0049FF' elif [ "$subject" == 'Average' ]; then color='#FFC200' elif [ "$subject" == 'High' ]; then color='#FF5500' elif [ "$subject" == 'Disaster' ]; then color='#FF0000' else color='#00FF06' fi message="${subject} \n $3" payload="payload={\"attachments\": [{\"color\": \"${color}\", \"text\": \"${message}\"}]}" curl -m 5 --data-urlencode "${payload}" $url 

рдирд┐рд╖реНрдХрд░реНрд╖


рдПрдХ рдиреИрддрд┐рдХ, рдХреБрдЫ рд╢рдмреНрджреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ, рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд┐рдЧрд░рд╛рдиреА рдЗрддрдиреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрдпреЛрдВ рд╣реИред рдЬрд┐рддрдиреА рддреЗрдЬреА рд╕реЗ рдЖрдк рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗрдВрдЧреЗ, рдЙрддрдиреА рд╣реА рддреЗрдЬреА рд╕реЗ рдЖрдк рдЙрд╕реЗ рдареАрдХ рдХрд░ рдкрд╛рдПрдВрдЧреЗ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХрдо рд╕реНрдкрд╖реНрдЯ рд╣реЛрдВрдЧреЗред рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рд╕рдордп рдЧрд┐рд░рдирд╛ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рд╕реНрд▓реИрдХ рдореЗрдВ, рдЕрдиреНрдп рдмрд╛рддреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рдореВрд╣ рдЪреИрдЯ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЯреАрдо рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рдордиреНрд╡рдп рдХреЗ рд▓рд┐рдП рдЬреБрдбрд╝ рд╕рдХрддреА рд╣реИред рд╡реИрд╕реЗ, рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдУрдкрди рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣реИ, рдФрд░ рд╣рдо рдЕрдиреНрдп рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдмрд╣реБрдд рд╕рдореНрдорд╛рди рдХрд░рддреЗ рд╣реИрдВред рдореЗрд░реЗ рдкреНрд░рдпреЛрдЧ рдиреЗ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рджрд┐рдЦрд╛рдпрд╛ рдХрд┐ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдЕрдЪреНрдЫрд╛ рд╣реИред

Source: https://habr.com/ru/post/hi440216/


All Articles