概要
Feedジェネレーターの目的は、イベント ソースを、それが属するグループのリストにマッピングすることです。
イベント ソースからメッセージを収集しているのに、そのイベント ソースが、正しいイベント ソース グループに表示されない場合は、このトピックで説明する背景情報が問題の追跡に役立ちます。
詳細
ESM Feedでは複数のキーを1つの値にマッピングします。つまり、DeviceAddress、Forwarder、DeviceTypeの属性をgroupNameにマッピングします。
ESM Feedの目的は、Log Decoderで収集されるイベント ソースのメタにgroupNameを追加することです。
仕組み
Feedジェネレーターは1分ごとに更新するようスケジュール設定されています。しかし、実際にトリガーされるのはイベント ソースまたはグループに何らかの変更(作成、更新、削除)が行われた場合だけです。
Feedジェネレーターは、イベント ソースとグループのマッピングを指定したFeedファイルを1つ作成し、同じFeedをNetWitness Suiteに接続するすべてのLog Decoderにプッシュします。
Log DecoderにFeedファイルがアップロードされると、新しく受信するイベントのメタ データにはgroupNameが追加され、このgroupNameがlogstatsに追加されます。
groupNameがlogstatsに追加されると、ESM Aggregatorによって情報がグループ化され、ESMに送信されます。この時点で、[イベント ソース モニタリング]タブに[グループ名]列が表示されます。
上記のすべての処理が完了するにはある程度時間がかかります。そのため、新しいグループやイベント ソースを追加した後は、そのグループ名が表示されるまでしばらく待たなければならない場合があります。
注:Feedの更新によりイベント ソース タイプ属性が変更されると、NetWitness Suiteによって新しいlogstatsエントリーが追加されます。既存のエントリーが更新されることはありません。したがって、Log Decoderに2つの異なるlogstatsエントリーができることになります。それまでの既存のメッセージは元のタイプの下にリストされ、新しいメッセージはすべて、新しいイベント ソース タイプとして記録されます。
Feedファイル
Feedファイルの形式は次のようになっています。
DeviceAddress, Forwarder, DeviceType, GroupName
DeviceAddressは、ipv4, ipv6とhostnameのいずれかです。これは、イベント ソースがどのように定義されているかによって決まります。
Feedファイルの例を次に示します。
"12.12.12.12","d6","NETFLOW","grp1" "12.12.12.12","ld4","netflow","grp1" "12.12.12.12","d6","netfow","grp1" "0:E:507:E6:D4DB:E:59C:A","10.25.50.243","apache","Apachegrp" "1.2.3.4","LCC","apache","Apachegrp" "10.100.33.234","LC1","apache","Apachegrp" "10.25.50.248","10.25.50.242","apache","Apachegrp" "10.25.50.251","10.25.50.241","apache","Apachegrp" "10.25.50.252","10.25.50.255","apache","Apachegrp" "10.25.50.253","10.25.50.251","apache","Apachegrp" "10.25.50.254","10.25.50.230","apache","Apachegrp" "10.25.50.255","10.25.50.254","apache","Apachegrp" "13.13.13.13","LC1","apache","Apachegrp" "AB:F255:9:8:6C88:EEC:44CE:7",,"apache","Apachegrp" "Appliance1234",,"apache","Apachegrp" "CB:F255:9:8:6C88:EEC:44CE:7","10.25.50.253","apache","Apachegrp"
トラブルシューティング
問題が発生している場所を絞り込むには、次の項目を確認してください。
Feedファイルの有無
FeedのZIPアーカイブが次の場所にあることを確認してください。
/opt/rsa/sms/esmfeed.zip
このファイルは変更しないでください。
Log Decoderが使用するグループ メタ
グループ メタがLog Decoderに読み込まれていることを確認します。Log DecoderのRESTにアクセスし、logstatsを確認します。
http://LogDecoderIP:50102/decoder?msg=logStats&force-content-type=text/plain
これはグループの情報が含まれるlogstatsファイルのサンプルです。
device=apache forwarder=NWAPPLIANCE10304 source=1.2.3.4 count=338 lastSeenTime=2015-Feb-04 22:30:19 lastUpdatedTime=2015-Feb-04 22:30:19 groups=IP1234Group,apacheGroup device=apachetomcat forwarder=NWAPPLIANCE10304 source=5.6.7.8 count=1301 lastSeenTime=2015-Feb-04 22:30:19 lastUpdatedTime=2015-Feb-04 22:30:19 groups=AllOtherGroup,ApacheTomcatGroup
グループ情報が太字で表示されています。
Concentratorでのデバイス グループ メタの確認
Device GroupメタがConcentratorに存在し、イベントにdevice.groupフィールドの値が表示されることを確認します。
SMSのログ ファイル
次の場所にあるSMSのログ ファイルをチェックして、情報メッセージやエラー メッセージを確認します。/opt/rsa/sms/logs/sms.log
次に情報メッセージの例を示します。
Feed generator triggered... Created CSV feed file. Created zip feed file. Pushed ESM Feed to LogDeocder : <logdecoder IP>
次にエラー メッセージの例を示します。
Error creating CSV File : <reason>Unable to push the ESM Feed: Unable to create feed zip archive. Failed to add Group in CSV: GroupName: <groupName> : Error: <error> Unable to push the ESM Feed: CSV file is empty, make sure you have al-least on group with al-least one eventsource. Unable to push the ESM Feed: No LogDecoders found. Unable to push the ESM Feed: Unable to push feed file on LogDecoder-<logdecoderIP>Unable to push the ESM Feed: admin@<logdecoderIP>:50002/decoder/parsers received error: The zip archive "/etc/netwitness/ng/upload/<esmfeedfileName>.zip" could not be opened Unable to push the ESM Feed: <reason>
ESMReaderおよびESMAggregatorによるLogstatsデータの読み取りおよび公開を確認
logstatsがcollectdによって収集され、イベント ソース管理モジュールに対して公開されていることを確認します。
ESMReader
- LogDecoderでdebug "true"フラグを/etc/collectd.d/NwLogDecoder_ESM.confに追加します。
# # Copyright (c) 2014 RSA The Security Division of EMC # <Plugin generic_cpp> PluginModulePath "/usr/lib64/collectd" debug "true" <Module "NgEsmReader" "all"> port "56002" ssl "yes" keypath "/var/lib/puppet/ssl/private_keys/d4c6dcd4-6737-4838-a2f7- ba7e9a165aae.pem" certpath "/var/lib/puppet/ssl/certs/d4c6dcd4-6737-4838-a2f7- ba7e9a165aae.pem" interval "600" query "all" <stats> </stats> </Module> <Module "NgEsmReader" "update"> port "56002" ssl "yes" keypath "/var/lib/puppet/ssl/private_keys/d4c6dcd4-6737-4838-a2f7- ba7e9a165aae.pem" certpath "/var/lib/puppet/ssl/certs/d4c6dcd4-6737-4838-a2f7- ba7e9a165aae.pem" interval "60" query "update" <stats> </stats> </Module></Plugin>
- collectd service restart
コマンドを実行します。 - 次のコマンドを実行します。
tail –f /var/log/messages | grep collectd
ESMReaderがlogstatsを読み込んでおり、エラーが発生していないことを確認します。読み取りの問題が発生していると、次のようなエラーが表示されます。
Apr 29 18:47:45 NWAPPLIANCE15788 collectd[14569]: DEBUG: NgEsmReader_all: error getting ESM data for field "groups" from logstat device=checkpointfw1 forwarder=PSRTEST source=1.11.51.212. Reason: <reason>Apr 29 18:58:36 NWAPPLIANCE15788 collectd[14569]: DEBUG: NgEsmReader_update: error getting ESM data for field "forwarder" from logstat device=apachetomcat source=10.31.204.240. Reason: <reason>
ESMAggregator
- NetWitness Suiteで、/etc/collectd.d/ESMAggregator.confの中のverboseフラグのコメントを解除します。
# ESMAggregator module collectd.conf configuration file # # Copyright (c) 2014 RSA The Security Divsion of EMC # <Plugin generic_cpp> PluginModulePath "/usr/lib64/collectd" <Module "ESMAggregator"> verbose 1 interval "60" cache_save_interval "600" persistence_dir "/var/lib/netwitness/collectd" </Module> </Plugin>
- 次を実行します。
collectd service restart。 - 次のコマンドを実行します。
run “tail –f /var/log/messages | grep ESMA
ESMAggregatorのデータを検索し、logstatエントリーがログの中に含まれているかどうかを確認します。
サンプル出力:
Mar 1 02:32:08 NWAPPLIANCE15936 collectd[11203]: ESMAggregator: MetaData[0] logdecoder[0] = d4c6dcd4-6737-4838-a2f7-ba7e9a165aae Mar 1 02:32:08 NWAPPLIANCE15936 collectd[11203]: ESMAggregator: MetaData[1] logdecoder_utcLastUpdate[0] = 1425174451 Mar 1 02:32:08 NWAPPLIANCE15936 collectd[11203]: ESMAggregator: MetaData[2] groups = Cacheflowelff,Mixed Mar 1 02:32:08 NWAPPLIANCE15936 collectd[11203]: ESMAggregator: MetaData[3] logdecoders = d4c6dcd4-6737-4838-a2f7-ba7e9a165aae Mar 1 02:32:08 NWAPPLIANCE15936 collectd[11203]: ESMAggregator: MetaData[4] utcLastUpdate = 1425174451 Mar 1 02:32:08 NWAPPLIANCE15936 collectd[11203]: ESMAggregator: Dispatching ESM stat NWAPPLIANCE15788/esma_update-cacheflowelff/esm_counter-3.3.3.3 with a value of 1752 for NWAPPLIANCE15788/cacheflowelff/esm_counter-3.3.3.3 aggregated from 1 log decoders Mar 1 02:32:08 NWAPPLIANCE15936 collectd[11203]: ESMAggregator: MetaData[0] logdecoder[0] = 767354a8-5e84-4317-bc6a-52e4f4d8bfff Mar 1 02:32:08 NWAPPLIANCE15936 collectd[11203]: ESMAggregator: MetaData[1] logdecoder_utcLastUpdate[0] = 1425174470 Mar 1 02:32:08 NWAPPLIANCE15936 collectd[11203]: ESMAggregator: MetaData[2] groups = Cacheflowelff,Mixed Mar 1 02:32:08 NWAPPLIANCE15936 collectd[11203]: ESMAggregator: MetaData[3] logdecoders = 767354a8-5e84-4317-bc6a-52e4f4d8bfff Mar 1 02:32:08 NWAPPLIANCE15936 collectd[11203]: ESMAggregator: MetaData[4] utcLastUpdate = 1425174470 Mar 1 02:32:08 NWAPPLIANCE15936 collectd[11203]: ESMAggregator: Dispatching RRD stat NWAPPLIANCE15788/esma_rrd-cacheflowelff/esm_counter-3.3.3.3 with a value of 1752 for NWAPPLIANCE15788/cacheflowelff/esm_counter-3.3.3.3 aggregated from 1 log
JMX Feedジェネレータ ジョブのインターバルの構成
Feedジェネレーター ジョブはデフォルトでは1分ごとに実行されるようスケジュールされています。必要に応じてjconsoleを使用してこれを変更できます。
Feedジェネレータ ジョブのインターバルを変更するには、次の手順を実行します。
- SMSサービス用のjconsoleを開きます。
- [MBeans]タブで、[com.rsa.netwitness.sms]>[API]>[esmConfiguration]>[Attributes]に移動します。
- FeedGeneratorJobIntervalInMinutesプロパティの値を変更します。
- 同じナビゲーション ツリーの下にある[Operations]で[commit()]をクリックします。この操作により、/opt/rsa/sms/confにある対応するjsonファイルに新しい値が永続的に設定され、SMS再起動時にはこの値が使用されます。
新しい値を設定すると、新しいインターバルでFeedジェネレータージョブが再スケジュールされます。