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

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

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

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

Q&A

解決済

2回答

7011閲覧

サーバー管理ツール「Ajenti」のインストール方法について教えて下さい。

ucan-lab

総合スコア888

CentOS

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

0グッド

1クリップ

投稿2015/10/28 05:01

編集2015/10/28 07:41

AjentiをCentOS7にインストールしたいのですがうまく設定できず...困ってます。

http://ajenti.org/

使用したコマンドなど。

○ Ajentiのインストール

# curl https://raw.githubusercontent.com/ajenti/ajenti/1.x/scripts/install-rhel7.sh | sh

○ Ajenti再起動で起動の確認

# service ajenti restart Restarting ajenti (via systemctl): [ OK ]

○ ポート開放できているのを確認

# sudo netstat -tlnp | grep 8000 tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN

○ バインドエラー

# ajenti-panel -v 28.10.2015 13:25 core.py:99 INFO Starting server on (u'0.0.0.0', 8000) 28.10.2015 13:25 core.py:121 ERROR Could not bind to (u'0.0.0.0', 8000)

○ 他のプロセスが8000ポートを使ってるわけではないみたい。

# netstat -lnp | grep :8000

○ /etc/ajenti/config.json ホスト名を0.0.0.0から自分のIPに変更してみた。

json

1 "bind": { 2 "host": "xxx.xxx.xxx.xxx", 3 "port": 8000 4 },

○ Ajentiの再起動、OSごと再起動してみたが変わらず。。

原因が分からず右往左往してます。
何かわかる方がいましたらご教授ください。

Ajentiのインストールで必要な物はすべてインストールしてくれるイメージでしたが、
足りないものとかないでしょうか?

== 追記 ==
詳細モードで起動試してみました。

  • ajentiの停止

servive stop ajenti

-bash: servive: command not found

コマンドがないらしい。

  • 代わりにこちらで停止。

systemctl stop ajenti

  • listenポートの確認(8000のlistenがなくなっているはず)

netstat -tlnp | grep 8000

なくなりました。

  • ajentiを詳細モードで起動

ajenti-panel -v

28.10.2015 16:18 ajenti-panel:105 INFO Using config file /etc/ajenti/config.json
28.10.2015 16:18 ajenti-panel:130 INFO Ajenti starting in foreground
28.10.2015 16:18 registry.py:282 DEBUG registered 'sha512_crypt' handler: <class 'passlib.handlers.sha2_crypt.sha512_crypt'>
28.10.2015 16:18 compat.py:20 DEBUG Popen: git describe --tags 2> /dev/null
28.10.2015 16:18 compat.py:20 DEBUG Popen: ['lsb_release', '-sd']
28.10.2015 16:18 compat.py:20 DEBUG Popen: ['uname', '-mrs']
28.10.2015 16:18 core.py:60 INFO Ajenti 1.2.22.13 running on platform: centos
...
28.10.2015 16:18 core.py:99 INFO Starting server on (u'0.0.0.0', 8000)
28.10.2015 16:18 init.py:207 DEBUG Root context instantiated [SessionMiddleware] <ajenti.middleware.SessionMiddleware object at 0x388de10>
28.10.2015 16:18 init.py:207 DEBUG Root context instantiated [AuthenticationMiddleware] <ajenti.middleware.AuthenticationMiddleware object at 0x38834d0>
28.10.2015 16:18 init.py:207 DEBUG Root context instantiated [CentralDispatcher] <ajenti.routing.CentralDispatcher object at 0x3883610>
28.10.2015 16:18 core.py:134 INFO SSL enabled: /etc/ajenti/ajenti.pem
28.10.2015 16:18 init.py:207 DEBUG Root context instantiated [IPCServer] <ajenti.ipc.IPCServer object at 0x3883210>
28.10.2015 16:18 init.py:207 DEBUG Root context instantiated [Licensing] <ajenti.licensing.Licensing object at 0x3883050>
28.10.2015 16:18 feedback.py:30 DEBUG Feedback >> ping ({'edition': 'vanilla', 'version': '1.2.22.13', 'os': 'centos', 'id': 172438})
28.10.2015 16:18 feedback.py:35 DEBUG Feedback << {"status": "ok"}
...

