障害通知メール設定について(MySQL監視)

Zabbixを初めて導入するにあたりVM環境で設定の練習をしております。
Template App MySQLを使用してMySQLの監視をできるようになったのですが、障害時のメール通知がうまくいきません。
(他にテスト的に用意した障害メールは届く状態です。(例:CPU負荷率が90%を超えたらメール通知))

下記に設定手順を記入致しました。 設定漏れや間違い等ございましたらご教示頂きたく思います。 よろしくお願い申し上げます。

[サーバ環境]
CentOS 6.5
Zabbix 2.4

[エージェント環境]
CentOS 6.5
Zabbix 2.4
MySQL5.5.40

■グループ設定
1. [設定] - [ホストグループ] をクリック
2.「ホストグループの作成」ボタンを押下
3.以下を設定して「追加」ボタンを押下
グループ名:TEST_GROUP
ホスト:
 agent_server ← 監視しているサーバ
 Template App MySQL  ← 既存テンプレート
 Template Test ← テストで用意したテンプレート

■テンプレート設定
1.[設定] - [テンプレート]をクリック
2.「Template App MySQL」をクリック
3.「ホスト / テンプレート 利用中」に以下を追加

 ・agent_server ← 監視しているサーバ

■トリガー変更
1.[設定] - [ホスト]で監視対象(agent_server)のトリガーをクリック
2.「MySQL is down」をクリック
3.深刻度を「重度の障害」に更新

■確認
1.[監視データ] - [最新データ]をクリック
2.フィルターで絞り込むとMySQLの監視ができている事を確認

■確認2
1.CPUが90%を超えた場合の監視も設定しているのでテスト → 障害メールが通知される
2.監視される側のサーバ(agent_server)でMySQLを止める(service mysqld stop)

 ・[監視データ] - [最新データ]で「MySQL status」を選択してグラフを見ると、値が取れない事を確認
 ・[設定] - [ホスト]で監視対象(agent_server)の「アイテム」をクリック→取得不可になっている事を確認
 ・メール連絡だけが来ない

よろしくお願い致します。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー TNK の写真

まず、メールが送られるかどうかの前に障害としては検知されてい
るのですか?

具体的には「監視データ」->「トリガー」の画面で、テンプレート
として「Template App MySQL」を利用されているのであれば、その
mysqldを停止したサーバの「MySQL is down」が表示されています
か?

そして、mysqldを停止してどの程度待たれましたか?

デフォルトの設定であれば、MySQL status(キー:mysql.ping)の値
を取得するのは、60秒間隔であったと思うので、検知してメールを
送るまで60秒程度かかる場合が考えられます。

また、アクションをどのように設定されているのでしょうか?

デフォルトのアクションの実行条件

 メンテナンスの状態 期間外 メンテナンス
 トリガーの値 = 障害

以外に何か追加されていませんか?

メディアに関しても、トリガーの深刻度を「重度の障害」に更新さ
れたようですので深刻度が「重度の障害」に関してもメールを通知
するように設定されているかも今一度ご確認ください。

あと、CPUが90%を超えた場合にはメールが送られているようですの
で問題ないはずですが、障害が発生したホストやメールの送り先は
MySQLで障害を起こした際と同じなのでしょうか?
同じでないのならば、メールを送る先のユーザーが所属しているユ
ーザーグループに対して、そのホスト、もしくはホストグループへ
のアクセス権限があるかも再度ご確認ください。

ユーザー sato の写真

TNK様

ご教示頂きありがとうございます。

>具体的には「監視データ」->「トリガー」の画面で、テンプレート
>として「Template App MySQL」を利用されているのであれば、その
>mysqldを停止したサーバの「MySQL is down」が表示されています
>か?

こちら表示されておりませんでした。
こちらの何か設定漏れが原因でしょうか。

>そして、mysqldを停止してどの程度待たれましたか?

こちらは5分程待ってみました。

>また、アクションをどのように設定されているのでしょうか?
>デフォルトのアクションの実行条件
> メンテナンスの状態 期間外 メンテナンス
> トリガーの値 = 障害

アクションはデフォルト値をそのまま利用しております。
(特に追加しておりません。)

>メディアに関しても、トリガーの深刻度を「重度の障害」に更新さ
>れたようですので深刻度が「重度の障害」に関してもメールを通知
>するように設定されているかも今一度ご確認ください。

