Search the Community
Showing results for tags 'query'.
Found 1 result
-
На самом деле тривиальная задача, но задумался я о ней только после того, как товарищи из соседнего отдела начали бегать сломя голову вокруг нагруженного сервера с базой. Что-то работало не так... Через некоторое время выяснилось, что на КПД системы влияют медленные запросы, и они крутятся не один год. В один прекрасный день система, многократно окупающая сервер, на котором стоит, стала захлебываться. А ведь проблему можно было решить еще до её проявления, не прибегая к мозговому штурму. Начинаем действовать Беглое погружение в просторы интернета приводят нас на официальный сайт MySQL где черным по "Русски" написано что в my.cnf имеется соответствующий раздел позволяющий настроить логирование для медленных запросов. http://dev.mysql.com/doc/refman/5.7/en/slow-query-log.html # Here you can see queries with especially long duration log_slow_queries = /var/log/mysql/mysql-slow.log long_query_time = 2Тут все ясно с одного взгляда. Превысил установленный лимит времени на выполнение, улетел в лог. Остается дело за малым - отследить изменения в файле и поднять тревогу В Zabbix имеется набор функций для отслеживания log файлов, но я не вижу смысла читать его построчно. Думаю, что достаточно просто смотреть на контрольную сумму. Для этих целей в Zabbix предусмотрена функция vfs.file.cksum, которой необходимо передать путь до файла. В нашем случае ключ выглядит следующим образом vfs.file.cksum[/var/log/mysql/mysql-slow.log]Останется только создать триггер проверяющий, отличаются ли два последних значения друг от друга и поднимающий тревогу, если они различаются. {<template-name>:vfs.file.cksum[/var/log/mysql/mysql-slow.log].diff()}=1Значение <template-name> замените на имя Вашего шаблона, если вы решили добавить отслеживание медленных запросов mysql к уже имеющемуся у Вас шаблону. На выходе получаем Замечание Если перезапустить сервер баз данных, то поднимется тревога т.к в лог свалится запись о перезапуске сервера. Но этого можно избежать если дополнительно контролировать время прошедшее с момента запуска mysqld. PS: конечно я понимаю, что лепить это в отдельный шаблон смешно, но вдруг у кого ни-ть возникнут трудности =) MySQL-Slow.zip