長かったので最初と最後だけ抜き出しました。
こちらに全部載せました。
http://climbi.com/b/5388/0

status okなのでokなんでしょうか。。
ブラウザからアクセスしてみましたが状況は変わりませんでした。

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ログに「INFO SSL enabled: /etc/ajenti/ajenti.pem」と出ていますので、http://ホスト名:8000/ ではなく、https://ホスト名:8000/ でアクセスするのだと思います。

/etc/ajenti/config.json で

"ssl": { "enable": true, "certificate_path": "/etc/ajenti/ajenti.pem" },

となっていること、/etc/ajenti/ajenti.pem ファイルが存在することを確認してください。
サーバーのコマンドラインから wget, curl, openssl s_client などで接続できることを確認してください。

$ wget --no-check-certificate https://127.0.0.1:8000/

ちなみに、初回に ajanti-panel -v で「ERROR Could not bind to (u'0.0.0.0', 8000)」となったのは、インストール後、既に /etc/init.d/ajenti から起動していたから(ajanti-panel は /etc/init.d/ajenti から起動されるので、通常はコマンドラインから実行する必要はないはず)。

投稿2015/10/29 15:45

TaichiYanagiya

総合スコア12146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ucan-lab

2015/10/30 00:33

なるほど。 httpsで接続するのが安全でしょうか。 サーバ管理ツールですし。 まぁ、httpで接続できなくなったのは不思議ですが。 あと素朴な疑問なんですが、 config.jsonファイルって変更があったらどんどん下に追記されるものなんでしょうか? いつの間にか何百行というファイルになってました。。
guest

0

ベストアンサー

Ajentiに興味があったので、手元の仮想環境のcentos7にインストールして検証してみました。
インストールコマンドは記載されているものと同様です。(rootユーザで実行)