「指定した深刻度のときに使用」のチェックに全部チェックが入っておりました。
「重度の障害」にもチェックが入っておりました。

>あと、CPUが90%を超えた場合にはメールが送られているようですの
>で問題ないはずですが、障害が発生したホストやメールの送り先は
>MySQLで障害を起こした際と同じなのでしょうか?
>同じでないのならば、メールを送る先のユーザーが所属しているユ
>ーザーグループに対して、そのホスト、もしくはホストグループへ
>のアクセス権限があるかも再度ご確認ください。

こちらは同じメール設定を利用している為、問題ないと思っております。

トリガーがうまく動いていない?のが原因みたいな気がするので調べてみようと思います。

ユーザー sato の写真

TNK様

あの後、トリガーの部分を見直してみたのですが、やはり設定の抜け・間違いなどが分かりませんでした。
何かチェックする点や設定漏れがありそうな部分がございましたらご教示頂きたく思います。
よろしくお願い致します。

>>具体的には「監視データ」->「トリガー」の画面で、テンプレート
>>として「Template App MySQL」を利用されているのであれば、その
>>mysqldを停止したサーバの「MySQL is down」が表示されています
>>か?

>こちら表示されておりませんでした。
>こちらの何か設定漏れが原因でしょうか。

見直してみたのですが、設定の待ちがなどが分かりませんでした。
設定漏れがありそうな部分がございましたらご教示頂きたく思います。
よろしくお願い致します。

ユーザー TNK の写真

トリガー「MySQL is down」で利用しているアイテム「MySQL status」の値は取得できていますか?

ユーザー sato の写真

TNK様

コメント頂き、ありがとうございます。

[監視データ] - [最新データ]でフィルターで絞込み、MySQL statusにチェックを入れてグラフ確認したところ、きちんと値が取れておりました。

他にチェックする箇所ありますでしょうか。

ユーザー TNK の写真

値が取れているのであれば、可能ならば、再度mysqldを止めたと
きに値が変化するかを確認してください。

変化しないのであれば、

 ・取ってきている値は最新か?
  「最新のデータ」でチェック時刻が直近の時刻になっているか?
 ・mysqldの停止を行ったホストの値をちゃんと確認しているか?
  2.4を利用されているのならばフィルタリングしているホストが
  正しいか?

などを再度確認してください。

ユーザー sato の写真

TNK様

コメントありがとうございます。
ご教示頂いた点を確認してみました。

・「最新のデータ」でチェック時刻が直近の時刻になっているか?

MySQLが動いている時には、最新の日時で、定期的に更新もされておりました。
止めた際(service mysqld stop)には、文字がグレーに変わり、チェック時刻や値が、更新されなくなりました。
その時の最新の値が「Up (1)」のままなのが問題なのでしょうか?

・mysqldの停止を行ったホストの値をちゃんと確認しているか?
・2.4を利用されているのならばフィルタリングしているホストが正しいか?

こちら監視対象のホスト(Agent)を確認しておりました。

ほかにチェックする点などございますでしょうか?

ユーザー TNK の写真
止めた際に、文字がグレーに変化して、チェック時刻や値が更新さ

れなくなる動作が異常です。

グレーになったということは、値が取得できなくなった状態になっ

ていると思われます。

mysqldを停止しただけなら、値は取得できるが正常な状態「Up (1)」

から「Down (0)」に変化するだけです。

zabbix-agentとか他のものも止めていませんか?

あとは、MySQLのバージョンによる違いがあるのかもしれません。

mysqldを停止した状態で、

# mysqladmin ping
と実行してみて頂けますか?

CentOS 6標準のMySQL 5.1.73パッケージをパッケージを利用してい

れば、即時に以下のような文字列が表示されるはずです。

mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)'
Check that mysqld is running and that the socket: '/var/lib/mysql/mysql.sock' exists!
mysqldが起動しているときは以下のような出力になります。

mysqld is alive
ご確認ください。

ユーザー sato の写真

TNK様

ご教示ありがとうございます。

>mysqldを停止しただけなら、値は取得できるが正常な状態「Up (1)」から「Down (0)」に変化するだけです。
>zabbix-agentとか他のものも止めていませんか?

「Down (0)」になりませんでしたが、zabbix-agentは動いておりました。
他のものも特に止めておりません。

