So-net無料ブログ作成

Samba4 nmbdクラッシュ(FreeBSD 10.3R、2017/04/18) [ports]

Samba4を、samba42-4.2.14からsamba42-4.2.14_1にアップデートしたら、nmbdがクラッシュするようになってしまいました。log.nmbdにSignal 11 in 4.2.14 sambaとログが残り、どうやっても起動しません。
アップデートが直接的原因なのは明らかなので、対象パッケージを再インストールしてみましたが変化せず。つい先日まで動いていたとは言え、コンフィグに何か問題を抱えているのではないかと思い、testparmを実行してもやはり問題なし。portsから、converters/libiconvにcp932対応パッチを当てて再インストールして変化なし。
そして、頼みの綱であるWebを探しても同様事例の報告なし。

Sambaはログレベルという設定があり、数字を増やせば増やすほどデバッグメッセージに近いログが残るようになります。とりあえず0 → 3 → 5 → 8と段階的に上げてみましたが、特に有益はログは残りません。理由もなしに突然Signal 11でクラッシュしています。

んー困りましたね。ここまでやってダメなら半ばお手上げです。
次に私の取る手としては、バックアップコンフィグを残し、現行コンフィグから怪しい部分を順番に消していて行くことです。もしクラッシュのトリガとなっている設定があれば、それを消した時点で正常起動にするようになるはずです。

...結局、コンフィグを全部消すことになり、最終的に空っぽのコンフィグになりましたがクラッシュしました。

というわけで設定の問題ではありませんでした。
バイナリやライブラリとの連携失敗など、完全にどうにもならない領域での事象であることがはっきりとしました。

こうなれば取るべき道は一つ。
root@mybsd:/usr/local/etc # pkg search samba
p5-Samba-LDAP-0.05_2           Manage a Samba PDC with an LDAP Backend
p5-Samba-SIDhelper-0.0.0_3     Create SIDs based on G/UIDs
samba-nsupdate-9.8.6_1         nsupdate utility with GSS-TSIG support
samba42-4.2.14_1               Free SMB/CIFS and AD/DC server and client for Unix
samba43-4.3.13_2               Free SMB/CIFS and AD/DC server and client for Unix
samba44-4.4.13                 Free SMB/CIFS and AD/DC server and client for Unix
samba45-4.5.8                  Free SMB/CIFS and AD/DC server and client for Unix
samba46-4.6.2                  Free SMB/CIFS and AD/DC server and client for Unix
環境を入れ替えることです。Samba4.2には見切りをつけることにしました。
portsには開発バージョンが登録されていることも多く、数字上の最新版がベストな選択肢とは限りません。私は安定版を使いたいのです。
ざっと調べた限り、4.5系も4.6系も安定版のようですね。Samba.org公式ページでも4.6.2が安定版との記載があります。コンフィグ構造も基本的に使い回せるようですし、とりあえず入れ替えてみました。

はい、無事起動しました。WindowsからのCIFSアクセスも問題ないようです。次は4.6で導入された設定(チューニング系統)を弄ってみたいですね。
タグ:samba
nice!(0)  コメント(0) 

zabbix導入にあたりメモ その5 (FreeBSD 10.3R、2017/02/14) [ports]

zabbixでCISCOルータを監視するために64ビットカウンタを使用したい訳ですが、標準ローレベルディスカバリではダメなことが分かりました。しかし、ここでかつて恩師がおっしゃったことを思い出しました。
自分がやろうとしていること、やりたいことは、世界中の誰かが似たようなことをやっているもんだ

と。そうなんですよね。CISCOみたいなデファクトスタンダードとして世界中に出回っているネットワーク機器について、私と同様の悩みを持つ人がいない訳ないんですよ。だから絶対どこかに"解決済みの方法"が転がっているはずなんです。
"zabbix cisco"でググってみたら、出てきました。zabbixのページ。どうやらテンプレート集のようです。ここで転がっているテンプレートは、おそらく今動かしているzabbixに取り込むことができるはずです。

