MySQL рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░реНрд▓ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдирд┐рдЧрд░рд╛рдиреА

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░ред

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

рдкреГрд╖реНрдарднреВрдорд┐ред

рдХрдИ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдореЗрд░реЗ рдПрдХ рдорд┐рддреНрд░ рдиреЗ рдЕрдкрдиреЗ рдмрдЯреБрдП рдореЗрдВ рдкреИрд╕реЗ рдХрд╛ рдЕрдзрд┐рд╢реЗрд╖ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг, рдПрдХ-рдпреВрдирд┐рдЯ рдЗрдВрдЯреЗрд▓ рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд░реНрд╡рд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдЦрд░реАрджрд╛, рдЗрд╕реЗ рд╕рдмрд╕реЗ рд╕рд╕реНрддреЗ рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░ рдореЗрдВ рд░рдЦрд╛ (рдЬреИрд╕рд╛ рдХрд┐ рдЕрдм рдЗрд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлреИрд╢рдиреЗрдмрд▓ рд╣реИ - рдХреЙрд▓реЛрдХреЛрд▓реЗрд╢рди рдкрд░), рдФрд░ рдкрд╣рд▓реЗ рдЕрдкрдиреА рд╕рд╛рдЗрдЯреЛрдВ рдХреЛ рдкреЛрд╕реНрдЯ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдлрд┐рд░ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рджреЛрд╕реНрддреЛрдВ рдХреЛ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рджреЛрд╕реНрддреЛрдВ рдиреЗ рдЕрдкрдиреЗ рдкреЗрдЬ рдкреЛрд╕реНрдЯ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдлрд┐рд░ рдЕрдкрдиреЗ рджреЛрд╕реНрддреЛрдВ рдФрд░ рдирд┐рдпреЛрдХреНрддрд╛рдУрдВ рдХреА рд╕рд╛рдЗрдЯреЗрдВ рдЦреАрдВрдЪреАрдВред рдЪреВрдБрдХрд┐ рдореЗрд░реЗ рджреЛрд╕реНрдд рдХреЛ LAMP рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдореЗрдВ рдмреБрд░реА рддрд░рд╣ рд╕реЗ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдереА, рдЗрд╕рд▓рд┐рдП рдЖрдЧреЗ рдХреА рд╣рд▓рдЪрд▓ рдХреЗ рдмрд┐рдирд╛, рдЙрдиреНрд╣реЛрдВрдиреЗ Cpanel WHM рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рд╕рднреА рдЕрд░реНрдерд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЛ рдкреНрд░рд╢рд╛рд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдХрд░реНрд╖рд┐рдд рд╣реБрдЖ, рдЬрд┐рд╕реЗ "рднреЛрдЬрди рдХреЗ рд▓рд┐рдП" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рд╢реНрд░рдо рд╢рдХреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ, рдореБрдЭреЗ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред

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

рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдмреИрд╢ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреАред рдлрд┐рд░, рдЬрдм рдореБрдЭреЗ рдЕрдкрдиреА рдореБрдЦреНрдп рдиреМрдХрд░реА рдХреА рдкреНрд░рдХреГрддрд┐ рд╕реЗ рдореЛрддреА рдХреЛ рдЬрд╛рдирдирд╛ рдкрдбрд╝рд╛, рддреЛ рдореИрдВрдиреЗ рдЗрд╕реЗ рдкрд░реНрд▓ рдореЗрдВ рд▓рд┐рдЦрд╛ред