>mysqldを停止した状態で、「mysqladmin ping」と実行してみて頂けますか?

ご教示頂いた内容と同じerrorが表示されました。
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)'
Check that mysqld is running and that the socket: '/var/lib/mysql/mysql.sock' exists!

>mysqldが起動しているときは以下のような出力になります。

パスワードを設定している為以下のエラーが出ました。
error: 'Access denied for user 'root'@'localhost' (using password: NO)'

mysqladmin ping -u root -p で実行し、パスワードを入力すると
「mysqld is alive」と表示されました。

監視される側(Agent)のMySQLの設定が足りないのですね?
それとも監視する側に追加設定が必要なのですかね?

お気が付きの点がございましたらご教示頂きたく思います。
よろしくお願い申し上げます。

ユーザー sato の写真

説明が抜けておりました。

mysqldを起動した状態でmysqladmin ping -u root -p で実行し、パスワードを入力すると「mysqld is alive」と表示されました。

ユーザー KAZ の写真

satoさん

mysqldを停止した状態で、mysqladmin ping -u root -p で実行し、パスワードを入力すると「mysqld is alive」と表示されたのですか?

ユーザー sato の写真

KAZ様

すみません。説明が抜けておりました。
mysqldを起動している状態でmysqladmin ping -u root -p を実行し、パスワードを入力すると「mysqld is alive」と表示されました。

ユーザー KAZ の写真

satoさん

念のため、監視しているMySQLってZabbixが使っているMySQLじゃないですよね?

Zabbixは以下の流れで動きます。

1)アイテムの取得
アイテムの取得 -> history系のテーブルに保存

2)トリガー検知
history系のテーブルを読んでトリガー条件にヒットしたらeventテーブルに保存

3)アクションの実行判定
eventテーブルを読んでアクションの条件にヒットしたらescalationテーブルに実行タイプ等を保存

4)アクションの実行
escalationテーブルを読んでアクションを実行

なので、自分が使っているMySQL止めたら動かなくなります。
その場合、Zabbixが使っているMySQLを止めるとウォッチドックの機能でアラートが上がるはずですが…
ウォッチドックですが、[管理]-[一般設定]を選択し、画面右横のドロップダウンで[その他]を指定、[データベース停止メッセージの送信先グループ]にメールが届きます。

ユーザー sato の写真

KAZ様

ご教示ありがとうございます。

>念のため、監視しているMySQLってZabbixが使っているMySQLじゃないですよね?

監視される側のMySQLはテスト用にインストールしたものになります。
zabbixのDBは作成しましたが、テーブルは何もありません。
色々なサイトの手順を見ていたので、不要なDBだと思います。

>1)アイテムの取得
>アイテムの取得 -> history系のテーブルに保存
>
>2)トリガー検知
>history系のテーブルを読んでトリガー条件にヒットしたらeventテーブルに保存
>
>3)アクションの実行判定
>eventテーブルを読んでアクションの条件にヒットしたらescalationテーブルに実行タイプ等を保存
>
>4)アクションの実行
>escalationテーブルを読んでアクションを実行

テーブルは見ておりませんでしたので、調べるように心がけます。

>その場合、Zabbixが使っているMySQLを止めるとウォッチドックの機能でアラートが上がるはずですが…
>ウォッチドックですが、[管理]-[一般設定]を選択し、画面右横のドロップダウンで[その他]を指定、[データベース停止メッセージの送信先グループ]にメールが届きます。

こちらを確認したところ、メール送信設定はされておりました。
ただ、監視される側のMySQLを止めた時にメールは来なかったので、
監視している側ではなく(監視される側)のMySQLを停止させております。

よろしくお願い致します。

ユーザー TNK の写真

Zabbix側の設定に漏れやあやまりがあれば、そもそもmysqldを起動
している際に他の値も取得できていないはずです。
mysqldを起動している際に、MySQL用のテンプレートの他の値も取
得できているのであれば、設定不足ではないはずです。

mysqldだけを止めた時にZabbixエージェントから値が取得できなく
なることが異常な状態です。

私が先ほど確認した環境とはMySQLのバージョンが異なるため、例
えば、値取得の処理のタイムアウトが発生したりするのかと思い
コマンドの実行を試して頂きましたが、特に時間がかかったという
ことはご返答にはありませんでしたし、私自身、別途MySQL 5.5の
環境を利用して確認してみても、mysqldを止めればDown (0)になり
ますし、mysqldを起動すればUp (1)になっています。

