Takehiro Matsushima
takeh****@gmail*****
2015年 2月 12日 (木) 18:28:55 JST
北林 さん 松島です。ひとまず動作したとのことで、安心致しました。 > 上記に > ”touch `/var/lib/tomcat/logs/catalina.out': 許可がありません” > とあることから「権限の問題だろうか」と思い、 > かなり強引ではありますが > > #chmod 777 /var/lib/tomcat/logs/catalina.out > > としたところ、pacemakerに認識させることに成功致しました。 もしかしたら動作確認のためにrootユーザで実行した際に/var/lib/tomcat/logs/catalina.outが 作成されたのかもしれません。 root:root 640 とか644とかで作成されてしまうと、tomcatユーザは書き込みが出来ないので、 このようなエラーになる可能性があります。 一旦rootユーザで/var/lib/tomcat/logs/catalina.outを削除してしまってからPacemakerを起動すれば 適切なパーミッションで作成されると思います。(本当に適切かどうかは別として) もしくは、 # chown tomcat. /var/lib/tomcat/logs/* # chmod 640 /var/lib/tomcat/logs/* しても良いかもしれません。(640で良いのかどうか自信ないです...) > (ここまでたどり着けたのは松島様のおかげです。 > 多くの時間を割いてくださり、本当にありがとうございます。) いえいえ、こちらこそレスの間隔が開いてしまい申し訳ございません。 > 次に > ここで浮かんだ疑問なのですが、 > #chmod 777 /var/lib/tomcat/logs/catalina.out > と設定することは、セキュリティ的に・もしくはLINUXのお作法的に問題ないのかということです。 > お恥ずかしながらIT初心者のため、 > こういった知識がございません。 適切な設定となると、実は個人や企業、ディストリビューションによってもまちまちだと思いますし、 Tomcatの作法は存じませんので、あくまでも私の考えを書かせていただきます。 777に設定してしまうと、全く関係のないユーザがログの読取りと書き込み(改ざん)が出来てしまいます。 加えて、ログファイルに実行ビットは明らかに不要です(ディレクトリは実行ビットがないとcd出来ません)。 グループに対しては、同じグループに所属するユーザが他にいないのであれば、許可は不要になります。 従って、この場合には、640もしくは600が良いのではないかと考えます。 644という手もありますが、オーナでもグループに所属しても無いユーザがログを読めるというのは 少し怖い気もしますが、これは運用次第になるかもしれません。 また、これもエンジニアの思想次第なのですが、私はSELinuxはEnforcing派です。 これについては本当に色々な思想がありますので... > (略) > 上記はどのような意味をもつのでしょうか。 > この部分を抜くと、 > #crm configure load update でエラーになってしまいます。 property cib-bootstrap-options: \ dc-version=1.1.12-561c4cf \ cluster-infrastructure=corosync \ no-quorum-policy=ignore \ stonith-enabled=false \ pe-input-series-max=3000 \ pe-error-series-max=3000 \ pe-warn-series-max=3000 ここの部分でしょうか。 末尾の3行については記事冒頭のリンク先で述べているとおり、ポリシエンジンの世代管理の設定です。 正直なところ、こちらは無くても問題はないと思います。 それ以外の部分を順に見てまいりますと、 property cib-bootstrap-options: \ ここはクラスタの属性を設定する部分と宣言しています。 dc-version=1.1.12-561c4cf \ ここはDC(Designated Coordinator)のバージョンを示しています。書かなくても自動的に追加されますし、 手で書かないほうが良いと思います。 DCはクラスタに於ける指揮者のような立場のノードのことです。 あくまでも統括の代表であって、優先的にマスターになるとかという意味はありませんが、 ログはDCの方がたくさん情報が出ます。 cluster-infrastructure=corosync \ クラスタの基盤(ノード同士の通信をする部分)がCorosyncであることを示しています。 ここも自動的に追加されますし、手で書かなくても良い部分です。 no-quorum-policy=ignore \ クオーラムを取得できなかった場合の挙動を"ignore(無視)"に設定しています。 クオーラムというのは定足数のことで、ノードが投票をしあって過半数を取得したノードがDCになれます。 簡単ではありますが以下にまとめています。 http://goo.gl/QT8k8Y stonith-enabled=false \ STONITH(Shoot The Other Node In The Head)を有効にするかどうかの設定で、今回は無効にしています。 STONITHは「生きているか死んでいるかわからないノード」を強制的にクラスタから排除する仕組みです。 よくつかわれるのがDellのiDRACやhpのiLOといった管理モジュールを操作して強制的に電源を切るというものです。 これらはOSとは独立して動作しているため、Kernel Panicを起こしていても操作可能です。 STONITHのリソースの設定をしていない場合には、stonith-enabled=falseの設定をしておきます。 ご存知かもしれませんが、行末の"\"は本来一行で書かれるべき設定を複数行に分割するための、改行を無視する記号です。 タブ文字はパラメータの区切りの空白として扱ってくれないようで、"\"の前にスペースを入れておかないとエラーになります。 また、本来複数の行にわけなければならない設定を"\"で結合してもエラーになります。 行の追加や削除をした場合には、このルールをご確認ください。 以上、回答になっておりますでしょうか。長くなってしまい申し訳ございません。 ---- Takehiro Matsushima