рдЬреИрд╕рд╛ рдХрд┐ рдЕрднреНрдпрд╛рд╕ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рд╕рд╛рдорд╛рдиреНрдп рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди, mysql рд╕рд░реНрд╡рд░ рдПрдХ рд╕рд╛рде рдкрд╛рдБрдЪ "рдзреАрдореА" рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрддреНрдпрдзрд┐рдХ рд▓реЛрдб рдХрд┐рдП рдЧрдП рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рднреА, рдФрд░ рдпрджрд┐ рдХреЛрдИ рд╣реЛ, рддреЛ рдпрд╣ рдЗрди рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрд╡рд╕рд░ рд╣реИред рдмреЗрд╢рдХ, рдЖрдкрдХреЛ рд╕рдордп-рд╕рдордп рдкрд░ рдзреАрдореА рдХреНрд╡реЗрд░реА рдХреЗ рд▓реЙрдЧ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╖рдп рд╣реИ, рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рд░рд▓ рд╕реВрдЪрдХрд╛рдВрдХ рдмрдирд╛рддрд╛ рд╣реИред

рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рддрд░реНрдХ рд╕рд░рд▓ рд╣реИред рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ mysql рд╕рд░реНрд╡рд░ рдХреЛ рдЬреЛрдЦрд┐рдо рд╣реИ, рдЕрдЧрд░ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд╕рдордп, рджрд╕ рд╕реЗ рдЕрдзрд┐рдХ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП) "рдзреАрдореА" рдХреНрд╡реЗрд░реА рдПрдХ рд╕рд╛рде рдЪрд▓ рд░рд╣реА рд╣реИрдВ - рдЕрд╡рдзрд┐ рдореЗрдВ рдПрдХ рд╕реЗрдХрдВрдб рд╕реЗ рдЕрдзрд┐рдХред рд╣рдо рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ "рдЧрдВрднреАрд░" рдХрд╣рддреЗ рд╣реИрдВред рдпрджрд┐ рд╕реНрдерд┐рддрд┐ рдЧрдВрднреАрд░ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЕрд▓рд╛рд░реНрдо рдмрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЖрдЧреЗ рдХреЗ рдЕрднреНрдпрд╛рд╕ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ mysql рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрд╡ рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рд░рд╣рд╛ рд╣реЛ рддреЛ рдЕрд▓рд╛рд░реНрдо рдмрдЬрд╛рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдпрд╣реА рд╣реИ, рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ 10 рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рд░ рдорд┐рдирдЯ рдХреЗ рд╕рд╛рде рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝рддреА рд╣реИред рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдЖрдВрдХрдбрд╝рд╛ рд▓реЗрддреЗ рд╣реИрдВ, рдХрд╣рддреЗ рд╣реИрдВ, 5ред

рдПрдХ рдорд┐рдирдЯ рдореЗрдВ рдПрдХ рдмрд╛рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдБред рд╣рдо рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рд╣рдо рдЙрд╕ рд╕рдм рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдиреАрдВрдж рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдирд╣реАрдВ рд╣реИ рдФрд░ рдПрдХ рд╕реЗрдХрдВрдб рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд▓реЗрддрд╛ рд╣реИред рдпрджрд┐ рд╕рдВрдЦреНрдпрд╛ 10 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рд╣рдо рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреЛ рдПрдХ рдкрддреНрд░ рднреЗрдЬрддреЗ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдореА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВред рд╣рдо рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рдиреЛрдВ рдХреЛ рдЕрдВрддрд┐рдо 5 рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкрдврд╝рддреЗ рд╣реИрдВ - рдЕрдВрддрд┐рдо 5 рдорд┐рдирдЯреЛрдВ рдХреЗ рд▓рд┐рдП, рдФрд░ рдпрджрд┐ рдЗрд╕ рдЕрд╡рдзрд┐ рдХреЗ рджреМрд░рд╛рди 5 рдкреВрд░реНрд╡-рд░рд╛рдЬрдиреИрддрд┐рдХ рд░рд╛рдЬреНрдп рдереЗ, рддреЛ рд╣рдо рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреЛ рдПрдХ рдИрдореЗрд▓ рднреЗрдЬрддреЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рдмрд╛рдж, рдПрдХ рдмреНрд▓реЙрдХ рдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдбрд╛рд▓рд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдмрд╣реБ-рдордВрдЬрд┐рд▓рд╛ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдкрдХрдбрд╝рддрд╛ рдерд╛, рдЬреЛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рд░рд╛рдЬреНрдп рдореЗрдВ рдирд┐рд▓рдВрдмрд┐рдд рдХрд░ рджрд┐рдП рдЧрдП рдереЗред