もし、mysqladminコマンドの応答が返ってくるまでにデフォルトだ
と3秒以上の時間がかかっているのであれば、Zabbixのタイムアウ
トの時間を調整してみてください。
zabbix_agentd.confとzabbix_server.conf内のTimeoutの値です。

改めて気になったのは、「service mysqld stop」で止められてい
るという点です。
CentOS 6の標準のパッケージでMySQL 5.5はありませんし、MySQLの
本家からパッケージを取得していれば、サービス名は「mysql」と
なっていたと思いますので、どこのパッケージを利用されているの
かをお教えください。
ソースから導入されたのであれば、どのような手順でインストール
されたのかをお教えください。

他にも、値が取得できなくなった原因が出力されているかもしれま
せんので、Zabbixサーバや監視対象のZabbixエージェントのログの
確認もお願いいたします。

ユーザー sato の写真

TNK様

ご教示頂きありがとうございます。

>もし、mysqladminコマンドの応答が返ってくるまでにデフォルトだ
>と3秒以上の時間がかかっているのであれば、Zabbixのタイムアウ
>トの時間を調整してみてください。
>zabbix_agentd.confとzabbix_server.conf内のTimeoutの値です。

こちらは直ぐに応答がありました。遅くなりましたら調整してみたいと思います。

>CentOS 6の標準のパッケージでMySQL 5.5はありませんし、MySQLの
>本家からパッケージを取得していれば、サービス名は「mysql」と
>なっていたと思いますので、どこのパッケージを利用されているの
>かをお教えください。

下記でインストールしました。
yum --enablerepo=remi,eplp install mysql-server

その後、文字コードの設定とrootのパスワード設定、自動起動の設定を行いました。

mysqlのバージョンを調べたところ以下になりました。(mysql --version)
mysql Ver 14.14 Distrib 5.5.40, for Linux (x86_64) using readline 5.1

>他にも、値が取得できなくなった原因が出力されているかもしれま
>せんので、Zabbixサーバや監視対象のZabbixエージェントのログの
>確認もお願いいたします。

ログの確認をせず、設定だけ色々試していただけでしたので、ログの確認もしてみます。

お気が付きの点がございましたら、ご教示頂きたく思います。
よろしくお願い致します。

ユーザー KAZ の写真

satoさん

これじゃダメですか?

3 取得不可のアイテムに関する通知の受信
https://www.zabbix.com/documentation/2.2/jp/manual/config/notifications/...

ユーザー sato の写真

KAZ様

ご教示ありがとうございます。

こちらの設定をしてMySQLを止めたところ、取得不可のアイテムとして検知しました。
メールも届きました。

こちらも便利ですが、MySQLの検知ができるともっと良いので、
監視する側、監視される側の両方ともVMですので、もう一度環境を
作り直してみた方が良いですかね。。。

ユーザー TNK の写真

最近はわかりませんが、様々なリポジトリを混在して利用した場合
に、各パッケージの前提としている設定が異なっていて正常に稼働
できない場合がありましたので、色々なリポジトリを明確なポリシー
もなく混在させて利用することはお勧めしません。

例えば、

yum --enablerepo=remi,eplp install mysql-server

とインストールされたようですが、mysql-serverのパッケージが、
remiとeplpのどちらからインストールされたか明確に認識されてい
ますか?

eplpというリポジトリは存じ上げませんが、MySQLを利用されるの
であれば、MySQL本家のパッケージを利用された方が良いと思いま
す。
※ CentOS標準のパッケージよりも新しいバージョンを利用する場合
http://dev.mysql.com/downloads/mysql/5.5.html#downloads

あと、個人的にはremiよりepelというリポジトリの方が、Fedra
Projectで運営していたはずですので、よりRed Hat系での利用は適
していると思います。
https://fedoraproject.org/wiki/EPEL/ja

これまでも書かせて頂いた通り、CentOS 6の標準パッケージのみの
構成やMySQLのみMySQLの本家からダウンロードした環境であれば、
Zabbixの標準のテンプレートで監視できています。
それで対応できないのであれば、その環境に合わせてテンプレート
を作成して監視を行ってください。

例えば、mysqldが起動していないかどうかを判定する他の方法とし
て、mysqldのプロセス数を監視しておき、そのプロセス数が0にな
ったらmysqldが起動していないとして障害とみなすというような監
視設定も可能です。