テンプレートとして必要なのはxmlファイルなので、ダウンロード&展開後、zabbixのWeb画面上で、設定→テンプレート→インポート(デフォルトのチェックボックスのまま)で取り込むことができました。
私が取り込んだのは下記2つのテンプレートです。

Generic Cisco Template for Device model, Serial Number, and other items
https://share.zabbix.com/network_devices/cisco/generic-cisco-template-for-device-model-serial-number-and-other-items

Cisco interfaces
https://share.zabbix.com/network_devices/cisco-interfaces

あとは、CISCOルータに適用しているTemplate SNMP Deviceテンプレートを解除し、Flexible Cisco DevMonと、ZBX-CISCO-INTERFACESを再適用します。そこまでできれば放置するだけ。
試しにトラフィックを流してみました。うん、600Mbps以上をきちんと計算できているようですしおそらく問題ないでしょう。
20170213_zabbix_01.jpg

タグ:ZABBIX
nice!(0)  コメント(0) 

zabbix導入にあたりメモ その4 (FreeBSD 10.3R、2017/02/12) [ports]

zabbixがローレベルディスカバリで拾い上げるインタフェース関連のMIBは32ビットカウンタのため、通信量によっては桁あふれを起こしグラフ表示が正常とならないことが分かりました。しかし今使っているzabbixは2.4系であり、もしかすると最新版ではなんらかの改善が行われているかもしれません。
思い立ったが吉日、zabbixの最新版に入れ替えてみることにしました。本日時点の最新版は3.2系ですね。Long Term Support版でありませんが、商用利用ではないのでとりあえず使えれば十分です。

インストールはpkgからサクサクと行けます。基本的には2.4系と変わりません。手動で対応が必要だったのは、次の2つです。*.conf系の設定ファイルの編集(これは2.4系でも一緒)と、MySQLのデータベース関連です。

MySQL用のデータベーステーブルは、pkgインストール後に表示されるスクリプトを使うことで簡単に作成することができます。
MySQL:
shell> mysql -u<username> -p<password>
mysql> create database zabbix character set utf8;
mysql> quit;
shell> mysql -u<username> -p<password> zabbix < database/mysql/schema.sql
shell> mysql -u<username> -p<password> zabbix < database/mysql/images.sql
shell> mysql -u<username> -p<password> zabbix < database/mysql/data.sql

ただ、この状態だと、httpで初回アクセスした際に表示されるセットアップ画面において、MySQLデータベースへの接続が失敗します。失敗する原因を探っていくと、どうやらデータベースへのアクセス権限で引っかかっているようで(私のやり方がマズかったのかも)、アクセスするユーザにGRANTで権限を付与することで問題なく進むようになりました。
20170212_zabbix_01.jpg
20170212_zabbix_02.jpg

ただ、ローレベルディスカバリで拾い上げられるインタフェース情報は、依然として32ビットカウンタ&1分でした。ま、期待にそぐわなかった訳ですが、これはこれで良しとしましょう。
タグ:ZABBIX
nice!(0)  コメント(0) 

zabbixのグラフが変 (FreeBSD10.3R、2017/02/05) [ports]

Windows上でSAMBAサーバに対して大量のコピーを行い、Windows上の画面表示では100MByte/秒あたりをうろうろします。多少のオーバヘッドを含めても800Mbpsぐらいは出ていることでしょうか。

muninのグラフ:700~800Mbps
cacti(64ビットカウンタ)のグラフ:700~800Mbps
zabbixのグラフ:200~350Mbps

あれ?他は正常なのに、zabbixだけなんでだろうといった感じです。コピー通信はコンスタントに30分近く続いているので、分母(データ取得時間)の違いといった訳ではないようです。(平均値を描画するグラフだと、データ取得間隔が長くなればなるほどグラフの山部分が平滑化されていく)

ま、こういった場合、十中八九、桁あふれの問題なのでしょうけどね。
zabbix(version 2.4)を確認したところ、32ビットのカウンタではあるけれども、1分間隔のデータ取得のようです。それでも桁あふれを起こしてしまっているのでしょうか。

