質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.53%

  • CentOS

    3085questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • Tomcat

    611questions

    TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

  • Pacemaker

    10questions

    Pacemakerとは、クラスタ管理システム(CRM)を実装したオープンソースのソフトウェアです。CorosyncやHeartbeatと協調して動作し、高可用クラスタ上で稼働するアプリケーションなどのリソースを監視・起動・停止できます。

pacemaker+corosyncでのtomcat連携について

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,954

nob777

score 103

★以下について、tomcat@tomcat.serviceを作成することでtomcat登録が正常に行えました。
しかし、なぜpacemaker+corosyncはtomcat.serviceではなく、tomcat@tomcat.serviceを
必要としていたのでしょうか?
【追記】tomcat@tomcat.serviceは既存のtomcat.serviceをコピーして作成しました。

pacemaker+corosyncに、リソースとしてtomcatを登録したいのですが、下記エラーが発生し、登録に失敗します。

Jan 27 06:33:11 [32248] osact       lrmd:   notice: operation_finished: Tomcat_Cluster_start_0:5314:stderr [ Failed to start tomcat@tomcat.service: Unit not found. ]

エラー要因はなんでしょうか?
※tomcat@tomcat.serviceが無いことらしいのですが、
/usr/lib/systemd/system配下には、tomcat.serviceおよびtomcat@.serviceは
存在します。
※pacemaker+corosyncを介さずに、systemctl start tomcat で正常にtomcat起動でき、http://localhost:8080へも正常アクセスできることは確認済みです。

■環境情報
OS:CentOS7.3.1611
pacemake:1.1.15
corosync:2.4.0
tomcat:8.5.11

■(追記)pcs config実行結果

[root@osact ~]# pcs config 
Cluster Name: cluster_os
Corosync Nodes:
 osact ossby
Pacemaker Nodes:
 osact ossby

Resources:
 Resource: VIP (class=ocf provider=heartbeat type=IPaddr2)
  Attributes: ip=192.168.172.9 cidr_netmask=24
  Operations: start interval=0s timeout=20s (VIP-start-interval-0s)
              stop interval=0s timeout=20s (VIP-stop-interval-0s)
              monitor interval=10s (VIP-monitor-interval-10s)
 Resource: Web_Cluster (class=ocf provider=heartbeat type=apache)
  Attributes: configfile=/etc/httpd/conf/httpd.conf statusurl=http://127.0.0.1/server-status
  Operations: start interval=0s timeout=40s (Web_Cluster-start-interval-0s)
              stop interval=0s timeout=60s (Web_Cluster-stop-interval-0s)
              monitor interval=1min (Web_Cluster-monitor-interval-1min)
 Resource: Tomcat_Cluster (class=ocf provider=heartbeat type=tomcat)
  Attributes: statusurl=http://127.0.0.1:8080/ java_home=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-0.b13.el7_3.x86_64/jre catalina_home=/usr/tomcat8 tomcat_user=tomcat
  Operations: start interval=0s timeout=60s (Tomcat_Cluster-start-interval-0s)
              stop interval=0s timeout=120s (Tomcat_Cluster-stop-interval-0s)
              monitor interval=1min (Tomcat_Cluster-monitor-interval-1min)

Stonith Devices:
Fencing Levels:

Location Constraints:
  Resource: VIP
    Enabled on: osact (score:INFINITY) (role: Started) (id:cli-prefer-VIP)
    Disabled on: ossby (score:-INFINITY) (role: Started) (id:cli-ban-VIP-on-ossby)
Ordering Constraints:
  start VIP then start Web_Cluster (kind:Mandatory) (id:order-VIP-Web_Cluster-mandatory)
  start Web_Cluster then start Tomcat_Cluster (kind:Mandatory) (id:order-Web_Cluster-Tomcat_Cluster-mandatory)
Colocation Constraints:
  Web_Cluster with VIP (score:INFINITY) (id:colocation-Web_Cluster-VIP-INFINITY)
  Tomcat_Cluster with VIP (score:INFINITY) (id:colocation-Tomcat_Cluster-VIP-INFINITY)
  Resource Sets:
    set VIP (id:pcs_rsc_set_VIP_Tomcat_Cluster) setoptions score=INFINITY (id:pcs_rsc_colocation_set_VIP_Tomcat_Cluster)
    set VIP Tomcat_Cluster (id:pcs_rsc_set_VIP_Tomcat_Cluster-1) setoptions score=INFINITY (id:pcs_rsc_colocation_set_VIP_Tomcat_Cluster-1)
Ticket Constraints:

Alerts:
 No alerts defined

Resources Defaults:
 No defaults set
Operations Defaults:
 No defaults set

Cluster Properties:
 cluster-infrastructure: corosync
 cluster-name: cluster_os
 dc-version: 1.1.15-11.el7_3.2-e174ec8
 have-watchdog: false
 last-lrm-refresh: 1485467664
 no-quorum-policy: ignore
 stonith-enabled: false