どのリポジトリを利用するのか、そのリポジトリのパッケージを利
用した場合にどのような動作になるのかを調査して、その環境に合
わせた監視設定をおこなってください。

ユーザー sato の写真

TNK様

ご教示ありがとうございます。
VM環境でテスト的に環境構築していたので、もう一度環境構築してみます。

>とインストールされたようですが、mysql-serverのパッケージが、
>remiとeplpのどちらからインストールされたか明確に認識されてい
>ますか?

理解が乏しく、どこかのサイトでみた手順をそのまま行っておりました。
MySQL本家のパッケージをインストールして、再度設定してみたいと思います。

環境を整え直して再度確認してみます。

ユーザー TNK の写真

あの後、いくつかの組み合わせで確認していたのですが、

 /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

内のUserParameterを修正した方が、より多くの環境で動くと思わ
れます。
というのも、環境によっては、Zabbixサーバ側のログに出ていると
思いますが、mysqladminコマンドの標準エラー出力に含まれるであ
ろう文字列もZabbixエージェントから受け取ってしまって、数値で
はないため、アイテムの取得不可と判定しているようです。

そこで対処方法として具体的には、

UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping 2>/dev/null | grep -c alive

と標準エラー出力を破棄してしまったほうが良さそうです。

ご確認ください。

ユーザー sato の写真

TNK様

お世話になっております。
ご教示頂きありがとうございます。

本日VMware Fusion(4.1.4)にCentOS6.5から入れ直しました。
MySQLもL本家のパッケージ(5.1.73)を入れてみました。
(監視側と監視される側、両方の環境を作り直しました。)

[監視データ] - [最新データ]でフィルタで絞り込んで確認したのですが、
状況は同じで、最新の値が「Up (1)」のままグレーアウトになってしまいました。
(チェック時刻の更新も止まります。)

また、ご教示頂きました「/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf」の
修正を行って試したのですが、結果は同じになってしまいました。

ご教示頂いた点を反映させてみたのですが、なかなかうまくいきません。
VMware Fusion(4.1.4)のバージョンが古いなどの問題があったりするのでしょうか。

ユーザー TNK の写真

Zabbixサーバのログを確認してみてください。

ユーザー sato の写真

TNK様

ありがとうございます。

ログを見ながら調査してみます。

ユーザー sato の写真

TNK様、KAZ様

お世話になっております。 satoです。

監視される側のMySQLを止めた時の現象でございますが、
監視する側のエラーログを見ていると、自分のDBに値を保存する事に
失敗しているように思われました。
(ログの読み方間違っていたらすみません。)
.
.
テーブルやフィールドが分からなかったので、調査をやめて、もう一度
VM上で再構築する事に致しました。
.
.
今までは2.4.2のZABBIXを使用していたのですが、2.2.7のバージョンを使用して
OSのインストールからやり直しました。
(OSやMySQLのバージョン、設定方法は変えずに再構築しました。)
.
.
監視される側のMySQLをservice mysqld stopで停止したところ、監視する側のサーバで
「Down (0)」となり、障害メールも送信されるようになりました。(ブラウザのZABBIXで確認)
.
.
根本的な解決をご報告できず申し訳ございません。
やりたい事は、どうにか設定できました。

ユーザー TNK の写真

(ログの読み方間違っていたらすみません。)

ご自身の判断に自信が無いのであれば、Zabbix関連のログであれば
ここで聞いていただいて構いません。

知識や経験を積み重ねて頂いて、是非Zabbixを使いこなしてくださ
い。

ユーザー sato の写真

TNK様

お世話になっております。satoです。
ご確認して頂き、ありがとうございます。
監視される側のMySQLを止めた時(service mysqld stop)に出るログは以下になります。

■環境
CentOS 6.5
MySQL 5.1.73
ZABBIX 2.4.2

