universalforwarderからindexerにデータを転送している環境で、host情報等をもとに保存先のIndexを分ける方法を教えて下さい。
例えば、以下をUniversalforwarder上に設定するとすべてのデータはmainというIndexに取り込まれます。
$ cat inputs.conf
[monitor:///Users/me/test/data/tutorialdata]
disabled = false
index = main
host_segment = 6
$ ./splunk/bin/splunk search 'index=* | stats count by index host sourcetype' -auth admin:changeme
index host sourcetype count
----- ------------ ----------------------- -----
main mailsv secure 9829
main vendor_sales vendor_sales 30244
main www1 access_combined_wcookie 13628
main www1 secure 10593
main www2 access_combined_wcookie 12912
main www2 secure 9683
main www3 access_combined_wcookie 12992
main www3 secure 9983
この場合のhostを元に、例えば、hostがwww1の時はindex1へ、hostがwww2の時はindex2へ、など分けたい場合はどのように設定したらいいでしょうか。
ちなみに、サンプルとして利用しているデータはtutorialでダウンロードできるログです。
UF→Indexerと転送する過程で、保存するIndexを書き換える場合は、indexer上で設定を実施します。
以下のようにprops.confとtransforms.confを用意していただいて、UFから転送されたログのhost情報を参照しながら、
保存先indexを変更します。今回の場合は、UF側でIndexの指定がされていないので、デフォルトのindexに保存されるとおもいます。
$ cat props.conf
[host::www1]
TRANSFORMS-to_index1 = to_index1
[host::www2]
TRANSFORMS-to_index2 = to_index2
[host::www3]
TRANSFORMS-to_index3 = to_index3
$ cat transforms.conf
[to_index1]
REGEX = .*
DEST_KEY = _MetaData:Index
FORMAT = index1
[to_index2]
REGEX = .*
DEST_KEY = _MetaData:Index
FORMAT = index2
[to_index3]
REGEX = .*
DEST_KEY = _MetaData:Index
FORMAT = index3
以上を設定して、以下の設定をUFにしてサーチをおこなうと、www1がindex1、www2がindex2、www3がindex3にIndexされるようになります。なお、Index1/2/3は自動的に作成されるわけではなく、予め準備しておく必要があります。
$ ./splunk/bin/splunk search 'index=* | stats count by index host sourcetype' -auth admin:changeme
index host sourcetype count
------ ------------ ----------------------- -----
index1 www1 access_combined_wcookie 13628
index1 www1 secure 10593
index2 www2 access_combined_wcookie 12912
index2 www2 secure 9683
index3 www3 access_combined_wcookie 12992
index3 www3 secure 9983
main mailsv secure 9829
main vendor_sales vendor_sales 30244
ちなみに、transforms.confを利用することで、実際のログの内容を見ながらIndex保存先の振り分け等ができますので、以下参考にしてみてください。
http://answers.splunk.com/answers/50761/how-do-i-route-data-to-specific-index-based-on-a-field.html
また、transforms.confの設定方法やサンプルは以下に記載されております。とくにhost, source, sourcetype, indexを参照される際、SOURCE_KEYやDEST_KEY、REGEXあたりをみていただければと思います。
http://docs.splunk.com/Documentation/Splunk/latest/admin/Transformsconf
UF→Indexerと転送する過程で、保存するIndexを書き換える場合は、indexer上で設定を実施します。
以下のようにprops.confとtransforms.confを用意していただいて、UFから転送されたログのhost情報を参照しながら、
保存先indexを変更します。今回の場合は、UF側でIndexの指定がされていないので、デフォルトのindexに保存されるとおもいます。
$ cat props.conf
[host::www1]
TRANSFORMS-to_index1 = to_index1
[host::www2]
TRANSFORMS-to_index2 = to_index2
[host::www3]
TRANSFORMS-to_index3 = to_index3
$ cat transforms.conf
[to_index1]
REGEX = .*
DEST_KEY = _MetaData:Index
FORMAT = index1
[to_index2]
REGEX = .*
DEST_KEY = _MetaData:Index
FORMAT = index2
[to_index3]
REGEX = .*
DEST_KEY = _MetaData:Index
FORMAT = index3
以上を設定して、以下の設定をUFにしてサーチをおこなうと、www1がindex1、www2がindex2、www3がindex3にIndexされるようになります。なお、Index1/2/3は自動的に作成されるわけではなく、予め準備しておく必要があります。
$ ./splunk/bin/splunk search 'index=* | stats count by index host sourcetype' -auth admin:changeme
index host sourcetype count
------ ------------ ----------------------- -----
index1 www1 access_combined_wcookie 13628
index1 www1 secure 10593
index2 www2 access_combined_wcookie 12912
index2 www2 secure 9683
index3 www3 access_combined_wcookie 12992
index3 www3 secure 9983
main mailsv secure 9829
main vendor_sales vendor_sales 30244
ちなみに、transforms.confを利用することで、実際のログの内容を見ながらIndex保存先の振り分け等ができますので、以下参考にしてみてください。
http://answers.splunk.com/answers/50761/how-do-i-route-data-to-specific-index-based-on-a-field.html
また、transforms.confの設定方法やサンプルは以下に記載されております。とくにhost, source, sourcetype, indexを参照される際、SOURCE_KEYやDEST_KEY、REGEXあたりをみていただければと思います。
http://docs.splunk.com/Documentation/Splunk/latest/admin/Transformsconf