ざっと計算してみます。32ビットカウンタの最大値は2^32≒約4.3GByteなので、1分間(60秒間)にこれ以上の通信が発生していると、カウンタが一巡して正しい値が表示されなくなります。
(例)
前回取得値が1000だったとして、今回が3000だったとします。差分計算を行うため、3000-1000=2000が増分になる訳ですが、あまりに勢いよくカウンタが回った場合、実は増分が2000 + 2^32だったという場合もありえるのです。32ビットカウンタにおいては、2^32は限界値を超えており「0」と同じ意味を持ちます。

32ビットカウンタの限界値: 2^32 = 約4.3GByte
4.3GByteの通信量を60秒間で発生させるには: 4.3GByte ÷ 60秒 = 71.6MByte/秒

というわけで、約72MByte/秒以上の通信を発生させると、1分の集計時間では桁あふれを起こしてしまうことが分かり有りました。どうやらこれが原因だったようです。
SAMBAサーバの転送量が100MByte/秒とすると、zabbixのデータ取得時間を30秒にしてやれば、問題が発生しなくなる計算です。(約144MByte/秒までは桁あふれしないため)

と言うわけでレッツトライ!
新しい設定だと良い感じに700~800Mbpsあたりをうろうろするようになりました。これで問題解消です。

…が、なぜかグラフが中抜けして部分描画されなくなる現象が発生。なぜなんだ。
タグ:ZABBIX
nice!(0)  コメント(0) 

Pandora FMSを使ってみる その3 (FreeBSD 10.3R、2017/01/29) [ports]

何の縁か、またPandora FMSをインストールすることになりました。(目的はCISCO NetFlowのコレクタです)
前回は手動インストールでいろいろやった挙げ句、実はportsに登録されていたことが判明し、次からは簡単にインストールできますね。と書きました。
今回、ports(pkg)からインストールしようとした際、WWWサーバとして自動的にapacheもインストールされてしまうことが分かり、lighttpd派の私としては結局手動インストールすることにしました。

時は移り変わり、SP2 → SP5にバージョンアップされています。基本的には前回同様、インストールスクリプトを実行するだけでOKです。FreeBSDのサービス登録までやってくれる優れものです。

CISCO機器にエージェントは導入できませんので、標準のSNMPデバイスとして登録することにしました。
が、エラーが発生しましたと表示され、うまくいきません。ログにも残らずエラーの種類も分かりません。とまぁ、ここで断念しました。WWWサーバとして、lighttpdを選んでいることも致命的なのかもしれませんが。とりあえず暫定のお手上げです。
タグ:ports
nice!(0)  コメント(0) 

OpenSMTPDにチャレンジ その4 (FreeBSD 10.3R、2016/10/02) [ports]

方向性としては、aliasesを使うのは間違っていないようです。ただ、accept from any for anyでどこにでも中継できてしまうのは問題なので、recipient指定を使って宛先を制限します。
また、詳細ログを見る限り、一度aliasで処理されたメールはローカル発となって再評価されているようです。私は前回、「細かく定義した設定に最も一致する部分が多いエントリが評価される」と書きましたが、もしかするとこれは間違いかもしれません。単純に新規のメールとして評価されていて、結果的に行を遡ってチェックされたように見えただけかもしれません。

最終的に落ち着いたのはこんな感じ。
root@mybsd:/usr/local/etc/mail # cat smtpd.conf
# To accept external mail, replace with: listen on all
listen on lo0 port 25
listen on em0 port 25

# global config
max-message-size 10000000

# map
table aliases_local db:/usr/local/etc/mail/aliases_local.db
table aliases_mydomain db:/usr/local/etc/mail/aliases_mydomain.db
table recipients_private db:/usr/local/etc/mail/recipient_private.db
table authinfo db:/usr/local/etc/mail/authinfo.db