рджрд░рдЕрд╕рд▓, рд╕реНрдХреНрд░рд┐рдкреНрдЯред

#!/usr/bin/perl #use strict; use DBI; use DBD::mysql; use POSIX; ($sysname, $hostname, $release, $version, $machine) = POSIX::uname(); my $slowtime=1; #       my $warnlevel=5; #       my $warncounter=5; #  $warncounter     my $alarmcounter=10; #     >= $alarmcounter     my $socket='/tmp/mysql56.sock'; #    my $email="admin\@myemail.net"; #   my $wrkdir='/tmp/'; my $procfile=$wrkdir.'alarm.proclist'; #      my $datfile=$wrkdir.'alarm.dat'; #        my $pidfile=$wrkdir.'alarm.pid'; # pid .  mysql         if (-e "$pidfile") { printf("pid file found. Exit.\n"); exit(255); } open (PIDFILE,">$pidfile") || die "cant create $pidfile\n"; print PIDFILE "$$\n"; close PIDFILE; open (PROCFILE,">$procfile") || die "cant create $procfile\n"; my ($proc, $dbh, $sth, $totalcounter, $slowcounter, $sleepcounter, $user, $time, $state, $command, $info, $i); until ($dbh = DBI->connect("DBI:mysql:mysql_socket=$socket", "user", "password")){ unlink($pidfile); die("Can't connect: $DBI::errstr\n"); } $sth = $dbh->prepare("SHOW FULL PROCESSLIST"); $sth->execute; my @proclist=(); $totalcounter=$slowcounter=$sleepcounter=0; while (my $row = $sth->fetchrow_hashref()) { $user=$row->{'User'}; $time=$row->{'Time'}; $state=$row->{'State'}; $command=$row->{'Command'}; $info=$row->{'Info'}; $totalcounter++; next if ($user =~ m/root/); if ($command =~ m/(Sleep|Delayed|Binlog)/){ $sleepcounter++; next; }; ###      statistics if ($state =~ m/statistics/ && $time > 5){ $statinfo="$user: killed $mid: $dbuser | $db | $time | $state | $command | $info\n\n"; $sth2 = $dbh->prepare("kill $mid"); $sth2->execute; $sth2->finish; open (MAIL,"|/usr/sbin/sendmail -F$hostname $email"); print MAIL "To:$email\nSubject:".$subj."Hanged query in the statistics state: $hostname, user $user \n\n"; print MAIL $statinfo; close (MAIL); }; ### if ($time>$slowtime) { $slowcounter++; } $info =~ s/[\r\n\t]+/ /g; push (@proclist,sprintf("%-24s | %4d | %s | %s | %s \n", $user, $time, $state, $command, $info)); printf PROCFILE ("%-24s | %4d | %s | %s | %s \n", $user, $time, $state, $command, $info); } $sth->finish; close PROCFILE; #print "--- $slowcounter slow queries from total $totalcounter ($sleepcounter are sleep) ---- \n"; my @data=(); ### read slowcounter timings from dat file open (DATFILE,"<$datfile"); while(<DATFILE>){ my($line) = $_; chomp($line); push (@data,$line); } close(DATFILE); ### if dat file is smaller than warnlevel then fill timings by zeros if (scalar(@data)<$warnlevel) { for $i ( 0 .. $warnlevel-scalar(@data) ) { push (@data,0); } } ### shift timings with last slowcounter push (@data,$slowcounter); shift(@data); ### dumping slowcounter timings to dat file open (DATFILE,"+>$datfile") || die "cant create $datfile\n"; foreach (@data) { print DATFILE "$_\n"; } close(DATFILE); ### get number of bad states for last minutes my $cnt=0; foreach (@data) { if($_ >= $warnlevel) { $cnt++; } } my $subj=" "; if ($slowcounter>=$alarmcounter) { # very critical state $subj=" VERY "; } my $warnmessage="Critical state of $hostname! There was a $warncounter checks with at least $warnlevel long queries!\n"; if ($slowcounter>=$alarmcounter) { # very critical state $warnmessage=$warnmessage."--- !!! Last check shows $slowcounter long queries!\n"; } if (($cnt >= $warncounter) || $slowcounter>=$alarmcounter){ open (MAIL,"|/usr/sbin/sendmail -F$hostname $email"); print MAIL "To:$email\nSubject:".$subj."Critical state of $hostname\n\n"; print MAIL $warnmessage; print MAIL "---------------------------------------------------------------------------------------------------\n"; print MAIL "--- $slowcounter slow queries from total $totalcounter ($sleepcounter are sleep) \n"; print MAIL "---------------------------------------------------------------------------------------------------\n"; foreach (@proclist) { print MAIL "$_"; } close (MAIL); } unlink($pidfile); 


