웹사이트 검색

CentOS 8에 Apache ActiveMQ 및 Hawt.io를 설치하는 방법


이 페이지에서

  1. 전제 조건
  2. 자바 설치
  3. Apache ActiveMQ 설치 및 구성
  4. ActiveMQ용 Systemd 서비스 파일 생성
  5. Apache ActiveMQ 관리자 암호 설정\n
  6. Nginx를 Apache ActiveMQ용 역방향 프록시로 구성\n
  7. SELinux 및 방화벽 구성\n
  8. Apache ActiveMQ 액세스
  9. Hawt.io로 ActiveMQ 모니터링
  10. Hawt.io 웹 인터페이스에 액세스
  11. 결론

Apache ActiveMQ는 두 애플리케이션 간에 메시지를 보내는 데 사용할 수 있는 무료 오픈 소스 Java 기반 메시지 브로커입니다. 데이터에 대한 고가용성 및 메시지 로드 밸런싱을 비롯한 많은 기능을 제공합니다. 또한 Java, C, C++, Python, PHP, Perl, Ruby 및 C#을 비롯한 여러 언어 클라이언트 및 프로토콜을 지원합니다. 발신자에서 수신자로 메시지를 변환하고 메시지를 대기열에 보관할 수 있습니다.

이 튜토리얼에서는 CentOS 8에 Apache ActiveMQ를 설치하는 방법을 배웁니다.

전제 조건

  • CentOS 8을 실행하는 서버.\n
  • 서버에 루트 암호가 구성되어 있습니다.\n

자바 설치

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)

Apache ActiveMQ 설치 및 구성

먼저 공식 웹 사이트에서 최신 버전의 ActiveMQ를 다운로드해야 합니다. 다음 명령으로 다운로드할 수 있습니다.

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

다음으로 Apache ActiveMQ에 대해 별도의 사용자를 생성하는 것이 좋습니다. 다음 명령을 사용하여 activemq라는 새 사용자를 만들 수 있습니다.

useradd activemq

다음으로 apache-activemq 디렉토리의 소유권을 activemq로 변경합니다.

chown -R activemq:activemq /opt/apache-activemq/

완료되면 다음 단계로 진행할 수 있습니다.

ActiveMQ용 Systemd 서비스 파일 생성

다음으로 Apache ActiveMQ 서비스를 관리하기 위해 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.

기본적으로 Apache ActiveMQ는 포트 8161에서 수신 대기합니다. 다음 명령으로 확인할 수 있습니다.

netstat -antup | grep 8161

다음 출력이 표시되어야 합니다.

tcp6       0      0 :::8161                 :::*                    LISTEN      9289/java 

Apache ActiveMQ 관리자 암호 설정

기본적으로 Apache ActiveMQ 관리 사용자 이름 및 암호는 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를 Apache ActiveMQ용 리버스 프록시로 구성

다음으로 Nginx를 ActiveMQ용 리버스 프록시로 구성하는 것이 좋습니다.

먼저 다음 명령을 사용하여 Nginx 웹 서버를 설치합니다.

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 및 방화벽 구성

기본적으로 SELinux는 CentOS 8에서 활성화되어 있습니다. Apache ActiveMQ가 제대로 작동하려면 SELinux를 비활성화하는 것이 좋습니다.

/etc/selinux/config 파일을 편집하여 SELinux를 비활성화할 수 있습니다.

nano /etc/selinux/config

다음 줄을 찾으십시오.

SELINUX=enforcing

그리고 다음 줄로 바꿉니다.

SELINUX=permissive

파일을 저장하고 닫습니다. 그런 다음 시스템을 다시 시작하여 변경 사항을 적용하십시오.

다음으로 방화벽을 통해 포트 80 및 8161을 허용해야 합니다. 다음 명령으로 허용할 수 있습니다.

firewall-cmd --zone=public --permanent --add-port=8161/tcp
firewall-cmd --zone=public --permanent --add-port=80/tcp

다음으로 방화벽을 다시 로드하여 변경 사항을 적용합니다.

firewall-cmd --reload

완료되면 다음 단계로 진행할 수 있습니다.

Apache ActiveMQ에 액세스

이 시점에서 Apache ActiveMQ가 설치되고 구성됩니다.

이제 웹 브라우저를 열고 URL http://your-server-ip를 입력하십시오. 다음 페이지가 표시됩니다.

URL http://your-server-ip/admin을 방문하여 Apache ActiveMQ 관리 인터페이스에 액세스할 수도 있습니다. 다음 페이지로 리디렉션됩니다.

관리자 사용자 이름, 비밀번호를 제공하고 로그인 버튼을 클릭합니다. 다음 페이지에 Apache ActiveMQ 관리 인터페이스가 표시되어야 합니다.

Hawt.io로 ActiveMQ 모니터링

Hawt.io로 Apache ActiveMQ를 모니터링할 수도 있습니다. Hawt.io는 Java 기반 애플리케이션을 관리하기 위한 모듈식 웹 콘솔입니다. 모든 종류의 JVM, Tomcat, Jetty, Karaf, JBoss 등을 포함한 모든 종류의 컨테이너를 지원하는 플러그형 관리 콘솔입니다.

먼저 다음 명령을 사용하여 최신 버전의 Hawt.io war 파일을 다운로드합니다.

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>

완료되면 파일을 저장하고 닫은 다음 Apache ActiveMQ 서비스를 다시 시작하여 변경 사항을 적용합니다.

systemctl restart apache-activemq

완료되면 다음 단계로 진행할 수 있습니다.

Hawt.io 웹 인터페이스에 액세스

이제 Hawt.io가 설치 및 구성되었습니다. 웹 인터페이스에 액세스할 시간입니다.

웹 브라우저를 열고 URL http://your-server-ip/hawtio를 입력합니다. Hawt.io 로그인 페이지로 리디렉션됩니다.

기본 사용자 이름과 비밀번호를 admin/admin으로 입력하고 로그인 버튼을 클릭합니다. 다음 페이지에서 Hawt.io 대시보드를 볼 수 있습니다.

결론

축하합니다! CentOS 8에 Apache ActiveMQ를 성공적으로 설치했습니다. 자세한 내용은 ActiveMQ에서 Apache ActiveMQ 설명서를 참조하십시오.