accept from local for local alias <aliases_local> deliver to mbox
accept from local for any recipient <recipients_private> relay via "tls+auth://so-net@mail.so-net.ne.jp:587" auth <authinfo>
reject from local for !local

accept from any for domain "mydomain.net" alias <aliases_mydomain>
reject from any for any

随分とシンプルになりました。alias_localはローカルのaliasを記載したファイル(toor→rootなど)です。まぁ/etc/mail/aliasesです。aliases_mydomainは、組織外メールに変換するためのaliasです。作り方は一緒です。
recipientsは、転送すべき(受理すべき)組織外メールです。aliases_mydomainの右辺の値を羅列しています。alias変換後の外部への転送メールはfrom localとなるので、文法的には危険性は下がりましたが、念のため限定するようにしています。
なお、マッピングではないのでmakemapの処理させ方が異なります。オプションは"-t set"を指定する必要があります。manを見ようとするとFreeBSD由来の物が表示されてしまいますので、詳しくはこちらを。http://man.openbsd.org/makemap.8

と言うわけで、posftfixを排除し、OpenSMTPDへの移行が終わりました。上記のコンフィグを見ても分かるとおり、postfixに比べすごくシンプルになりました。大規模な運営には向かないかもしれませんが、個人~小規模~中規模ぐらいでは十分にその役割を果たしてくれそうです。
タグ:OpenSMTPD
nice!(0)  コメント(0) 

OpenSMTPDにチャレンジ その3 (FreeBSD 10.3R、2016/09/27) [ports]

TwitterにOpenSMTPD, Incから「いいね」をもらってしまったので、もうちょっとがんばってみました。

おさらい(やりたいこと&postfixで実現できていること)
・独自ドメインは既に保有している
・DNS MXレコードも設定済みで、自ドメイン宛てのメールは自分宛に飛んでくる
・自ドメイン宛てのメールは、全て他組織メールアドレス(@gmail.comとか@yahoo.co.jpとか)に変換して再転送する
・Outbound Port 25 Blockingを回避するため、再転送メールはISPメールサーバ宛に中継を依頼する

で、いろいろ試した結果、うまくいくようになりました。決め手はトレースモードで動かしたことです。トレースモードで動かすと、あらゆる動作がトレースできるようになり、問題が発生している場所の特定が容易になりました。
root@mybsd:/usr/local/etc/mail # smtpd -dv -T all

まず、aliasとrelayが同時に設定できない点については、accept行にアクションを定義しないことで、その次に他の行を評価してくれることが分かりました。マニュアルをちゃんと読まない私も悪いのですが、どうやらファイアウォールのルールのように上から順番にマッチング処理を行うのではなく、細かく定義した設定に最も一致する部分が多いエントリが評価されるようです。
そのため、アドレス変換と転送は下記2行があれば実現できることが分かりました。
root@mybsd:/usr/local/etc/mail # cat smtpd.conf
table aliases db:/usr/local/etc/mail/aliases.db
table authinfo db:/usr/local/etc/mail/authinfo.db
accept from any for domain "mydomain.net" alias <aliases>
accept from any for any relay via "tls+auth://so-net@mail.so-net.ne.jp:587" auth <authinfo>

しかし次の問題として、変換後のメールアドレスは自組織が保持するメールアドレスではなくなるため、宛先for domain "mydomain.net"や、宛先for localで評価されなくなります。そのため、上記のように宛先for anyと設定して中継処理を依頼する必要がありますが、accept from any for anyなんて、不正中継サーバそのものになってしまいます。さすがにこれはいけませんよね。

ちなみにバーチャルユーザの設定も試してみました。
root@mybsd:/usr/local/etc/mail # cat smtpd.conf
table virtualusers db:/usr/local/etc/mail/virtualusers.db
table authinfo db:/usr/local/etc/mail/authinfo.db
accept from any for domain "mydomain.net" alias <virtualusers>
accept from any for any relay via "tls+auth://so-net@mail.so-net.ne.jp:587" auth <authinfo>
こちらの動きは、alias同様にメールアドレスが変換されますが、変換されたメールアドレスが”自組織のメールアドレスである”という前提でローカル検索を行うようです。そのため、@gmail.comや@yahoo.co.jpのメールアドレスに対して、そんなユーザは存在しないと怒られてしまいました。自分がバーチャルドメインを含め複数のドメインを保持している時に有効な動きとなりそうです。なるほど、こちらの動きも明確になりました。

