Apache ActiveMQは、2つのアプリケーション間でメッセージを送信するために使用できる無料のオープンソースのJavaベースのメッセージブローカーです。データの高可用性やメッセージ負荷分散など、多くの機能を提供します。また、Java、C、C ++、Python、PHP、Perl、Ruby、C#などのいくつかの言語のクライアントとプロトコルもサポートしています。メッセージを送信者から受信者に変換し、メッセージをキューに保持できるようにします。
このチュートリアルでは、CentOS8にApacheActiveMQをインストールする方法を学習します。
- CentOS8を実行しているサーバー。
- ルートパスワードはサーバーで構成されています。
Javaのインストール
Apache ActiveMQはJavaベースのアプリケーションであるため、Javaをシステムにインストールする必要があります。インストールされていない場合は、次のコマンドでインストールできます。
dnf install java-11-openjdk-devel -y
Javaをインストールした後、次のコマンドを使用して、インストールされているJavaのバージョンを確認します。
java --version
次の出力が得られるはずです:
openjdk 11.0.6 2020-01-14 LTS OpenJDK Runtime Environment 18.9 (build 11.0.6+10-LTS) OpenJDK 64-Bit Server VM 18.9 (build 11.0.6+10-LTS, mixed mode, sharing)
ApacheActiveMQのインストールと構成
まず、ActiveMQの最新バージョンを公式Webサイトからダウンロードする必要があります。次のコマンドでダウンロードできます:
cd /opt
wget https://www.apache.org/dist/activemq/5.15.12/apache-activemq-5.15.12-bin.tar.gz
ダウンロードしたら、次のコマンドを使用してダウンロードしたファイルを抽出します。
tar -xvzf apache-activemq-5.15.12-bin.tar.gz
次に、次のコマンドを使用して、抽出したディレクトリapache-activemqの名前を変更します。
mv apache-activemq-5.15.12 apache-activemq
次に、ApacheActiveMQ用に別のユーザーを作成することをお勧めします。次のコマンドを使用して、activemqという名前の新しいユーザーを作成できます。
useradd activemq
次に、apache-activemqディレクトリの所有権をactivemqに変更します。
chown -R activemq:activemq /opt/apache-activemq/
終了したら、次のステップに進むことができます。
ActiveMQのSystemdサービスファイルを作成する
次に、ApacheActiveMQサービスを管理するためのsystemdサービスファイルを作成する必要があります。次のコマンドで作成できます:
nano /etc/systemd/system/apache-activemq.service
次の行を追加します:
[Unit] Description=Apache ActiveMQ Messaging Server After=network.target [Service] Type=forking User=activemq Group=activemq ExecStart=/opt/apache-activemq/bin/activemq start ExecStop=/opt/apache-activemq/bin/activemq stop [Install] WantedBy=multi-user.target
終了したら、ファイルを保存して閉じます。次に、次のコマンドを使用してsystemdデーモンをリロードします。
systemctl daemon-reload
次に、ActiveMQサービスを開始し、次のコマンドを使用してシステムの再起動後に開始できるようにします。
systemctl start apache-activemq
systemctl enable apache-activemq
次のコマンドを使用して、ActiveMQサービスのステータスを確認できます。
systemctl status apache-activemq
次の出力が表示されます。
? apache-activemq.service - Apache ActiveMQ Messaging Server Loaded: loaded (/etc/systemd/system/apache-activemq.service; disabled; vendor preset: disabled) Active: active (running) since Thu 2020-03-26 10:15:32 EDT; 12s ago Process: 9005 ExecStart=/opt/apache-activemq/bin/activemq start (code=exited, status=0/SUCCESS) Main PID: 9057 (java) Tasks: 49 (limit: 25028) Memory: 197.5M CGroup: /system.slice/apache-activemq.service ??9057 /usr/bin/java -Xms64M -Xmx1G -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=/opt/apach> Mar 26 10:15:32 centos8 systemd[1]: Starting Apache ActiveMQ Messaging Server... Mar 26 10:15:32 centos8 activemq[9005]: INFO: Loading '/opt/apache-activemq//bin/env' Mar 26 10:15:32 centos8 activemq[9005]: INFO: Using java '/usr/bin/java' Mar 26 10:15:32 centos8 activemq[9005]: INFO: Starting - inspect logfiles specified in logging.properties and log4j.properties to get details Mar 26 10:15:32 centos8 activemq[9005]: INFO: pidfile created : '/opt/apache-activemq//data/activemq.pid' (pid '9057') Mar 26 10:15:32 centos8 systemd[1]: Started Apache ActiveMQ Messaging Server.
デフォルトでは、ApacheActiveMQはポート8161でリッスンします。次のコマンドで確認できます。
netstat -antup | grep 8161
次の出力が得られるはずです:
tcp6 0 0 :::8161 :::* LISTEN 9289/java
ApacheActiveMQ管理者パスワードを設定する
デフォルトでは、ApacheActiveMQ管理者のユーザー名とパスワードはadmin/adminに設定されています。セキュリティ上の理由から非常に危険です。したがって、安全なパスワードで変更することをお勧めします。
次のファイルを編集して変更できます:
nano /opt/apache-activemq/conf/jetty-realm.properties
次の行を希望のパスワードに変更します。
# username: password [,rolename ...] admin: activemqpassword, admin user: userpassword, user
終了したら、ファイルを保存して閉じます。次に、ActiveMQサービスを再起動して、変更を適用します。
systemctl restart apache-activemq
終了したら、次のステップに進むことができます。
NginxをApacheActiveMQのリバースプロキシとして構成する
次に、NginxをActiveMQのリバースプロキシとして構成することをお勧めします。
まず、次のコマンドを使用してNginxWebサーバーをインストールします。
dnf install nginx -y
Nginxがインストールされたら、次のコマンドを使用して新しいNginx仮想ホスト構成ファイルを作成します。
nano /etc/nginx/conf.d/activemq.conf
次の行を追加します:
server { listen 80; server_name your-server-ip; location / { proxy_pass http://127.0.0.1:8161; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
終了したら、ファイルを保存して閉じます。次に、次のコマンドを使用して、構文エラーがないかNginxを確認します。
nginx -t
次の出力が表示されます。
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
最後に、次のコマンドを使用して、Nginxサービスを開始し、システムの再起動後に開始できるようにします。
systemctl start nginx
systemctl enable nginx
次のコマンドを使用して、Nginxのステータスを確認することもできます。
systemctl status nginx
次の出力が表示されます。
? nginx.service - The nginx HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled) Active: active (running) since Thu 2020-03-26 10:27:45 EDT; 1min 9s ago Process: 9984 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Process: 9982 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Process: 9980 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) Main PID: 9985 (nginx) Tasks: 3 (limit: 25028) Memory: 5.5M CGroup: /system.slice/nginx.service ??9985 nginx: master process /usr/sbin/nginx ??9986 nginx: worker process ??9987 nginx: worker process Mar 26 10:27:44 centos8 systemd[1]: Starting The nginx HTTP and reverse proxy server...
デフォルトでは、SELinuxはCentOS8で有効になっています。ApacheActiveMQが正しく機能するようにSELinuxを無効にすることをお勧めします。
/ etc / selinux / configファイルを編集してSELinuxを無効にできます:
nano /etc/selinux/config
次の行を見つけます:
SELINUX=enforcing
そして、それを次の行に置き換えます:
SELINUX=permissive
ファイルを保存して閉じます。次に、システムを再起動して変更を適用します。
次に、firewalldを介してポート80と8161を許可する必要があります。次のコマンドで許可できます:
firewall-cmd --zone=public --permanent --add-port=8161/tcp>
firewall-cmd --zone=public --permanent --add-port=80/tcp
次に、firewalldをリロードして変更を適用します:
firewall-cmd --reload
終了したら、次のステップに進むことができます。
この時点で、ApacheActiveMQがインストールおよび構成されています。
次に、Webブラウザーを開き、URL http://your-server-ipを入力します。次のページが表示されます:
URL http:// your-server-ip / adminにアクセスして、ApacheActiveMQ管理インターフェースにアクセスすることもできます。次のページにリダイレクトされます:
管理者のユーザー名とパスワードを入力し、サインインをクリックします ボタン。次のページにApacheActiveMQ管理インターフェースが表示されます。
Hawt.ioを使用してActiveMQを監視する
Hawt.ioを使用してApacheActiveMQを監視することもできます。 Hawt.ioは、Javaベースのアプリケーションを管理するためのモジュラーWebコンソールです。これは、Tomcat、Jetty、Karaf、JBossなど、あらゆる種類のJVM、あらゆる種類のコンテナーをサポートするプラグ可能な管理コンソールです。
まず、次のコマンドを使用して、最新バージョンのHawt.iowarファイルをダウンロードします。
wget https://repo1.maven.org/maven2/io/hawt/hawtio-default/2.9.1/hawtio-default-2.9.1.war
次に、次のコマンドを使用して、ダウンロードしたファイルを抽出します。
unzip hawtio-default-2.9.1.war -d hawtio
次に、次のコマンドを使用して、抽出したディレクトリをwebappsディレクトリに移動します。
mv hawtio /opt/apache-activemq/webapps/
次に、次のコマンドを使用して、webappsディレクトリの所有権をactivemqに変更します。
chown -R activemq:activemq /opt/apache-activemq/webapps/
次に、Apache ActiveMQ環境ファイルを編集し、いくつかの変更を加えます。
nano /opt/apache-activemq/bin/env
次の行を見つけます:
ACTIVEMQ_OPTS="$ACTIVEMQ_OPTS_MEMORY -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=$ACTIVEMQ_CONF/login.config"
次の行に置き換えます:
ACTIVEMQ_OPTS="$ACTIVEMQ_OPTS_MEMORY -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=$ACTIVEMQ_CONF/login.config -Dhawtio.realm=activemq -Dhawtio.role=admins -Dhawtio.rolePrincipalClasses=org.apache.activemq.jaas.GroupPrincipal"
終了したら、ファイルを保存して閉じます。次に、jetty.xmlファイルを開きます:
nano /opt/apache-activemq/conf/jetty.xml
<bean class="org.eclipse.jetty.webapp.WebAppContext"> <property name="contextPath" value="/hawtio" /> <property name="resourceBase" value="${activemq.home}/webapps/hawtio" /> <property name="logUrlOnStart" value="true" /> </bean>
終了したらファイルを保存して閉じ、ApacheActiveMQサービスを再起動して変更を適用します。
systemctl restart apache-activemq
終了したら、次のステップに進むことができます。
Hawt.ioWebインターフェイスにアクセス
これで、Hawt.ioがインストールおよび構成されました。 Webインターフェイスにアクセスするときが来ました。
Webブラウザーを開き、URL http:// your-server-ip/hawtioを入力します。 Hawt.ioログインページにリダイレクトされます:
デフォルトのユーザー名とパスワードをadmin/adminとして指定し、ログをクリックします で ボタン。次のページにHawt.ioダッシュボードが表示されます。
おめでとう! CentOS8にApacheActiveMQが正常にインストールされました。詳細については、ActiveMQのApacheActiveMQドキュメントを参照してください。