Mysql監視
Mysql監視についてお聞きしたいです。
エージェントの/zabbix_agentd.confに以下の行を追加しました。
UserParameter=mysql.uptime,mysqladmin -uroot status|cut -f2 -d":"|cut -f1 -d"T"
UserParameter=mysql.threads,mysqladmin -uroot status|cut -f3 -d":"|cut -f1 -d"Q"
UserParameter=mysql.questions,mysqladmin -uroot status|cut -f4 -d":"|cut -f1 -d"S"
UserParameter=mysql.slowqueries,mysqladmin -uroot status|cut -f5 -d":"|cut -f1 -d"O"
UserParameter=mysql.qps,mysqladmin -uroot status|cut -f9 -d":"
UserParameter=mysql.version,mysql -V
エージェントを再起動すると以下のエラー出ました。
failed to add UserParameter "mysql.ping": duplicate key
UserParameter "mysql.uptime": duplicate keyなど
ご解答をお願いたします。
TNK - 投稿数: 4769
エラーメッセージの通り、同じキーの項目が複数登録されている
のでしょう。
zabbix_agentd.confからIncludeで読み込みディレクトリを指定
していて、そのディレクトリ内に同じキー(mysql.pingなど)の
UserParameterを設定しているconfファイルがあったりしません
か?
利用されたいUserParameterの設定だけ有効になるように、
コメントアウトするなどしてみてください。
pcsupportya - 投稿数: 20
ご回答ありがとうございます。
新たなエラーが出ました。
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!
ご回答お願いいたします。
KAZ - 投稿数: 1085
pcsupportyaさん
英文は読まれましたか?
MySQLは起動していますか?
mysqladmin: connect to server at 'localhost' failed
mysqladmin:localhostからサーバ(※1)に接続失敗
error: 'Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)'
エラー'ソケット'/var/lib/mysql/mysql.sock' (2)'を通してローカルのMySQLサーバにコネクトできない
Check that mysqld is running and that the socket: '/var/lib/mysql/mysql.sock' exists!
MySQLデーモン動いているか、または、ソケット:/var/lib/mysql/mysql.sockが存在するか確認して!
※1:MySQLのアカウントへ権限を与える時にしていした接続許可ホスト
nago - 投稿数: 1
pcsupportyaさん
※投稿から時間が経過しておりますので自己解決なさっているかもしれませんが。。
スレッドにありますコンフィグ設定の行はzabbix_agentd.confの最下行にある、
デフォルトでコメントアウトされているUserParameterの、コメントを外したもののように見受けられます。
このコンフィグ行はあくまでサンプルであり、
「mysqlのrootにパスワードが設定されていない」状態を前提としているコンフィグ文です。
通常はrootパスワードは設定するべきものですから
(違っていたら別要因が考えられますが)
この構文だとmysqlが起動していようがどうあろうが、データの取得には失敗するはずです。
エラーメッセージからはMysqlが正常に起動していないようにも見受けられますが、
その対応をした後、以下のように適切にコンフィグ作成とアイテムの作成を行う必要があります。
①mysqladminコマンドを対象のサーバで発行し、適切なデータが得られることを確認します。
ex:
$ mysqladmin -uroot -ppassword ping |grep alive|wc -l
1
アクティブであるため1が得られました。
②次に上記コマンドのroot,password部分を$1,$2に置き換えます
mysqladmin -u$1 -p$2 ping|grep alive|wc -l
以下のようにコンフィグ文を作成します。
UserParameter=mysql.ping[*],mysqladmin -u$1 -p$2 ping|grep alive|wc -l
その他のコンフィグ行も同じように書き換えます
UserParameter=mysql.uptime[*],mysqladmin -u$1 -p$2 status|cut -f2 -d":"|cut -f1 -d"T"
UserParameter=mysql.threads[*],mysqladmin -u$1 -p$2 status|cut -f3 -d":"|cut -f1 -d"Q"
UserParameter=mysql.questions[*],mysqladmin -u$1 -p$2 status|cut -f4 -d":"|cut -f1 -d"S"
UserParameter=mysql.slowqueries[*],mysqladmin -u$1 -p$2 status|cut -f5 -d":"|cut -f1 -d"O"
UserParameter=mysql.qps[*],mysqladmin -u$1 -p$2 status|cut -f9 -d":"
UserParameter=mysql.version,mysql -V
[*]→アイテムのKeyに任意の引数を指定できることを示す
$1=第一引数
$2=第二引数
③agentの再起動
④zabbixfrontend側でアイテムの作成
キーの項目はコンフィグのUserParameterに合わせて以下のように設定、
mysql.ping[root,root's password]
⑤アイテムをホストへ登録
お試しください。