後半へ続く。
タグ:OpenSMTPD
nice!(0)  コメント(0) 

OpenSMTPDにチャレンジ その2 (FreeBSD 10.3R、2016/09/18) [ports]

チャレンジしていたOpenSMTPD、結論から言うと不採用になりました。機能的にPostfixを置換できなかったからです。ここ数日間チャレンジしていて分かった加点ポイント、減点ポイントについて以下に書きます。

■加点ポイント
・コンフィグが驚くほどシンプルで簡潔(Postfixの1/20~1/50ぐらい)
・コンフィグがFWポリシルール形式なので、可読性が高い
・充実した公式マニュアル
・OpenBSD系の成果物ということで、おそらく堅牢かつ安全
・TCP Listenポートを複数設定し、そのポート毎に動作を変えることもできるといった柔軟なところもある(しかもコンフィグは一つ)
・動作が軽い(ように感じた)

■減点ポイント
・日本語の解説サイトが少ない
・現バージョン(opensmtpd-5.9.2p1_1,1)では、後述する動作ができない(私は無理だった)

単純なMTAとして動作させるのであれば、この上なく素晴らしいソフトウェアだと思います。私が採用に至らなかったのは、aliasの動作がpostfixと同等にならなかったからです。
簡単に言うと、aliasでメールアドレスをそっくり書き換えて、ローカルのメールボックスにはストアせず、組織外のメールアドレスに全転送してしまうような場合です。この場合、aliasでのメールアドレスの書き換えと、ISPメールサーバへSMTPメール中継が必要(Outbound Port 25 Blocking制限のため)なりますが、この動作をざっくりコンフィグに記載すると下記のようになります。
accept from any for any alias <aliases> relay via "tls+auth://so-net@mail.so-net.ne.jp:587" auth <authinfo>

しかし、これを読み込ませようとすると次のようなエラーが表示されてしまいます。
aliases/virtual may not be used with a relay rule

このあと、タグを使って再帰処理させようとしたり、virtualuserなども試してみましたが、どんなにがんばっても"550 Invalid recipient"と表示され、alias変換後に組織外宛てとなるメールアドレスが受理されません。と、ここで断念です。
タグ:OpenSMTPD
nice!(0)  コメント(0) 

OpenSMTPDにチャレンジ その1 (FreeBSD 10.3R、2016/09/11) [ports]