Quorum:
  Options:
[root@osact ~]# 
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • ikedas

    2017/01/27 12:22

    「crm configure show」の出力結果を提示して下さい。また、設定にあたって参考にした書籍やウェブサイトがあればその情報 (書名とページ、URLなど) を提示して下さい。

    キャンセル

  • nob777

    2017/01/28 06:38

    ご確認いただきありがとうございます。crmは入れていませんので、pcs config実行結果を追記しました。tomcat連携にあたり参考にしたサイトは、http://muru-techsolution.blogspot.jp/2015/04/apache-tomcat-cluster-with-pacemaker-on.html です。

    キャンセル

  • ikedas

    2017/01/28 14:37

    了解です。

    キャンセル

回答 2

checkベストアンサー

+1

なぜpacemaker+corosyncはtomcat.serviceではなく、tomcat@tomcat.serviceを必要としていたのでしょう>か?

resource-agent の作りがそうなっているからだと思います。

(/usr/lib/ocf/resource.d/heartbeat/tomcat 抜粋)

tomcatCommand()
{
        if ocf_is_true $SYSTEMD; then
                systemctl $@ tomcat@${TOMCAT_NAME}
        else


$@ は "start" または "stop" です。
${TOMCAT_NAME} は pcs resource create ... ocf:heartbeat:tomcat の引数 tomcat_name= で指定します。
指定しない場合、デフォルトの tomcat が設定されますので、tomcat@tomcat.service が必要です。

CentOS 7.3 で提供されている tomcat-7.0.69-10.el7.noarch であれば、/usr/lib/systemd/system/ に tomcat@.service ファイルあれば、tomcat@(任意の名前).service は必要ないのですが、tomcat-8.5.11 で提供される tomcat@.service ファイルは作りが違うのでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/29 07:59

    ご回答いただきありがとうございます。
    既存に存在する他のserviceファイル群の名称と比べてもresource-agentが求める名称が異質であったため、わたしの環境が壊れているのではないかと思い、質問させていただきました。TaichiYanagiyaさんのおっしゃるとおり、わたしの環境のresouce-agentでもデフォルトがtomcat@tomcat.serviceとなっていました。なぜ、そのような異質(と思われる)な名称をデフォルトとしているのかは設計元の考えを確認しなければ分からないと思います(※tomcatを複数建てた場合を考慮している?)ので、本件はクローズとさせていただきます。

    キャンセル

0

リソースエージェントにおかしなところは見受けられませんので、tomcat@tomcat.serviceがうまく起動していないようです。

Tomcat_Clusterリソースを有効にしようとして今回のように失敗したら、次のコマンドを実行して出力される内容を確認下さい。原因がよくわからなければ、その出力をご質問に追記していただけますか。

systemctl status tomcat@tomcat.service
journalctl -xn tomcat@tomcat.service

なお、サービスを直接起動された際にはroot権限で起動に成功されたと思います。まったくの推測ですが、tomcatが何かを書き込むディレクトリ (PIDファイルやログなど) が、tomcatユーザの権限で書き込めないのかもしれません。その場合、次のいずれかの方法で直るかもしれません。

  • Tomcat_Clusterリソースの属性に、tomcat_user=rootを指定する。

または、

  • 上述のディレクトリを探して、tomcatユーザが書き込めるようにする。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/29 08:06

    ご回答いただきありがとうございます。わたしの追記した★行の記載内容および、わたしの理解不足により、質問したい点が不明瞭となってしまい大変申し訳ありません。
    最初に質問させていただいたtomcat起動が失敗する事象については、tomcat@tomcat.serviceを設置することで解消されました。しかし、なぜ既存の他サービスが必要としているようなサービス名.serviceやサービス名@.serviceではなく、tomcat@tomcat.serviceを必要としていたかが分からなかったため、追記の形で別質問をさせていただきました。

    キャンセル

  • 2017/01/29 09:20

    「tomcat@tomcat.serviceを設置」というのはどういう操作でしょうか。はまるひとが多そうなポイントなので、具体的な操作を追記していただくといいと思います。

    CentOS7からは、tomcatのサービスが複数インスタンスあるときはサービステンプレートを使うようになったので、リソースエージェントでもそれに対応したものでしょう。

    キャンセル

  • 2017/01/29 18:31

    ご確認ありがとうございます。
    やはり複数インスタンスでしょうか。
    ※tomcat@tomcat.serviceの作成について追記しました。

    キャンセル

同じタグがついた質問を見る

  • CentOS

    3085questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • Tomcat

    611questions

    TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

  • Pacemaker

    10questions

    Pacemakerとは、クラスタ管理システム(CRM)を実装したオープンソースのソフトウェアです。CorosyncやHeartbeatと協調して動作し、高可用クラスタ上で稼働するアプリケーションなどのリソースを監視・起動・停止できます。