<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PlanetMysql.ru - информация о СУБД MySQL &#187; diagnosis</title>
	<atom:link href="http://planetmysql.ru/category/diagnosis/feed/" rel="self" type="application/rss+xml" />
	<link>http://planetmysql.ru</link>
	<description>Блог о самой популярной СУБД MySQL</description>
	<lastBuildDate>Thu, 24 May 2012 17:22:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>My MySQL SNMP Agent</title>
		<link>http://mmatemate.blogspot.com/2011/07/my-mysql-snmp-agent.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=my-mysql-snmp-agent</link>
		<comments>http://mmatemate.blogspot.com/2011/07/my-mysql-snmp-agent.html#comments</comments>
		<pubDate>Thu, 21 Jul 2011 22:24:24 +0000</pubDate>
		<dc:creator>Gerardo Narvaja</dc:creator>
				<category><![CDATA[dba]]></category>
		<category><![CDATA[diagnosis]]></category>
		<category><![CDATA[MariaDB]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[opennms]]></category>
		<category><![CDATA[oscon]]></category>
		<category><![CDATA[Replication]]></category>
		<category><![CDATA[snmp]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://planetmysql.ru/?guid=f04a585a1fc717b76233287b17e784e4</guid>
		<description><![CDATA[Back in February I wrote an article titled A Small Fix For mysql-agent. Since then we did a few more fixes to the agent and included a Bytes Behind Master (or BBM) chart. For those who can't wait to get their hands on the code, here's the current version: MySQL SNMP agent RPM. For those who'd like to learn about it's capabilities and issues, keep reading.What to Expect From this VersionThe article I quoted above pretty much describes the main differences with the original project, but we went further with the changes while still relying on Masterzen's code for the data collection piece. The first big change is that we transformed Masterzen's code into a Perl module, this way we can easily plug in a new version without having to do massive editing to ours.The 2nd change is that we added the code to calculate how many bytes behind is a slave, which should be cross checked always with seconds behind master to get replication's full picture. When a slave is just a few bytes behind, the script calculates the difference straight out of the SHOW SLAVE STATUS information. If the SQL thread is executing statements that are in a binary log file older than the one being updated by the I/O thread, then the script logs into the master to collect the sizes of the previous binary logs and make an accurate calculation of the delta.For this change we hit another bug in CentOS 5 SNMP agent, by which 64bit counters were being truncated. The solution is to upgrade to CentOS 6 (not anytime soon, but that's another story) or a work around. We decided for the latter and display a variable flagging this value roll over. This is not needed for non-CentOS 5 platforms as far as we know.By now I expect that many of you would have a question in your mind:Why Not Branch / Fork?Why provide an RPM instead of creating a branch/fork in the original project? There are many reasons, but I'll limit myself to a couple. I trust that before you write an enraged comment you'll keep in mind that this is a personal perception, which might be in disagreement with yours.This code is different enough from the original that creating a branch to the original project would be too complicated to maintain. For example: we are using a completely different SNMP protocol and created a module out of the original code. We don't have the resources to follow behind all of Masterzen's possible patches and I wouldn't expect him to adopt my changes.If we would've created a fork (a new project derived from the original), I believe at this point, it would divert the attention from the original project or others like PalominoDB's Nagios plugin.What's Next We plan to continue maintaining this RPM driven by our specific needs and keep sharing the results this way. If at some point we see it fit to drive the merge into another project or create a new fork of an existing one, we'll do it.I will be presenting the project at OSCON next week. If you're going to be around, please come to my talk: Monitoring MySQL through SNMP and we can discuss issues like: why use pass_persist, why not use information schema instead of the current method, why not include your personal MySQL instrumentation pet peeve, I'd be glad to sit down with you and personally chat about it.In the meantime, enjoy, provide feedback and I hope to get to know you at OSCON next Thursday.]]></description>
			<content:encoded><![CDATA[Back in February I wrote an article titled <a href="http://mmatemate.blogspot.com/2011/02/small-fix-for-mysql-agent.html">A Small Fix For mysql-agent</a>. Since then we did a few more fixes to the agent and included a <b>Bytes Behind Master</b> (or BBM) chart. For those who can't wait to get their hands on the code, here's the current version: <a href="https://spideroak.com/share/KBSWK4A/PublicFiles/home/gnarvaja/Downloads/Shared/mysql-agent-1.0rc2_pp-13.noarch.rpm">MySQL SNMP agent RPM</a>. For those who'd like to learn about it's capabilities and issues, keep reading.<br /><br /><h3>What to Expect From this Version</h3><br />The article I quoted above pretty much describes the main differences with the original project, but we went further with the changes while still relying on Masterzen's code for the data collection piece. <br /><br />The first big change is that we transformed Masterzen's code into a Perl module, this way we can easily plug in a new version without having to do massive editing to ours.<br /><br />The 2nd change is that we added the code to calculate how many bytes behind is a slave, which should be cross checked always with seconds behind master to get replication's full picture. When a slave is just a few bytes behind, the script calculates the difference straight out of the <i>SHOW SLAVE STATUS</i> information. If the SQL thread is executing statements that are in a binary log file older than the one being updated by the I/O thread, then the script logs into the master to collect the sizes of the previous binary logs and make an accurate calculation of the delta.<br /><br />For this change we hit another bug in CentOS 5 SNMP agent, by which 64bit counters were being truncated. The solution is to upgrade to CentOS 6 (not anytime soon, but that's another story) or a work around. We decided for the latter and display a variable flagging this value roll over. This is not needed for non-CentOS 5 platforms as far as we know.<br /><br />By now I expect that many of you would have a question in your mind:<br /><br /><h3>Why Not Branch / Fork?</h3>Why provide an RPM instead of creating a branch/fork in the original project? There are many reasons, but I'll limit myself to a couple. I trust that before you write an enraged comment you'll keep in mind that this is a personal perception, which might be in disagreement with yours.<br /><br />This code is different enough from the original that creating a branch to the original project would be too complicated to maintain. For example: we are using a completely different SNMP protocol and created a module out of the original code. We don't have the resources to follow behind all of Masterzen's possible patches and I wouldn't expect him to adopt my changes.<br /><br />If we would've created a fork (a new project derived from the original), I believe at this point, it would divert the attention from the original project or others like <a href="http://palominodb.com/blog/2011/06/09/palominodb-nagios-plugin-mysql">PalominoDB's Nagios plugin</a>.<br /><br /><h3>What's Next </h3>We plan to continue maintaining this RPM driven by our specific needs and keep sharing the results this way. If at some point we see it fit to drive the merge into another project or create a new fork of an existing one, we'll do it.<br /><br />I will be presenting the project at OSCON next week. If you're going to be around, please come to my talk: <a href="http://www.oscon.com/oscon2011/public/schedule/detail/19012">Monitoring MySQL through SNMP</a> and we can discuss issues like: why use <i>pass_persist</i>, why not use <i>information schema</i> instead of the current method, why not include <i>your personal MySQL instrumentation pet peeve</i><i><your instrumentation="" mysql="" peeve="" pet=""></your></i>, I'd be glad to sit down with you and personally chat about it.<br /><br />In the meantime, enjoy, provide feedback and I hope to get to know you at OSCON next Thursday.<div><img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/8007802080401497299-8286103025241222272?l=mmatemate.blogspot.com" alt="" /></div><br/>PlanetMySQL Voting:
	 <a href="http://planet.mysql.com/entry/vote/?entry_id=29435&vote=1&apivote=1">Vote UP</a> /
	 <a href="http://planet.mysql.com/entry/vote/?entry_id=29435&vote=-1&apivote=1">Vote DOWN</a>]]></content:encoded>
			<wfw:commentRss>http://planetmysql.ru/2011/07/22/my-mysql-snmp-agent/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Impressions About MONyog</title>
		<link>http://mmatemate.blogspot.com/2010/03/my-impressions-about-monyog.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=my-impressions-about-monyog</link>
		<comments>http://mmatemate.blogspot.com/2010/03/my-impressions-about-monyog.html#comments</comments>
		<pubDate>Fri, 26 Mar 2010 23:55:00 +0000</pubDate>
		<dc:creator>Gerardo Narvaja</dc:creator>
				<category><![CDATA[dba]]></category>
		<category><![CDATA[diagnosis]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MONyog]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[users conference]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[At work we have been looking for tools to monitor MySQL and at the same time provide as much diagnosis information as possible upfront when an alarm is triggered. After looking around at different options, I decided to test MONyog from Webyog, the makers of the better known SQLyog. Before we go on, the customary disclaimer: This review reflects my own opinion and in no way represents any decision that my current employer may or may not make in regards of this product.First ImpressionYou know what they say about the first impression, and in this where MONyog started with the right foot. Since it is an agent-less system, it only requires to install the RPM or untar the tarball in the server where you're going to run the monitor and launch the daemon to get started. How much faster or simpler can it be? But in order to start monitoring a server you need to do some preparations on it. Create a MONyog user for both the OS and the database. I used the following commands:For the OS user run the following command as root (thank you Tom):groupadd -g 250 monyog &#38;&#38; useradd -c 'MONyog User' -g 250 -G mysql -u 250 monyog &#38;&#38; echo 'your_os_password' &#124; passwd --stdin monyogFor the MySQL user run:GRANT SELECT, RELOAD, PROCESS, SUPER on *.* to 'adm_monyog'@'10.%' IDENTIFIED BY 'your_db_password';Keep in mind that passwords are stored in the clear in the MONyog configuration database, defining a MONyog user helps to minimize security breaches. Although for testing purposes I decided to go with a username/password combination to SSH into the servers, it is possible to use a key which would be my preferred setting in production. The User InterfaceThe system UI is web driven using Ajax and Flash which makes it really thin and portable. I was able to test it without any issues using IE 8 and Firefox in Windows and Linux. Chrome presented some minor challenges but I didn't dig any deeper since I don't consider it stable enough and didn't want to get distracted with what could've been browser specific issues.In order to access MONyog you just point your browser the server where it was installed with an URL equivalent to:http://monyog-test.domain.com:5555 or http://localhost:5555You will always land in the List of Servers tab. At the bottom of this page there is a Register a New Server link that you follow and start adding servers at will. The process is straight forward and at any point you can trace your steps back to make any corrections as needed (see screenshot). Once you enter the server information with the credentials defined in the previous section, you are set. Once I went through the motions, the first limitation became obvious: You have to repeat the process for every server, although there is an option to copy from previously defined servers, it can become a very tedious process.Once you have the servers defined, to navigate into the actual system you need to check which servers you want to review, select the proper screen from a drop down box at the bottom of the screen and hit Go. This method seems straight forward, but at the beginning it is a little bit confusing and it takes some time to get used to it.FeaturesMONyog has plenty of features that make it worth trying if you're looking for a monitoring software for MySQL. Hopefully by now you have it installed and ready to go, so I'll comment from a big picture point of view and let you reach your own conclusions.The first feature that jumps right at me is its architecture, in particular the scripting support. All the variables it picks up from the servers it monitors are abstracted in JavaScript like objects and all the monitors, graphics and screens are based on these scripts. One the plus side, it adds a a lot of flexibility to how you can customize the alerts, monitors, rules and Dashboard display. On the other hand, this flexibility present some management challenges: customize thresholds, alerts and rules by servers or group of servers and backup of customized rules. None of these challenges are a showstopper and I'm sure MONyog will come up with solutions in future releases. Since everything is stored in SQLite databases and the repositories are documented, any SQLite client and some simple scripting is enough to get backups and workaround the limitations.The agent-less architecture requires the definition of users to log into the database and the OS in order to gather the information it needs. The weak point here is that the credentials, including passwords, are stored in the clear in the SQLite databases. A way to secure this is to properly limit the GRANTs for the MySQL users and ssh using a DSA key instead of password. Again, no showstopper for most installations, but it needs some work from Webyog's side to increase the overall system security.During our tests we ran against a bug in the SSH library used by MONyog. I engaged their Technical Support looking forward to evaluate their overall responsiveness. I have to say it was flawless, at no point they treated me in a condescending manner, made the most of the information I provided upfront and never wasted my time with scripted useless diagnostic routines. They had to provide me with a couple of binary builds, which they did in a very reasonably time frame. All in all, a great experience.My ConclusionMONyog doesn't provide any silver bullet or obscure best practice advice. It gathers all the environment variables effectively and presents it in an attractive and easy to read format. It's a closed source commercial software, the architecture is quite open through scripting and with well documented repositories which provides a lot of flexibility to allow for customizations and expansions to fit any installations needs. For installations with over 100 servers it might be more challenging to manage the servers configurations and the clear credentials may not be viable for some organizations. If these 2 issues are not an impediment, I definitively recommend any MySQL DBA to download the binaries and take it for a spin. It might be the solution you were looking for to keep an eye on your set of servers while freeing some time for other tasks.Let me know what do you think and if you plan to be at the MySQL UC, look me up to chat. Maybe we can invite Rohit Nadhani from Webyog to join us.]]></description>
			<content:encoded><![CDATA[<h1></h1>At work we have been looking for tools to monitor MySQL and at the same time provide as much diagnosis information as possible upfront when an alarm is triggered. After looking around at different options, I decided to test <b>MONyog</b> from <a href="http://webyog.com/en/" title="Webyog">Webyog</a>, the makers of the better known <b>SQLyog</b>. Before we go on, the customary disclaimer: <i>This review reflects <b>my own opinion</b> and in no way represents any decision that my current employer may or may not make in regards of this product.</i><br /><h2>First Impression</h2>You know what they say about the first impression, and in this where MONyog started with the right foot. Since it is an agent-less system, it only requires to install the RPM or untar the tarball in the server where you're going to run the monitor and launch the daemon to get started. How much faster or simpler can it be? But in order to start monitoring a server you need to do some preparations on it. Create a MONyog user for both the OS and the database. I used the following commands:<br /><br />For the OS user run the following command as <i>root</i> (thank you Tom):<br /><blockquote>groupadd -g 250 monyog &amp;&amp; useradd -c 'MONyog User' -g 250 -G mysql -u 250 monyog &amp;&amp; echo 'your_os_password' | passwd --stdin monyog</blockquote>For the MySQL user run:<br /><blockquote>GRANT SELECT, RELOAD, PROCESS, SUPER on *.* to 'adm_monyog'@'10.%' IDENTIFIED BY 'your_db_password';</blockquote>Keep in mind that passwords are stored in the clear in the MONyog configuration database, defining a MONyog user helps to minimize security breaches. Although for testing purposes I decided to go with a username/password combination to SSH into the servers, it is possible to use a key which would be my preferred setting in production. <br /><br /><h2>The User Interface</h2>The system UI is web driven using <a href="http://en.wikipedia.org/wiki/Ajax_(programming)" title="Ajax">Ajax</a> and <a href="http://en.wikipedia.org/wiki/Adobe_Flash" title="Flash">Flash</a> which makes it really thin and portable. I was able to test it without any issues using IE 8 and Firefox in Windows and Linux. Chrome presented some minor challenges but I didn't dig any deeper since I don't consider it stable enough and didn't want to get distracted with what could've been browser specific issues.<br /><br />In order to access MONyog you just point your browser the server where it was installed with an URL equivalent to:<br /><blockquote>http://monyog-test.domain.com:5555 <i>or</i> http://localhost:5555</blockquote>You will always land in the <a href="http://webyog.com/images/screenshots_monyog/ListMultipleServers.jpg" title="List of Servers tab">List of Servers tab</a>. At the bottom of this page there is a <b>Register a New Server</b> link that you follow and start adding servers at will. The process is straight forward and at any point you can trace your steps back to make any corrections as needed (see <a href="http://webyog.com/images/screenshots_monyog/NewConnection1.jpg" title="screenshot">screenshot</a>). Once you enter the server information with the credentials defined in the previous section, you are set. Once I went through the motions, the first limitation became obvious: You have to repeat the process for <i>every</i> server, although there is an option to copy from previously defined servers, it can become a very tedious process.<br /><br />Once you have the servers defined, to navigate into the actual system you need to check which servers you want to review, select the proper screen from a drop down box at the bottom of the screen and hit <b>Go</b>. This method seems straight forward, but at the beginning it is a little bit confusing and it takes some time to get used to it.<br /><h2>Features</h2>MONyog has plenty of features that make it worth trying if you're looking for a monitoring software for MySQL. Hopefully by now you have it installed and ready to go, so I'll comment from a big picture point of view and let you reach your own conclusions.<br /><br />The first feature that jumps right at me is its architecture, in particular the scripting support. All the variables it picks up from the servers it monitors are abstracted in JavaScript like objects and all the monitors, graphics and screens are based on these scripts. One the plus side, it adds a a lot of flexibility to how you can customize the alerts, monitors, rules and Dashboard display. On the other hand, this flexibility present some management challenges: customize thresholds, alerts and rules by servers or group of servers and backup of customized rules. None of these challenges are a showstopper and I'm sure MONyog will come up with solutions in future releases. Since everything is stored in SQLite databases and the repositories are documented, any SQLite client and some simple scripting is enough to get backups and workaround the limitations.<br /><br />The agent-less architecture requires the definition of users to log into the database and the OS in order to gather the information it needs. The weak point here is that the credentials, including passwords, are stored in the clear in the SQLite databases. A way to secure this is to properly limit the GRANTs for the MySQL users and <b>ssh</b> using a DSA key instead of password. Again, no showstopper for most installations, but it needs some work from Webyog's side to increase the overall system security.<br /><br />During our tests we ran against a bug in the SSH library used by MONyog. I engaged their Technical Support looking forward to evaluate their overall responsiveness. I have to say it was flawless, at no point they treated me in a condescending manner, made the most of the information I provided upfront and never wasted my time with scripted useless diagnostic routines. They had to provide me with a couple of binary builds, which they did in a very reasonably time frame. All in all, a great experience.<br /><h2>My Conclusion</h2>MONyog doesn't provide any silver bullet or obscure best practice advice. It gathers all the environment variables effectively and presents it in an attractive and easy to read format. It's a closed source commercial software, the architecture is quite open through scripting and with well documented repositories which provides a lot of flexibility to allow for customizations and expansions to fit any installations needs. For installations with over 100 servers it might be more challenging to manage the servers configurations and the clear credentials may not be viable for some organizations. If these 2 issues are not an impediment, I definitively recommend any MySQL DBA to download the binaries and take it for a spin. It might be the solution you were looking for to keep an eye on your set of servers while freeing some time for other tasks.<br /><br />Let me know what do you think and if you plan to be at the MySQL UC, look me up to chat. Maybe we can invite Rohit Nadhani from Webyog to join us.<div><img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/8007802080401497299-6367354404289464068?l=mmatemate.blogspot.com" alt="" /></div><br/>PlanetMySQL Voting:
	 <a href="http://planet.mysql.com/entry/vote/?entry_id=24052&vote=1&apivote=1">Vote UP</a> /
	 <a href="http://planet.mysql.com/entry/vote/?entry_id=24052&vote=-1&apivote=1">Vote DOWN</a>]]></content:encoded>
			<wfw:commentRss>http://planetmysql.ru/2010/03/27/my-impressions-about-monyog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Speaking At The MySQL Users Conference</title>
		<link>http://mmatemate.blogspot.com/2010/03/speaking-at-mysql-users-conference.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=speaking-at-the-mysql-users-conference</link>
		<comments>http://mmatemate.blogspot.com/2010/03/speaking-at-mysql-users-conference.html#comments</comments>
		<pubDate>Tue, 09 Mar 2010 00:10:00 +0000</pubDate>
		<dc:creator>Gerardo Narvaja</dc:creator>
				<category><![CDATA[dba]]></category>
		<category><![CDATA[diagnosis]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[sarsql]]></category>
		<category><![CDATA[status]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[tuning]]></category>
		<category><![CDATA[users conference]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[My proposal has been accepted, yay!I'll be speaking on a topic that I feel passionate about: MySQL Server Diagnostics Beyond Monitoring. MySQL has limitations when it comes to monitoring and diagnosing as it has been widely documented in several blogs.My goal is to share my experience from the last few years and, hopefully, learn from what others have done. If you have a pressing issue, feel free to comment on this blog and I'll do my best to include the case in my talk and/or post a reply if the time allows.I will also be discussing my future plans on sarsql. I've been silent about this utility mostly because I've been implementing it actively at work. I'll post a road map shortly based on my latest experience.I'm excited about meeting many old friends (and most now fellow MySQL alumni) and making new ones. I hope to see you there!]]></description>
			<content:encoded><![CDATA[My proposal has been accepted, yay!<br /><br />I'll be speaking on a topic that I feel passionate about: <a href="http://en.oreilly.com/mysql2010/public/schedule/detail/13000">MySQL Server Diagnostics Beyond Monitoring</a>. MySQL has limitations when it comes to monitoring and diagnosing as it has been widely documented in several blogs.<br /><br />My goal is to share my experience from the last few years and, hopefully, learn from what others have done. If you have a pressing issue, feel free to comment on this blog and I'll do my best to include the case in my talk and/or post a reply if the time allows.<br /><br />I will also be discussing my future plans on <b>sarsql</b>. I've been silent about this utility mostly because I've been implementing it actively at work. I'll post a road map shortly based on my latest experience.<br /><br />I'm excited about meeting many old friends (and most now fellow MySQL alumni) and making new ones. I hope to see you there!<div><img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/8007802080401497299-5422039330161872806?l=mmatemate.blogspot.com" alt="" /></div><br/>PlanetMySQL Voting:
	 <a href="http://planet.mysql.com/entry/vote/?entry_id=23808&vote=1&apivote=1">Vote UP</a> /
	 <a href="http://planet.mysql.com/entry/vote/?entry_id=23808&vote=-1&apivote=1">Vote DOWN</a>]]></content:encoded>
			<wfw:commentRss>http://planetmysql.ru/2010/03/09/speaking-at-the-mysql-users-conference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