postfixでメールサーバを運用しており、今現在、特に不満はありません。ただ、OpenSMTPDという新しいおもちゃを見つけてしまいました。ハッカーの血がたぎります。幸いなことにportsにも登録されているので、少なくともインストールに躓くことはないでしょう。
現行バージョンは5.9.2p1のようなので、サクッとインストールしてしまいます。
root@mybsd:/usr/local/etc/mail # pkg search opensmtpd
opensmtpd-5.9.2p1_1,1          Security- and simplicity-focused SMTP server from OpenBSD
opensmtpd-devel-201606220754,1 Security- and simplicity-focused SMTP server from OpenBSD
opensmtpd-extras-201606230001  Addons for OpenSMTPD
opensmtpd-extras-filter-clamav-201606230001 Check messages with ClamAV in OpenSMTPD
opensmtpd-extras-filter-dkim-201606230001 DKIM-signing filter for OpenSMTPD
opensmtpd-extras-filter-dnsbl-201606230001 DNSBL-checking filter for OpenSMTPD
opensmtpd-extras-filter-lua-201606230001 LUA-script filter support for OpenSMTPD
opensmtpd-extras-filter-monkey-201606230001 Arbitrary delay or reject filter for OpenSMTPD
opensmtpd-extras-filter-pause-201606230001 Pause incoming OpenSMTPD messages to reduce spam
opensmtpd-extras-filter-perl-201606230001 Perl-script filter support for OpenSMTPD
opensmtpd-extras-filter-python-201606230001 Python-script filter support for OpenSMTPD
opensmtpd-extras-filter-regex-201606230001 Regular expression filter for OpenSMTPD
opensmtpd-extras-filter-spamassassin-201606230001 Spamassassin filter addon for OpenSMTPD
opensmtpd-extras-queue-python-201606230001 Python queue support for OpenSMTPD
opensmtpd-extras-queue-ram-201606230001 RAM queue support for OpenSMTPD
opensmtpd-extras-scheduler-python-201606230001 Python scheduler support for OpenSMTPD
opensmtpd-extras-scheduler-ram-201606230001 RAM scheduler support for OpenSMTPD
opensmtpd-extras-table-ldap-201606230001 LDAP table support for OpenSMTPD
opensmtpd-extras-table-mysql-201606230001 MySQL table support for OpenSMTPD
opensmtpd-extras-table-passwd-201606230001 passwd(5) table support for OpenSMTPD
opensmtpd-extras-table-postgresql-201606230001 PostgreSQL table support for OpenSMTPD
opensmtpd-extras-table-python-201606230001 Python table support for OpenSMTPD
opensmtpd-extras-table-redis-201606230001 Redis table support for OpenSMTPD
opensmtpd-extras-table-socketmap-201606230001 Socketmap table support for OpenSMTPD
opensmtpd-extras-table-sqlite-201606230001 SQLite table support for OpenSMTPD
opensmtpd-extras-tool-stats-201606230001 Statistics tool for OpenSMTPD

設定サンプル等は、Webから探します。予想通り情報が少ないですね。しかしOpenBSDの成果物の良いところは、公式マニュアルがしっかりメンテナンスされていること。きちんと整備されたマニュアルもセキュリティの向上に欠かせないという思想からですね。だから困ったときは公式マニュアルを読めば良いのです。
とは言っても、設定サンプルがないと設定しにくいもの。数少ない日本語サイトを探します。一つ分かったのは、いろいろと仕様改変が行われていること。代表的なところとしては、mapコマンドがtableコマンドに置換されたことでしょうか。

本格運用はまだですが、とりあえずテストコンフィグで色々と試しています。ISPメールサーバへのSTARTTLSによるSMTPメール転送などもすでに動作確認できています。その中(というより、そもそものところで)で出てきた問題は3つ。

まず、インストール後のディレクトリ等のパーミッションが怪しいです。私が何も考えずに-Rオプションで一括して所有者がパーミッションを変えてしまったような気がしないでもないですが、下記のようなエラーメッセージが出ました。
/var/spool/smtpd is not owned by uid 0
/var/spool/smtpd is not owned by gid 0
/var/spool/smtpd/offline is not owned by gid 258

pkg delete/installをやり直してもダメだったので、pkg intall時に表示される下記コマンド(本来は古いバージョン使用者向けの移行用設定)を適用しましょう。さすがOpenBSD系だけあって、権限にはうるさいです。
  2. Update permissions:

     # chown -R _smtpq:wheel /var/spool/smtpd/corrupt
     # chown -R root:_smtpq /var/spool/smtpd/offline
     # chown -R _smtpq:wheel /var/spool/smtpd/purge
     # chown -R _smtpq:wheel /var/spool/smtpd/queue
     # chown -R _smtpq:wheel /var/spool/smtpd/temporary
     # chmod -R 770 /var/spool/smtpd/offline
     # chmod -R 700 /var/spool/smtpd/purge

