稽核日誌
在許多安全環境中,需要記錄每個使用者管理動作。為此,ActiveMQ Classic 實作了稽核日誌,這表示透過 JMX 或 Web 控制台管理介面執行的每個管理動作都會被記錄下來,以便日後檢查。
稽核日誌已預先配置在發行版中,因此很容易開啟或關閉。您只需設定 org.apache.activemq.audit
系統屬性。從 5.16.0 版本開始,值可以是 "true|entry|exit|all" 其中之一。當值為 all 或 exit 時,稽核會捕捉 JMX 操作完成的時間。您可以透過取消註解啟動腳本中的以下行來完成此操作。
ACTIVEMQ_OPTS="$ACTIVEMQ_OPTS -Dorg.apache.activemq.audit=true"
實際日誌預設儲存在 ${ACTIVEMQ_HOME}/data/audit.log
中,對於安全的訊息代理,您可能會看到類似以下的項目:
2010-12-22 12:12:07,225 | INFO | admin requested /admin/createDestination.action [JMSDestination='test' JMSDestinationType='queue' secret='4eb0bc3e-9d7a-4256-844c-24f40fda98f1' ] from 127.0.0.1 | qtp12205619-39
2010-12-22 12:12:14,512 | INFO | admin requested /admin/purgeDestination.action [JMSDestination='test' JMSDestinationType='queue' secret='eff6a932-1b58-45da-a64a-1b30b246cfc9' ] from 127.0.0.1 | qtp12205619-36
2010-12-22 12:12:17,802 | INFO | admin requested /admin/sendMessage.action [JMSTimeToLive='' JMSXGroupSeq='' AMQ_SCHEDULED_DELAY='' JMSType='' JMSMessageCountHeader='JMSXMessageCounter' JMSXGroupID='' JMSReplyTo='' JMSDestination='test' AMQ_SCHEDULED_PERIOD='' JMSText='Enter some text
here for the message body...' JMSDestinationType='queue' AMQ_SCHEDULED_CRON='' JMSCorrelationID='' AMQ_SCHEDULED_REPEAT='' JMSMessageCount='1' secret='a0e1df62-14d6-4425-82a2-17aa01a16e7d' JMSPriority='' ] from 127.0.0.1 | qtp12205619-37
...
2010-12-22 12:12:57,553 | INFO | admin called org.apache.activemq.broker.jmx.QueueView.purge[] | RMI TCP Connection(8)-192.168.1.107
2010-12-22 12:13:21,976 | INFO | admin called org.apache.activemq.broker.jmx.QueueView.resetStatistics[] | RMI TCP Connection(8)-192.168.1.107
2010-12-22 12:13:32,457 | INFO | admin called org.apache.activemq.broker.jmx.QueueView.sendTextMessage[message] | RMI TCP Connection(6)-192.168.1.107
在這個範例中,您可以看到透過 Web 控制台或 JMX 執行的動作的範例項目。日誌項目包含以下資訊:
- 使用者名稱(如果可用),否則為 "anonymous"
- 執行的操作,在 JMX 的情況下是方法名稱,如果是透過 Web 執行的操作則是請求 URL
- 操作使用的參數,以及
- 發出呼叫的 IP 位址
稽核日誌的預設位置可以在 ${ACTIVEMQ_HOME}/conf/log4j.properties
中設定