----------------------------
監視する側の/var/log/zabbix/zabbix_server.logに出力されたログになります。(dev2は監視される側のhostnameです。)
----------------------------
1878:20141118:102533.666 item "dev2:mysql.status[Com_update]" became not supported: Received value [ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)] is not suitable for value type [Numeric (float)]
1878:20141118:102533.666 item "dev2:mysql.status[Questions]" became not supported: Received value [ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)] is not suitable for value type [Numeric (float)]
1878:20141118:102533.666 item "dev2:mysql.status[Slow_queries]" became not supported: Received value [ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)] is not suitable for value type [Numeric (unsigned)] and data type [Decimal]
1871:20141118:102538.671 item "dev2:mysql.status[Uptime]" became not supported: Received value [ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)] is not suitable for value type [Numeric (unsigned)] and data type [Decimal]
1878:20141118:102623.714 item "dev2:mysql.ping" became not supported: Received value [mysqladmin: connect to server at 'localhost' failederror: 'Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)'Check that mysqld is running and that the socket: '/var/lib/mysql/mysql.sock' exists!] is not suitable for value type [Numeric (unsigned)] and data type [Decimal]
1878:20141118:102623.714 item "dev2:mysql.status[Bytes_received]" became not supported: Received value [ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)] is not suitable for value type [Numeric (float)]
1871:20141118:102628.718 item "dev2:mysql.status[Bytes_sent]" became not supported: Received value [ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)] is not suitable for value type [Numeric (float)]
1871:20141118:102628.718 item "dev2:mysql.status[Com_begin]" became not supported: Received value [ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)] is not suitable for value type [Numeric (float)]
1871:20141118:102628.718 item "dev2:mysql.status[Com_commit]" became not supported: Received value [ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)] is not suitable for value type [Numeric (float)]
1871:20141118:102628.718 item "dev2:mysql.status[Com_delete]" became not supported: Received value [ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)] is not suitable for value type [Numeric (float)]
1871:20141118:102628.719 item "dev2:mysql.status[Com_insert]" became not supported: Received value [ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)] is not suitable for value type [Numeric (float)]
1871:20141118:102633.725 item "dev2:mysql.status[Com_rollback]" became not supported: Received value [ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)] is not suitable for value type [Numeric (float)]
1871:20141118:102633.725 item "dev2:mysql.status[Com_select]" became not supported: Received value [ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)] is not suitable for value type [Numeric (float)]

ログを見て、監視する側のMySQLのフィールドの型が違うので監視データをうまく保存できないのかと推測しました。
対処法が分からなかったので、試しにOSから再インストールしてZABBIXのバージョン(2.2)も下げて環境を準備しなおして確認したところうまく動作した次第でございます。

ユーザー TNK の写真

ログの、

1878:20141118:102623.714 item "dev2:mysql.ping" became not supported: Received value [mysqladmin: connect to server at 'localhost' failederror: 'Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)'Check that mysqld is running and that the socket: '/var/lib/mysql/mysql.sock' exists!] is not suitable for value type [Numeric (unsigned)] and data type [Decimal]

が問題の箇所です。

それ以外のmysql.status[]の値に関しては、トリガーを設定してい
ないアイテムですので、エラーとなって取得不可になるだけで、特
に対処は必要ないでしょう。

しかし、mysql.pingに関してこのログが出ているということは、私
が書いた改善方法を設定していない状態だと思われます。
私が書いた標準エラー出力を破棄してしまう設定にしていれば、こ
こで「0」という値が受け取れるはずです。
ここで文字列が返却されてしまっているので、ご認識されている通
り、アイテムの定義として数値(整数)であるのに文字列は保存でき
ないとしてエラーとなり、アイテムの状態としては「取得不可」に
なっています。

userparameter_mysql.confを変更後、Zabbixエージェントの再起動
は行われましたか?

CentOS標準のパッケージのみの組み合わせでは解決されたかもしれ
ませんが、他のMySQL本家やremiのMySQLのパッケージを利用した場
合には、標準エラー出力の破棄を追加した設定が必要になるかもし
れませんので、覚えておいてください。

ユーザー sato の写真

TNK様

お世話になってあります。satoです。
ご指摘頂いた通りuserparameter_mysql.confの設定がきちんと反映できていなかったようなので、再度環境構築し直してみました。
環境は一番最初にご質問させて頂いた際の環境と同じにして再構築してみました。

■環境
CentOS 6.5
MySQL 5.5.40
ZABBIX 2.4.2

この環境で、色々ご教示頂いた点を気を付けながら設定したところ、MySQLの障害もきちんと取得でき、
止めた際には「Down (0)」となり、メールも送信できました。

自分の設定ミスもあり、何度も質問してしまい申し訳ございませんでした。
大変勉強になり、助かりました。 ありがとうございました。