次に/etc/mail/mailer.confです。必要な修正を行ってくれません。portsディレクトリにはそれっぽい修正用のスクリプト(/usr/ports/mail/opensmtpd/files/pkg-install.in)が置いてあるのですが、pkgでインストールした時は何も修正されませんでした。そのため、自分で下記内容に修正します。
もしかすると一時期postfix等のインストールでいろいろ弄っていたので、mailer.confが初期状態から改変されており、あえて修正されなかったのかもしれません。(/usr/local/sbin/sendmailって明らかに初期状態ではないですね)
#sendmail       /usr/local/sbin/sendmail
#send-mail      /usr/local/sbin/sendmail
#mailq          /usr/local/sbin/sendmail
#newaliases     /usr/local/sbin/sendmail

sendmail        /usr/local/sbin/smtpctl
send-mail       /usr/local/sbin/smtpctl
mailq           /usr/local/sbin/smtpctl
makemap         /usr/local/libexec/opensmtpd/makemap
newaliases      /usr/local/libexec/opensmtpd/makemap

最後にmakemapについて。データベースファイル(テーブルコマンドで読み込むファイル)をmakemapで処理するのですが、私はFreeBSDに標準インストールされている/usr/sbin/makemapを使っていました。どうやらこれではダメで、/usr/local/libexec/opensmtpd/makemapを使う必要がありました。
とりあえずそんなところでしょうか。
タグ:OpenSMTPD
nice!(0)  コメント(0) 

MuninでMySQLを可視化する (FreeBSD 10.3R、2016/09/04) [ports]

WordPressでMySQLを使うようになったので、MySQLをMuninで可視化してみることにしました。
が、いきなりの挫折。ローカル環境ではうまくいっているのですが、VPS上の正式運用しているMySQLは可視化できないのです。
root@vps:~ # cat /var/log/munin/munin-node.log
2016/09/04-02:20:07 [6833] Error output from mysql_commands:
2016/09/04-02:20:07 [6833]      DBI connect('mysql;mysql_connect_timeout=5','munin',...) failed: Access denied for user 'munin'@'localhost' (using password: YES) at /usr/local/etc/munin/plugins/mysql_commands line 902.

決定的な違いと言えば、パスワードの設定有無やアクセスユーザ名の違いです(ローカル環境はパスワードなし)。 MySQL側のユーザ作成は実施済みですし、関連情報をコンフィグファイルにちゃんと記載していることから、てっきりコンフィグファイルが読み込めていないものとばかり思っていました。(パスワードにマイナスの文字が入っていたので、構文解釈でエラーを起こしている線も疑っていました。)
root@vps:~ # cat /usr/local/etc/munin/plugin-conf.d/plugins.conf
[mysql*]
#env.mysqlconnection DBI:mysql:mysql;host=127.0.0.1;port=3306
env.mysql /usr/local/bin/mysql
env.mysqladmin /usr/local/bin/mysqladmin
env.mysqlshow /usr/local/bin/mysqlshow
env.mysqluser munin
env.mysqlpassword xxxxxxxxxx

しかし何を何回修正してもダメ。munin-run --debug mysql_commandsを実施してみたところ、どうやらユーザ名、パスワード情報はちゃんと反映されている模様。そこでさらにログを見つめていると、どうやらmysqlというデータベースにアクセスして失敗しているらしい。
そこまで切り分けできてくると、思い当たることが一つ。
root@vps:~ # mysql -u root -p xxxxxxx
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
mysql>quit;
root@vps:~ #
root@vps:~ # mysql -u munin -p xxxxxxx
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
+--------------------+
mysql>quit;

ここまでくれば犯人は分かったも同然。ユーザmuninがmysql というデータベースにアクセスする権限を持っていませんでした。GRANT文でmysqlデータベースに対してSELECT権限を与えてみたところ、とりあえずエラーは出なくなりました。
可視化への第一歩を踏み出したかな? と思ったのですが、そもそもmysqlってデータベースって何なのでしょう。ここにアクセスできればMySQL全体の統計情報が取得できる場所だったら良いのですが、単純にmysqlってデータベースの統計情報を可視化しているだけだったら、もうちょっとチューニングが必要そう。(WordPressで実際に使っているデータベースを指定していないと意味がないので)
とりあえずしばらく放置してみることにします。
タグ:munin
nice!(0)  コメント(0)