SSLだとエラーになりましたが、httpだと正しくログイン画面へブラウザからアクセスできました。
(http://[ipアドレス]:8000/)

解決方法ではないのですが、以下にこちらの環境での情報を記載します。

○ ポート開放できているのを確認

#netstat -tlnp | grep 8000 tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 1249/python

○ バインドエラー
エラーが出ていますが、動作しています。

・ ・ ・ 28.10.2015 14:50 core.py:99 INFO Starting server on (u'0.0.0.0', 8000) 28.10.2015 14:50 core.py:121 ERROR Could not bind to (u'0.0.0.0', 8000)

○ /etc/ajenti/config.json
インストール時から変更なし。

{ "users": { "root": { "configs": { "ajenti.plugins.dashboard.dash.Dash": "{\"widgets\": [{\"index\": 0, \"config\": null, \"container\": \"1\", \"class\": \"ajenti.plugins.sensors.memory.MemoryWidget\"}, {\"index\": 1, \"config\": null, \"container\": \"1\", \"class\": \"ajenti.plugins.sensors.memory.SwapWidget\"}, {\"index\": 2, \"config\": null, \"container\": \"1\", \"class\": \"ajenti.plugins.dashboard.welcome.WelcomeWidget\"}, {\"index\": 0, \"config\": null, \"container\": \"0\", \"class\": \"ajenti.plugins.sensors.uptime.UptimeWidget\"}, {\"index\": 1, \"config\": null, \"container\": \"0\", \"class\": \"ajenti.plugins.power.power.PowerWidget\"}, {\"index\": 2, \"config\": null, \"container\": \"0\", \"class\": \"ajenti.plugins.sensors.cpu.CPUWidget\"}]}" }, "password": "sha512|$6$rounds=40000$nIVrqqz638rB8wOo$VbMv8y2lStgcsYxEuu7JfHiEd06eeiSoIbg7Hvivj9K1vPayaCbAiAqtpyOoIkNfIXFmMD0jK6Dd4WFnvywkY1", "permissions": [] } }, "bind": { "host": "0.0.0.0", "port": 8000 }, "enable_feedback": true, "ssl": { "enable": false, "certificate_path": "" }, "authentication": true, "installation_id": 172462 }
  • ログイン後画面

イメージ説明


ブラウザからアクセスしているURLは、httpsですか?httpですか?
またうまく設定できないとのことですが、現在どういった症状になっていますか?
(ログイン画面がでない、ログインができないなど、具体的に教えて下さい。エラーが表示される場合はエラーメッセージも教えて下さい。)


追記です。
現状確認ありがとうございます。
なかなか難しい状況のようですね。

少しajentiについて調べました。

  • ログ出力パス

/var/log/ajenti/ajenti.log

  • ajenti-panelコマンド

ajentiサービスの起動コマンドのようですね。
-v で詳細モードで起動できるようです。

以下マニュアルが参考情報となります。

原因調査のため、以下検証いただけますか?

  • ajentiの停止

servive stop ajenti

  • listenポートの確認(8000のlistenがなくなっているはず)

netstat -tlnp | grep 8000

  • ajentiを詳細モードで起動

ajenti-panel -v

ajentiを詳細モードで起動した際に、何かエラーなどが出力されますでしょうか。
ajentiの詳細モードはCntl+Cで停止できます。
また、ログには何かエラーが出力されていますか?

--

詳細モード確認後の追記です。

  • ajentiの停止

servive stop ajenti

-bash: servive: command not found

コマンドがないらしい。--

すみません、タイプミスです。(servive -> service)
ただし、centos7からはsystemctlコマンドが推奨されているので、systemctlコマンドでの操作が良いと思います。

詳細モードのログを見る限り、ajenti自体は正しく動作しているようです。
サーバローカルから「wget http://localhost:8000/」のようにアクセスするとどのようなレスポンスがありますか?またはサーバにログインして、guiにてブラウザでhttp://localhost:8000/にアクセスするとどうなりますか?

wgetが正しく動作すると、実行したディレクトリ内にindex.htmlが保存されます。(ログイン画面のhtmlです)
wgetが正しく動作したとなると、サーバへの外部からの接続に問題がありそうです。

投稿2015/10/28 05:55

編集2015/10/28 08:02
takyafumin

総合スコア2335

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ucan-lab

2015/10/28 06:12

回答ありがとうございます! ブラウザはhttpでアクセスしています。 Ajentiのログイン画面は表示されません。 Chromeでアクセスすると次のようなメッセージになります。 ''' このウェブページにアクセスできません ERR_CONNECTION_REFUSED 詳細を非表示 Google Chrome が xxx.xxx.xxx.xxx に接続しようとしましたが、拒否されました。ウェブサイトがダウンしているか、ネットワークが正しく設定されていない可能性があります。 ''' 外部からのPort開放確認ツールでは8000ポートに対してアクセスできてはいます。
ucan-lab

2015/10/28 07:43

ログの場所ありがとうございます。確認してみます。 本文に詳細モードの記載を追記しました。
ucan-lab

2015/10/28 23:41

返事が遅くなりました。 # wget http://localhost:8000/ --2015-10-29 08:31:41-- http://localhost:8000/ Resolving localhost (localhost)... ::1, 127.0.0.1 Connecting to localhost (localhost)|::1|:8000... failed: Connection refused. Connecting to localhost (localhost)|127.0.0.1|:8000... failed: Connection refused. wgetは失敗するみたいです。 サーバー内部の問題でしょうか。
takyafumin

2015/10/28 23:56

サーバ側の問題のようです。 取り急ぎで申し訳ないですが、firewalldは有効ですか? 有効だったら、検証用に一度無効化してみてください。 # systemctl stop firewalld
takyafumin

2015/10/29 00:36

連投すみません。 firewalldの停止はたぶん外しているので検証しなくてOKです。 以下、確認です。 /etc/ajenti/config.json のbind > hostの指定はデフォルトの"0.0.0.0"ですか? もし異なるようであれば、"0.0.0.0"に戻し、ajentiを再起動してください。 ajenti再起動後、「netstat -tlnp | grep 8000」にて0.0.0.0:8000でLISTENしているのを確認後、再度以下を実行してください。 ------------------------------------------------------- 1. /etc/ajenti/config.jsonのbind>hostを修正 2. ajenti再起動 - # systemctl restart ajenti 3. LISTENポートの確認 - # netstat -tlnp | grep 8000 <=「tcp 0 0 0.0.0.0:8000 0.0.0.0.* LISTEN」が表示される 4. サーバローカルからの接続確認 - wget http://localhost:8000/ <= index.htmlが保存される 5. クライアントブラウザからの接続確認 - http://[サーバ]:8000/へアクセス
ucan-lab

2015/10/29 11:38

0.0.0.0に戻してます。 # netstat -tlnp | grep 8000 tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 10751/python wgetは失敗して施行繰り返し状態になりまして、 ブラウザからの接続も失敗に終わっております。。
ucan-lab

2015/10/29 11:44

テストサーバーなのでファイアウォール止めて試しちゃってます。
matsu

2015/10/29 12:27

念のためですが、Chromeで自家製のSSLで接続できるようになっていますか? アップデートが入って下位のSSLでは接続できなくなってしまっているのが原因かもしれません。
ucan-lab

2015/10/29 13:17

特にはSSL関連のことはChromeで設定していないと思います。 Safari, Firefox, Chromeとシークレットモードでもアクセス確認してますが、どれも同じです。
takyafumin

2015/10/29 15:45

検証用に再度OSインストールから試したところ、starlodさまと同様、httpでの接続ができなくなりました。 (インストール手順は今までどおり、firewalldは停止、SELinuxは無効化) --- # wget http://localhost:8000/ --2015-10-30 00:36:05-- http://localhost:8000/ localhost (localhost) をDNSに問いあわせています... ::1, 127.0.0.1 localhost (localhost)|::1|:8000 に接続しています... 失敗しました: 接続を拒否されました. localhost (localhost)|127.0.0.1|:8000 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... ヘッダ内で読み込みエラー(接続が相手からリセットされました)です 再試行しています --- ただ、httpsでは接続できる状態でした。 原因究明に至っておりませんが、お試しいただけますか? 証明書エラーが出るため、wgetには「--no-check-certificate」オプションを指定してください。 --- # wget https://centos7:8000/ --no-check-certificate --2015-10-30 00:36:37-- https://centos7:8000/ centos7 (centos7) をDNSに問いあわせています... fe80::a00:27ff:fefb:fe18, 10.0.2.15 centos7 (centos7)|fe80::a00:27ff:fefb:fe18|:8000 に接続しています... 失敗しました: 接続を拒否されました. centos7 (centos7)|10.0.2.15|:8000 に接続しています... 接続しました。 警告: centos7 の証明書(発行者: `/C=US/ST=NA/L=Nowhere/O=Acme Inc/OU=IT/CN=centos7')の検証に失敗しました: 自己署名証明書です。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 8645 (8.4K) [text/html] `index.html' に保存中 100%[========================================================================================================================================================>] 8,645 --.-K/s 時間 0s 2015-10-30 00:36:38 (213 MB/s) - `index.html' へ保存完了 [8645/8645] ---
ucan-lab

2015/10/29 16:19 編集

https://localhost:8000 --no-check-certificate でindex.htmlが保存できました! ブラウザからのアクセスも上手くいきました。 いつの間にか、httpsでアクセスできるようになってました(?)
takyafumin

2015/10/29 16:40

TaichiYanagiyaさまの回答にあるとおりですね。 こちらの環境にてconfig.jsonが先ほどと今インストールした環境でssl設定に変更がある部分が解せないですが(リポジトリソースに変更があった?)、納得です。 マニュアルをもっと良く読むべきでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問