タグ別アーカイブ: サーバ

WordPressを運用しているサーバーのApacheをZabbixで監視する方法

| コメントをどうぞ

前回は、ZabbixでApacheを監視するための設定手順を紹介しました。
今回は、Wordpress(このブログサイト)を運用しているサーバー上での監視設定です。

監視対象サーバーの環境

  • OS: Amazon Linux
  • zabbix-agent: 2.2.5
  • httpd: 2.2.29
  • WordPress: 4.0

手順

前回の記事の設定の続きです。

server-statusをリダイレクトをしないように設定

Apacheの監視設定をしたときにserver-statusが取得できませんでした。

サーバー上で実行したコマンド

curl http://localhost/server-status

結果

< !DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>

</head><body>
<h1>Found</h1>
The document has moved <a href="https://localhost/index.php">here</a>.
<hr />
<address>Apache/2.2.29 (Amazon) Server at localhost Port 80</address>
</body></html>

どうやらWordpressの設定でリダイレクトされているようです。

続きを読む

AWS EC2上のTomcatにJMX設定をしよう!

| コメントをどうぞ

はじめての方は初めまして、そうでない方はお久しぶりでございます。
DiceK Mikamiです。
諸事により長らくブログから遠ざかっておりましたが、戻って参りました。
決して嫌になったとかそういうんじゃないだからねっ!!
心機一転よろしくお願いいたします。
 
閑話休題
 
さて、4月になり春も真っ盛りと言う感じですが、
日本の社会人である私たちにとって4月とは新年度であり、
バタバタと忙しい日々かと思います。
新年度と言えば、、、そうですね新環境構築ですね。
今回は縁あって、EC2上に設置したTomcatに対してJMX設定を行いましたので、
その設定方法などを共有したいと思います。
これでリモート監視ができる!
 

検証環境

  • OS: Amazon Linux AMI release 2014.03
  • Java: JDK1.7.0
  • Tomcat: 7.0.5

 

リモートホスト(EC2側)の設定手順

1. Tomcatのserver.xmlにリスナーを登録する

素敵なことにJMX用のリスナーが用意されていますので、server.xmlにリスナーを追記します。

<Tomcat Home>/conf/server.xml

<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="10080" rmiServerPortPlatform="10081"/>

server.xmlの最初の方にリスナーが固まって記述されていますので、そのあたりに追加すれば良いです。
 

2. catalina-jmx-remote.jarをlibフォルダに追加する

リスナー登録だけでは動作してくれませんので、JMX用のライブラリ( catalina-jmx-remote.jar )をTomcatのlibフォルダに追加します。
最初から同梱されていることはほぼないと思いますので、以下から取得してください。

http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.50/bin/extras

バージョン配下にある「 bin/extras 」にjarファイルはありますので、利用するTomcatのバージョンにあわせてライブラリを取得してください。
ライブラリを取得しましたら「 $Tomcatホーム/lib 」配下に置きます。
 

3. Tomcat起動オプションを設定する

次にTomcatの起動オプションを追加します。
setenv.shを作成し、以下のオプションを追加します。

<Tomcat Home>/bin/setenv.sh

export CATALINA_OPTS="-Dcom.sun.management.jmxremote=true
                      -Dcom.sun.management.jmxremote.ssl=false
                      -Dcom.sun.management.jmxremote.authenticate=false
                      -Djava.rmi.server.hostname=<ホスト名>"

bin配下にsetenv.shがある場合、起動時にデフォルトで呼ばれますので、別個に用意しています。
検証時には、設定するホスト名をEC2インスタンスを立ち上げた時のデフォルトホスト名を設定しました。
 

4. Outboundポートを開放する

今回の目的としてEC2上のTomcatをリモート監視すると言うことになりますので、外部から接続するためのポートを開放します。
これはAWSコンソールからの設定になります。
検証では10080ポートと10081ポートを利用しましたので、その2つのポートを開放しました。

EC2側での設定は以上になります。
 

クライアントからの接続手順

いよいよクライアントから接続します。
今回はjdkに付属しているjconsoleから接続してみます。(VisualVMでも接続できます)

