рд╕рднреА рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдЕрдкрдиреА "рдмрд╛рдЗрдХ" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛, рдЬрд┐рд╕ рдкрд░ рдореИрдВ рдХрдВрд╕реЛрд▓ рдХреЛ рдЫреЛрдбрд╝реЗ рдмрд┐рдирд╛ рд╡рд┐рднрд┐рдиреНрди рдЪреАрдЬреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддрд╛ рд╣реВрдВред
рдореБрдЭреЗ рдПрдХ рдмрд╛рд░ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдЬрд╣рд╛рдБ рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдФрд░ рд╕рд░реНрд╡рд░реЛрдВ рдХреЛ рдХрд╛рдЯ рджрд┐рдпрд╛ рдЧрдпрд╛, рдФрд░ рдореЗрд░реЗ рд╣рд╛рде рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдЧрд░рд╛рдиреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдБрдЪреЗред
рдФрд░ рдЖрдзреБрдирд┐рдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ, "рд╕рд╣реА" рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рд╕реЗ рддрд╛рддреНрдкрд░реНрдп рд╣реИ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЗ рдПрдХ рдкреВрд░реЗ рд╕рдореВрд╣ рдХреА рддреИрдирд╛рддреА, рдЗрд╕ рдкреВрд░реА рдЪреАрдЬрд╝ рдХрд╛ рд╡рд┐рдиреНрдпрд╛рд╕ред рд╡реИрд╕реЗ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ ... рдбреЙрдХрдЯрд░, рдЗрд▓рд╛рд╕реНрдЯрд┐рдХ рд╕реНрдЯреИрдХ рдФрд░ рдСрдл рдпрд╣ рдЪрд▓рд╛ рдЧрдпрд╛ред рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдордЬрдмреВрдд рдУрд╡рд░рд╣реЗрдб рдерд╛ред рдореБрдЭреЗ рдкреНрд░реЛрдбрдХреНрд╢рди рдореЗрдВ рдПрдХ рдпрд╛ рджреЛ рдЪрд╛рд╣рд┐рдП рдереЗред
рдореИрдВрдиреЗ рдПрдХ рдЕрдЬрдЧрд░ рдкрд░
рд╕рд░рд▓ рдирд┐рдЧрд░рд╛рдиреА рдХреА рдУрд░ рджреЗрдЦрд╛, рдпрд╣ рдЖрддреНрдорд╛ рдореЗрдВ рдореЗрд░реЗ рд╕рдмрд╕реЗ рдХрд░реАрдм рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЕрднрд╛рд╡ рдерд╛ред рдФрд░ рдЙрд╕реА рд╕рдордп рдореИрдВ рдЧреЛ рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ ... рдареАрдХ рд╣реИ, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЖрдк рдЦреБрдж рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдорддреМрд░ рдкрд░ рдпрд╣ рд╕рдм рдХреИрд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЧреЛ
рд╡реЗрд▓реНрдбрд┐рдВрдЧ рд▓реА, рдФрд░ рдЗрд╕
рдмрд╛рдЗрдХ рдХреЛ рдПрдХ рд╕рд╛рде рд░рдЦрд╛ред
рдХреНрд▓реА рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдЧреЛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдЯрдб рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕реНрдЯрдбрдЖрдЙрдЯ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдХреБрд▓ рдЪрд╛рд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рд╣реИрдВ:
рдореИрдЯреНрд░рд┐рдХреНрд╕ ,
рдкреНрд░реЛрд╕реЗрд╕рд░ ,
рдлрд┐рд▓реНрдЯрд░ рдФрд░
рдЖрдЙрдЯрдкреБрдЯ ред
рдореЗрдЯреНрд░рд┐рдХреНрд╕ , рдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рд╣реИ, рдХреЛрдИ рднреА рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░реЗрдВ рдФрд░ рдЖрдорддреМрд░ рдкрд░ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдкрд╣рд▓реЗ рдЬрд╛рдПрдВред
рдкреНрд░реЛрд╕реЗрд╕рд░ рдмреАрдЪ рдореЗрдВ рд╣реИрдВ рдФрд░ рдХрд┐рд╕реА рддрд░рд╣ рдбреЗрдЯрд╛ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ рдпрд╛ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВред
рдлрд┐рд▓реНрдЯрд░ рд▓рдЧрднрдЧ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреА рддрд░рд╣ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╡реЗ рд╢рд░реНрдд рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдбреЗрдЯрд╛ рдХреЛ рдЫреЛрдбрд╝рддреЗ рд╣реИрдВ рдпрд╛ рдЫреЛрдбрд╝рддреЗ рдирд╣реАрдВ рд╣реИрдВред
рдЖрдЙрдЯрдкреБрдЯ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИрдВ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╕реВрдЪрдирд╛рдПрдВ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЖрджреЗрд╢реЛрдВ рдХреА рдкреВрд░реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рдлреЙрд░реНрдо рд╣реЛрддрд╛ рд╣реИ:
some_metric | processor_1 | processor_2 ... | cm_p_message | output_1 | output_2 ...
рдЗрд╕ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдХреЛрдИ рднреА рдЯреБрдХрдбрд╝рд╛ рдХрд┐рд╕реА рднреА рд▓рд┐рдирдХреНрд╕ рдХрдорд╛рдВрдб рдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рд╕реНрдЯрдбрд┐рди рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдмрд┐рдирд╛ рдмрдлрд░рд┐рдВрдЧ рдХреЗ рд╕реНрдЯрдбрдЖрдЙрдЯ рдХреЛ рднреЗрдЬрддрд╛ рд╣реИред рд▓рд╛рдЗрди рдмреНрд░реЗрдХ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреЗрд╡рд▓ рдПрдХ рдЫреЛрдЯрд╛ BUT рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдЙрд╕ рдкрд░ рдФрд░ рдЕрдзрд┐рдХред
рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХрд╛ рдирд╛рдо
cm_ {type} _ {name} рдХреЗ рд░реВрдк рдореЗрдВ
рдмрдирддрд╛ рд╣реИ , рдЬрд╣рд╛рдБ рдкреНрд░рдХрд╛рд░ рддреАрди рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ:
m, p, f рдпрд╛ o , рдФрд░ рдирд╛рдо рдХрдорд╛рдВрдб рдХрд╛ рдирд╛рдо рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, cm_m_cpu рдПрдХ рдореАрдЯреНрд░рд┐рдХ рд╣реИ рдЬреЛ рдПрдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рдЖрдБрдХрдбрд╝реЗ рдХреЛ json рдкреНрд░рд╛рд░реВрдк рдореЗрдВ stdout рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддрд╛ рд╣реИред
рдФрд░ cm_p_debounce рдлрд╝рд╛рдЗрд▓ рдПрдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдЕрдВрддрд░рд╛рд▓ рдкрд░ рд╣рд░ рдмрд╛рд░ рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрджреЗрд╢ рджреЗрддрд╛ рд╣реИред
рдПрдХ рд╡рд┐рд╢реЗрд╖
cm_p_message рдкреНрд░реЛрд╕реЗрд╕рд░ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд╕рд╛рдордиреЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЕрдкрдиреЗ рдЖрдЙрдЯрдкреБрдЯ рджреНрд╡рд╛рд░рд╛ рдмрд╛рдж рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рд╕рдВрджреЗрд╢ рдмрдирд╛рддрд╛ рд╣реИред
рдХрдВрд╕реЛрд▓ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ json рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ
jq рдпреВрдЯрд┐рд▓рд┐рдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдпрд╣ рдХреБрдЫ-рдХреБрдЫ рд╕реАрдб рдХреА рддрд░рд╣ рд╣реИ, рдХреЗрд╡рд▓ рдЬреЛрдВрд╕ рдХреЗ рд▓рд┐рдПред
рдпрд╣ рд╣реИ рдХрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реАрдкреАрдпреВ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдЕрдВрдд рдореЗрдВ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред
cm_m_cpu | cm_p_eot2nl | jq -cM --unbuffered 'if .LoadAvg1 > 1 then .LoadAvg1 else false end' | cm_p_nl2eot | cm_f_regex -e '\d+' | cm_p_debounce -i 60 | cm_p_message -m 'Load average is {stdin}' | cm_o_telegram
рдФрд░ рдЗрд╕рд▓рд┐рдП RabbitMQ рдХрддрд╛рд░ рдореЗрдВ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдирд╛
while true; do rabbitmqctl list_queues -p queue_name | grep -Po --line-buffered '\d+'; sleep 60; done | jq -cM '. > 10000' --unbuffered | cm_p_nl2eot | cm_f_true | cm_p_message -m 'There are more than 10000 tasks in rabbit queue' | cm_o_opsgenie
рдЗрд╕рд▓рд┐рдП рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ 10 рд╕реЗрдХрдВрдб рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ
tail -f out.log | cm_p_nl2eot | cm_p_watchdog -i 10 | cm_p_debounce -i 3600 | cm_p_message -m 'No write to out.log for 10 seconds' -s 'alert' | cm_o_telegram
рд╕реНрдХреНрд░реАрди рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд▓реНрджреА рдордд рдХрд░реЛ, рдЕрдм рд╣рдо рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред
1) рдореАрдЯреНрд░рд┐рдХ
cm_m_cpu рдПрдХ рд╕реЗрдХрдВрдб рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ (-i рдкреИрд░рд╛рдореАрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рд╕реЗрдХрдВрдб) рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рд░реВрдк рдореЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, {"LoadAvg1": 2.0332031, "LoadAvg2": 1.9018555, "LoadAvg3": 1.8623047}
2) cm_p_nl2eot рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрдорд╛рдВрдб рдореЗрдВ
рд╕реЗ рдПрдХ рд╣реИ рдЬреЛ EOT рдХреИрд░реЗрдХреНрдЯрд░ рдХреЛ LF рдХреИрд░реЗрдХреНрдЯрд░ рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рддрд╛ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд▓рд╛рдЗрди рд░реИрдкрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдХрд┐ рдореЗрд░реЗ рд╕рднреА рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдПрдПрд╕рд╕реАрдЖрдИ рдЪрд░рд┐рддреНрд░ рдИрдУрдЯреА (рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдСрдл рдПрдВрдб рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди) рддрдХ рдбреЗрдЯрд╛ рдкрдврд╝рддреЗ рд╣реИрдВред рдпрд╣ рдЖрдкрдХреЛ рдЯреАрдореЛрдВ рдХреЗ рдмреАрдЪ рдорд▓реНрдЯреА-рд▓рд╛рдЗрди рдбреЗрдЯрд╛ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдЬрдм рдХрд┐рд╕реА рдЕрдиреНрдп рдХрдорд╛рдВрдб рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдлреЙрд░реНрдо рдореЗрдВ рдШрд┐рд░рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
cm_p_eot2nl | рдХреЛрдИ рдЕрдиреНрдп рдЯреАрдо | cm_p_nl2eotред3) рдЕрдЧрд▓рд╛ jq рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ рд╣реИ, рдЬреЛ LoadAvg1 рдлрд╝реАрд▓реНрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдпрд╣ 1 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рдЗрд╕реЗ рдЖрдЧреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдпрджрд┐ рдХрдо рд╣реИ, рддреЛ рдЭреВрдард╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ
4) рдЕрдЧрд▓рд╛, рд╣рдореЗрдВ рдкреВрд░реЗ рд╕рдВрджреЗрд╢ рдХреЛ рдЪреЗрди рд╕реЗ
рдЭреВрдареЗ рдлреЗрдВрдХрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо
cm_f_regex рдлрд╝рд┐рд▓реНрдЯрд░ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реЗрддрд╛ рд╣реИ, рдЗрд╕реЗ рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдФрд░, рдПрдХ рдореИрдЪ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕реЗ рдЖрдЧреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдХреЗрд╡рд▓ рддреНрдпрд╛рдЧ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕рд╛рдзрд╛рд░рдг grep рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдмрдлрд╝рд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдкреВрд░реНрдг рд╕рд┐рдВрдЯреИрдХреНрд╕ рдереЛрдбрд╝реА рд▓рдВрдмреА (grep --line-buffered) рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ cm_f_regex рд╕рдореВрд╣ рдореИрдЪреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
cm_f_regex -e '(\d+)-(\d+)' -o '{1}/{2}'
рдзрд░реНрдорд╛рдиреНрддрд░рд┐рдд рд░реЗрдЦрд╛ 123-345 рд╕реЗ рдкрдВрдХреНрддрд┐ 123/345
5) рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ
cm_p_debounce рдкреНрд░реЛрд╕реЗрд╕рд░, рд╣рдорд╛рд░реЗ LoadAvg1 рдорд╛рди рдХреЛ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ 60 рд╕реЗрдХрдВрдб рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдиреАрдЪреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЕрдкрдиреЗ рдЖрдк рдХреЛ рд╕реНрдкреИрдо рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЖрдк рдХреЛрдИ рдЕрдиреНрдп рдЕрдВрддрд░рд╛рд▓ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
6) рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрджреЗрд╢ рдмрдирд╛рдиреЗ рдФрд░ рдЗрд╕реЗ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдореЗрдВ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИред рд╕рдВрджреЗрд╢ рд╡рд┐рд╢реЗрд╖
cm_p_message рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдЬрдирд░реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдмрд╕ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЧрдВрднреАрд░рддрд╛, рд╕рдВрджреЗрд╢ рдФрд░ рдЕрдиреНрдп рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдЬреЛрдВрд╕ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд╣рдордиреЗ -m рд╡рд┐рдХрд▓реНрдк рдХреЛ рдкрд╛рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рд╕реНрдЯрдбрд┐рди рд╕рдВрджреЗрд╢ рд╣реЛрдЧрд╛, рдЕрд░реНрдерд╛рддреНред рдмрд╛рдЬрд░рд╛ рдирдВрдмрд░ рд╣рдорд╛рд░реЗ LoadAvg1 рд╣реИред рдпрд╣ рдмрд╣реБрдд рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред
7) cm_o_telegram
рдЯреАрдо рдХреЗрд╡рд▓ рдкреНрд░рд╛рдкреНрдд рд╕рдВрджреЗрд╢ рдХреЛ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдореЗрдВ рднреЗрдЬрддреА рд╣реИред рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдПрдХ рдЖрдИрдПрдирдЖрдИ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреА рд╣реИрдВред
рд╡рд┐рдиреНрдпрд╛рд╕
рд╕рднреА рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЖрдИрдПрдирдЖрдИ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рддрд░реНрдХ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░, рдЖрдИрдПрдирдЖрдИ рдлрд╝рд╛рдЗрд▓ рдкрд░ рдкреВрд░реНрд╡рддрд╛ рд▓реЗрддреЗ рд╣реИрдВред
Init рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рд░реВрдк рд╣реИ:
[global]
host_name=override host name for this machine
[telegram]
cid=....
token=....
[opsgenie]
apiToken=...
apiEndpoint=...
......
[debounce]
i=3600
Ini рдлрд╝рд╛рдЗрд▓ рд╕реНрд╡рдпрдВ рдирд┐рдореНрди рдХреНрд░рдо рдореЗрдВ рдЪреБрдиреА рдЧрдИ рд╣реИ:
1) рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ cm.config.ini
2) рдлрд╝рд╛рдЗрд▓ /etc/cm/config.ini рдпрджрд┐ рдЖрдЗрдЯрдо 1 рд╕реЗ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рдорд┐рд▓реА рд╣реИ
рдЙрддреНрдкрд╛рджрди
рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рд░реНрд╡рд░ рдкрд░, рдореИрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реВрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, cpu.sh, рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЪреЗрди рдСрдлрд╝ рдХрдорд╛рдВрдбреНрд╕ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред рдлрд┐рд░ рддрд╛рдЬ рдореЗрдВ рдореИрдВ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрддрд╛ рд╣реВрдВ:
*/5 * * * * flock -n /etc/cm/cpu.lock /etc/cm/cpu.sh > /dev/null
рдЕрдЧрд░ рдХреБрдЫ рдЧрд┐рд░ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдЭреБрдВрдб рдХрдорд╛рди рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦрдбрд╝рд╛ рдХрд░реЗрдЧрд╛ред рдФрд░ рд╡рд╣ рд╕рдм рд╣реИ! рдЬрд┐рд╕ рд╕рд╛рджрдЧреА рдореЗрдВ рдореЗрд░реА рдЗрддрдиреА рдХрдореА рдирд╣реАрдВ рдереАред
рдпрд╣ рдПрдХ рдРрд╕рд╛ рдЙрдкрдХрд░рдг рд╣реИ, рд╢рд╛рдпрдж рдХрд┐рд╕реА рдХреЛ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд▓рдЧреЗрдЧрд╛ред рдореЗрд░реЗ рд▓рд┐рдП, рд╕реБрд╡рд┐рдзрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рдЪреАрдЬреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реА рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЪреАрдЬреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдФрд░ рдпрд╣ рд╕рднреА рдЖрд╕рд╛рдиреА рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдЗрд╕рдиреЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдХреНрд▓реЛрди рдХрд┐рдпрд╛, $ PATH рдореЗрдВ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрддрд╛ рдЬреЛрдбрд╝рд╛ рдФрд░ рдпрд╣ рд╣реИред
рдХреГрдкрдпрд╛ рдХрдбрд╝рд╛рдИ рд╕реЗ рдиреНрдпрд╛рдп рди рдХрд░реЗрдВред рдЙрдкрдХрд░рдг рдЦреБрдж рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдХрдорд╛рдВрдб рдХрд╛ рд╕реЗрдЯ рдЕрднреА рддрдХ рдмрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХрд┐рд╕реА рднреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рд╕реБрдЭрд╛рд╡ рдкрд░ рдЦреБрд╢реА рд╣реЛрдЧреАред рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред