最近の気になるRSS本Blogについて「Linux」カテゴリーアーカイブzabbixがmysqlのせいでエラーを吐いて起動しなくなったのでその復旧メモコメントを残すzabbixがエラーを吐いて、起動しなくなった。ZabbixにWebアクセスすると、以下のようなメッセージが出ている。確認するとmysqldは停止していますがサブシテムがロックされていますと表示されている・・・・どうやらmysqldが正常な手順ではなく、異常終了してしまった状態のようだ。page.どうやらテーブルのインデックスが壊れているようなメッセージを発見。1で、rebootコマンドで再起動してみた。実行中...とりあえず、Mysqlの起動はしている模様。この状態でZabbixにWebアクセスすると、とりあえず起動はするが、あちこちにUpdateに失敗した旨がされている・・・・たぶんリカバリモードで起動しているので、DatabaseがReadOnlyモードになっているせいでしょう。OKやはりzabbix.history_uintが壊れていると出ている。~]#InnoDBなのでできないみたい。sec)mysql>状況はいっしょですね。ついでに該当テーブルのインデックスの状況を確認して見ます。sec)ここから復旧してみます。該当テーブルのバックアップを取得します。単純に出力してもよいのだけども、ダンプファイルが巨大になりすぎるので圧縮して出力させます。~]#ダンプ出力が完了したら、壊れたテーブルを削除します。quitByeリカバリモードから通常モードで復帰させてmysqldを起動します。]正常に起動したことを確認したら、先ほど取ったダンプからリストアします。~]#リストアが終わったら、壊れたテーブルが正常に戻っているかを確認します。sec)mysql>ちゃんとインデックスも戻っていますねサーバを再起動して、Zabbixが使用できるか確認します。これでなんとか修復できましたが、なぜ壊れたのかは謎。mysqldのチューニングが必要なのかもしれない。256MBに変更して様子見中。riskssymbolic-links=0character-set-server=utf8innodb_buffer_pool_size=256Minnodb_log_file_size=32Minnodb_log_files_in_group=2innodb_flush_method=O_DIRECT#innodb_force_recovery=1Zabbixサーバのメモリを2GBとか4GBぐらい割り当てるんだったら、こんな設定例みつけたので故実参考にします。奈酢美WordPressメモコメントを残す突然Wordpressの新しい記事が見えなくなってしまい、とりあえず再起動したら、すべての記事が見えなくなってしまったので、いろいろ調べてみたら、SQLの一部テーブルが壊れてしまったらしい。原因に気づいたのは、試行錯誤の前にmysqlのDBバックアップをしようとしたら、テーブルが壊れている旨のメッセージが出たため。sec)これで直った。comment_approved=’0′;データベース名がwordpressの場合、上記のように入力します。WorkbanchからZabbix用MySQLにアクセスする。Workbench(http://www-jp.mysql.com/products/workbench/)を試してみたが、MySQLの接続はデフォルトでローカルのみなので、許可が必要sqlコマンドで以下のように実行すれば、外部の特定ホストから接続できるようです。option;また、全ホストからの接続を可能とする場合は、以下のようにすればいいようです。sec)これで接続できました。「監視データ」->「最新データ」->「グラフ」or「ヒストリ」から「値」を選択すると「プレーンテキスト」ボタンでTSV形式で取得できるようですが、なぜか1000個ぐらいまでしか取得できませんでした。(1分ごとの取得するアイテムだと16.6時間分しか取得できない)しょうがないので、mysqlのDBにから直接情報w取得出来ないかを調べてみました。API使うのが正当なんだろうけど、現状うまく使いこなせません。(ここにSQLを入力。(ここにSQLを入力。最後に;)直接SQL分を指定して実行するには、以下のように指定します。outcsv.sql`"ファイルにtsv出力するには、単純に標準出力をリダイレクトすればよいようです。/tmp/test2.tsvファイルにcsv出力するには、以下のようにtabを’,’に変換して出力します。2.2.1のDBから情報を取得してみます。バージョンが上がった時に対応できなくなる可能性が高いのが残念。あと、mysqlの設定が標準だと検索に時間がかかります。取り込む方法を検討してみるコメントを残す参考になりそうな情報をかき集めてみた。Linux用wmicの出力結果は以下のようなもので、そのままでは取り込みずらい。「cactiEZでWindowsOSのWMI値を直接取得してグラフを作成する手順」http://pnpk.net/cms/?p=3861さんのページのwmi.phpを使うと、以下のフォーマットに変更できるとのこと。0DeviceID:CFreeSpace:36509941760Size:52322889728このフォーマットだと、スクリプトで処理しやすい。このような形式でのサンプルを探してみると、このような例が見つかった。/proc/meminfoの実行例がこんなフォーマットなので、ほとんど同じですね。WorkbanchからZabbix用MySQLにアクセスする。奈酢美LinuxからWMI経由でWindowsの情報を取得/プログラム実行してみるコメントを残すLinuxから、WMI経由でWindowsの情報を取得できるツールがあったので試してみた。これと、ZABBIXとうまく連携できれば、(SNMP経由でない)本当のエージェントレスができそう。autoconfをインストールして、再度makeします。makemakeには結構時間かかります。install前に動作確認します。wmi-1.3.14]#試しに、情報を取得してみます。Professional|C:\WINDOWS|\Device\Harddisk0\Partition1|11744618|191886458|212378|25841664|1020|32411648|78991360|36548608|8|25841664|11484|4648|65852|6256|70172|45978|111959645|0|(null)|(null)|9|822812500|74792960|5.1.2600|29843456|1082336|259218725動作確認したら、インストールします。/bin/wmicRPMもあるっぽい(けど、まだ試していません)http://www.harumaki.net/2012/05/09/centos%E3%81%ABwmi%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%82%92%E5%85%A5%E3%82%8C%E3%81%A6%E3%81%BF%E3%82%8B/ちなみに、ファイルの情報を取得する場合は以下の様にします。\\\に変換しないと、エラーになります(\\ではダメ)。それと、ファイルパスに2バイト文字を含むような場合も失敗しますが、こちらはまだ未解決。フォルダ単位で各ファイル全部をWMIで取得して後からGrepで文字列抽出するのならいけましたが、とりあえずこれで。Vista,2008以降だとセキュリティーがきびしくなっているので、UACを無効にするか、ローカルのAdministratorもしくは、管理者権限を持ったドメインユーザで接続する必要があるようです。UACはGUIで設定するか、レジストリを変更して再起動します。DWORD:0123HKLM¥SOFTWARE¥Microsoft¥Windows¥CurrentVersion¥Policies¥System\EnableLUADWORD:0UACを無効にできるのであれば一番早いですが、そのままだと管理者権限を持ったローカルユーザで接続しても接続を拒否られる場合は、以下のレジストリを作成・変更してみてください。再起動は不要らしいです。DWORD:1123HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicyDWORD:1その他接続できない場合は次の点を確認してみてください。(Administratorsグループのユーザであれば、Firewall以外はデフォルトでは大丈夫なはずですが・・・)・Firewallの設定WindowsFireWallが有効の場合は以下の項目を有効にします。・[既定のプロパティ]タブを選択して,[このコンピュータ上で分散COMを有効にする]がチェックされているか確認する。・[既定のプロパティ]タブを選択して,[このコンピュータ上で分散COMを有効にする]がチェックされているか確認する。・[COMセキュリティ]タブを選択して、[制限の編集]から接続ユーザでアクセス許可されているかを確認する。・WMIの名前空間のセキュリティーの確認wmimgmt.mscを起動し、WMIコントロールでプロパティーを表示し、セキュリティタブのRoot->CIMV2のセキュリティーを確認します。接続ユーザでアクセス許可されていることを確認します。してもうまくいかない場合でUACのセキュリティ機能が有効の場合は、ユーザー自身に対して設定するか、UsersグループとAdministratorsグループ以外のユーザーが属するグループに対して設定してみてください。一緒に、winexeというツールもインストールされます。これは、Linux側のコマンドラインからWindows上でプログラムを実行するものです。基本的には、以下のコマンド実行できます。:ただ、実行時以下のようにエラーが出ることがあります。0x00000424その場合は、対象のWindows側で、以下のコマンドを実行しておけばよいようです。installすれば治るようです。NT_STATUS(0x00000424)実際やってみたら、ちゃんと自動でWindows側にサービスが登録され、リモート実行できるようになりました。WorkbanchからZabbix用MySQLにアクセスする。Linuxこれだけで、以下の項目は自動認識します。Trap情報も取得できます(ZFSのRAID異常メッセージも通知されます)。monitoringhttps://www.zabbix.com/forum/showthread.php?p=141209こちらはそのうち試す予定です。奈酢美Windows7で長時間稼働させていると、ファイル共有の動作が不安定になる場合の対策メモコメントを残す以下のシステムイベントログが出てしまった時の対策うちの環境だと、1週間程度を過ぎるとファイル共有が不安定になってきます。EDCBが全力稼働のせいかもしれんけど。プールから割り当てることができませんでした。レジストリエディタ(regedit)でHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Lanmanserver\Parametersに移動し、以下を設定する。項目が存在しない場合があるので、その場合は、DWORD値(32ビット)を作成の上で設定する。Size:3(10進数)にする。1:ローカルアプリケーション用にサーバを最適化、2:ローカルとリモートに配分、3:ネットワークの処理用に最適化。IRPStackSize:50(10進数)にする。デフォルトは、10進数の15。お奨めは10進数の20もしくは50。33~38はエラー可能性ありとのこと。MaxMpxCt:255(10進数)とする。サーバーをサポートしている要求の最大数。MaxWorkItems:1024(10進数)とする。MaxMpxCtの値の4倍にする。WorkbanchからZabbix用MySQLにアクセスする。files\linkshellextension\LSEConfig.exe”のアクティブ化コンテキストの生成に失敗しました。見つかりませんでした。(x64)」を要求しているらしい。Runtimeとかが入っていれば、それが互換性を持っているのだけど、厳密に必要なDLLを要求している模様。Runtimeをいれれば大丈夫らしいです。Runtimeとは別です。extension自身は動作するので、エラーイベントログを出さないためだけの設定かもしれない。WorkbanchからZabbix用MySQLにアクセスする。奈酢美ZabbixAgent2.2.1のWindows7(x64)へのインストールコメントを残すインストーラ付のZabbixAgent2.2.1を見つけたのでメモx32,x64両方が用意されています。「zabbix_agent-2.2.1_x64.msi」を使います。うちの場合Zabbixサーバへの登録名は、マシン名ではなくIPアドレスのため、そのままではアクティブチェックがうまくいかないので、以下の部分を修正して対応。(Zabbixサーバアドレス192.168.29.153)(Agentインストールサーバ192.168.29.81(N54L)の場合)。