рдореИрдВ рдирд┐рдЬрд╝рдиреА рдиреЛрд╡рдЧреЛрд░реЛрдб рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдлреА рдорд╛рдБрдЧрддрд╛ рд╣реВрдБред

рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХрдВрдкрдиреА рдореЗрдВ mysql рдХреЙрдореНрдмреИрдЯ рд╕рд░реНрд╡рд░ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд╣рд╛рдБ рдореИрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдХрдИ рдмрд╛рд░ рдореИрд╕рдХрд╛рд░рд▓ рд╕рд░реНрд╡рд░ рдХреЛ рд╕реЗрд╡рд╛ рд╕реЗ рд╡рдВрдЪрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдореЗрдВ рдорджрдж рдХреА, рдФрд░ рдмрд╕ рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдмреЗрдХрд╛рд░ рд╕рдВрд╕рд╛рдзрди рдХреЛ рдмрд░реНрдмрд╛рдж рдХрд░рдиреЗ рдХреА рд╕реВрдЪрдирд╛ рджреАред

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рдо рдХрд░рддреА рд╣реИ:

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

- рдЬрдм рдЕрдВрдзреЗ SQL рдЗрдВрдЬреЗрдХреНрд╢рди рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рдПрдХ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд╣рдорд▓рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;

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

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

- рдЬрдм рдорд▓реНрдЯреА рд╕реНрдЯреЛрд░реА рдЬреЙрдЗрди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд▓рдЯрдХрд╛рддреЗ рд╣реИрдВред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрдиреНрд╣реЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд╛рдЦреВрди рджреЗрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рд╡реЗ рдорд╛рд░реЗ рдирд╣реАрдВ рдЬрд╛рддреЗ рд╣реИрдВ - mysql рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдХрд╛рд░рдг;

- рдХрдИ рдмрд╛рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрдХрдбрд╝рд╛ рдЧрдпрд╛ mysql рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рд╢реНрдиреЛрдВ рдкрд░ рд▓рдЯрдХрд╛ рд╣реБрдЖ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЖрдЧреЗ рдЕрдзреНрдпрдпрди рдиреЗ рдПрдХ рдЕрджреНрдпрддрди рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд┐рдпрд╛, рдмрдЧрдЯреНрд░реИрдХ рдкрд░ рд╕рдорд╛рди рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд╕рд╛рде рдмрдЧ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдмрд╛рджред

рдХрднреА-рдХрднреА, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХрддрд╛рдПрдВ рдЖрддреА рд╣реИрдВ рдпрджрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдПрдХ рдмрдбрд╝реА рддрд╛рд▓рд┐рдХрд╛ рдХреА рдорд░рдореНрдордд, рдЕрдиреБрдХреВрд▓рди рдпрд╛ рдбрдВрдк рдХрд░рддрд╛ рд╣реИред

рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреА рдЕрдЧрд░ рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред

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


All Articles