$ jconsole service:jmx:rmi://localhost:10081/jndi/rmi://localhost:10080/jmxrmi

これで接続完了!
 

…….
……….. 
 

こ、こんなはずでは。。。

こ、こんなはずでは。。。


!!!!!
なん、、、だと、、、???

はいそうですね。
いくらポートを開放したところでセキュリティがバッチリきいているため接続はできなくて当然ですよね。
みなさんを試したんですよ。
リモートで接続するためにSSHトンネリングを利用しましょう。

$ ssh -i  @ -L 10080:localhost:10080 -L 10081:localhost:10081

これを実行した後、再度jconsoleを起動します。

$ jconsole service:jmx:rmi://localhost:10081/jndi/rmi://localhost:10080/jmxrmi

jmxsuccess
おお、ちゃんとグラフが見えるではないか。
 
ともあれ、これでリモートでTomcatを監視し放題になりました。
今回はコマンドラインと既存ツールを使って行いましたが、
SSHトンネリングとJMXのプロトコルを利用したアプリケーションを利用すればより良い監視ライフが送れることかと思います。

Nginx + Tomcatのセットアップ

| コメントをどうぞ

え〜っくす!さ〜け〜んでみろ〜♪(にゃー!)
こんにちわ。DiceK Mikamiです。

今回は冒頭の通りNginxとTomcatの連携に関して紹介したいと思います。
Nginx(えんじんえっくす)はハイパフォーマンス&ローコストのオープンソースHTTPサーバです。
HTTPサーバと言えば、ApacheやIISを思い浮かべますが、それに続く第三の選択肢として十分に検討の余地がある優れたサーバです。
WordPressやHuluなどと言った大型サイトの基盤を支えているという実績もすでにあります。
また、名前がかっこいいのも良いですね。

サービスベンダー「弊社のサービスはNginxをベースに構築しております」
エンドユーザー(か、かっこいい。。。)

などとなり、ユーザーに自慢できますね。
はい。なりませんね。
 

検証環境

Macbook Pro Early 2011
Mac OSX 10.7.3 Lion
Java 1.6.0_29
 

用意するもの

  • Nginx本体
  • infoScoop OSS 3.1.0 クイックスタート

先日リリースされたばかりのinfoScoop OSS 3.1.0を利用して、環境構築を進めて行きたいと思います。
クイックスタートにはTomcat6が同梱されておりますので、手軽に動作環境をセットアップするには便利です。
(infoScoopのインストールはinfoScoop.orgサイトをご参照ください)
 

Nginxのインストール

Nginxをインストールするためには、3つの方法があります。

  1. バイナリファイルからインストール
  2. ソースからインストール
  3. パッケージ管理システムからインストール

ご利用になる環境にあわせてインストールすることができます。
yumやapt-getなどでもインストールできますので、インストール自体は非常に簡単です。
今回は3番の方式を採用して、MacPorts経由でインストールしてみます。(Homebrewとかでもインストールできるようです)

$ sudo port install nginx

とても簡単です。
起動コマンドと終了コマンドはMacPorts経由で行うことができます。

起動

$ sudo port load nginx

終了

$ sudo port unload nginx

localhostにアクセスしてみると、起動確認の画面が表示されます。
(nginx.confを設定しないと表示されないかもしれません)

 

NginxとTomcatの連携

Tomcatとの連携を設定ファイルに記述していきます。
MacPorts経由の場合、設定ファイルは「 /opt/local/etc/nginx 」配下に置かれています。
ここに配置されている「 nginx.conf.sample 」を「 nginx.conf 」にリネームし、以下のように記述します。(不要な部分は記述していません)

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    
    /* 追加部分 */
    upstream tomcat {
        server <IPアドレス>:8080 weight=10
    }
    
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;


        location / {
            root   share/nginx/html;
            index  index.html index.htm;
        }

        /* 追加部分 */
        location /infoscoop {  
            proxy_pass http://tomcat;  
        } 

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   share/nginx/html;
        }
    }
}

連携設定はこれだけです。
 

動作確認

実際に動作infoScoopにアクセスしますとポータル画面が表示されます。

 

URL

Nginx.org