مؤشر التدفق
flow-indexer indexes flows
Usage:
flow-indexer [command]
Available Commands:
compact Compact the database
daemon Start daemon
expandcidr Expand a CIDR range from those seen in the database
index Index flows
search Search flows
help Help about any command
Flags:
--dbpath="flows.db": Database path
-h, --help[=false]: help for flow-indexer
Use "flow-indexer [command] --help" for more information about a command.
$ export GOPATH=~/go
$ go get github.com/JustinAzoff/flow-indexer
$ cp ~/go/src/github.com/JustinAzoff/flow-indexer/example_config.json config.json
$ vi config.json # Adjust log paths and database paths.
تكوين المفهرس كما يلي:
العامل الحاسم لكيفية تقسيم قواعد البيانات هو عدد IPs الفريدة التي تراها يوميًا. أقترح البدء مع فهارس شهرية. إذا كان أداء الفهرسة قد حصل على ضربة هائلة بنهاية الشهر ، فقم بالتبديل إلى الفهارس اليومية.
سيقوم الأمر indexall بتوسيع FILE_GLOB وفهرسة أي ملف سجل يتطابق.
$ ~/go/bin/flow-indexer indexall
بمجرد اكتمال الفهرس الأولي ، ابدأ الخفي. سيقوم بدء تشغيل Daemon بتوسيع regly_file_glob وفهرس أي ملف سجل تم إنشاؤه مؤخرًا يتطابق.
$ ~/go/bin/flow-indexer daemon
سيفعل ذلك في حلقة 60 ثانية للحفاظ على محدثة.
$ curl -s 'localhost:8080/search?i=conn&q=1.2.3.0/24'
$ curl -s 'localhost:8080/dump?i=conn&q=1.2.3.0/24'
$ curl -s 'localhost:8080/stats?i=conn&q=1.2.3.0/24'
مؤمن تدفق الجري كخدمة
لتشغيل مجموعة التدفق كخدمة على نظام باستخدام SystemD ، يمكنك استخدام ملف Servel-Indexer.service.
إذا كنت تخطط لتشغيل مؤشر التدفق كخدمة على نظام يستخدم Upstart ، فقد ترغب في النظر في ملف Conf مثل ما يلي من أجل Syslog STDOUT و STDERR بشكل صحيح من مؤشر التدفق ، وتشغيله كمستخدم غير الجذر.
# flow-indexer - Flow Indexer
#
# flow-indexer is a service that indexes and allows retrieval of flows using bro logs
description "Flow Indexer Daemon"
start on runlevel [345]
stop on runlevel [!345]
setuid flowindexer
setgid flowindexer
exec /path/to/bin/flow-indexer daemon --config /path/to/flow-indexer/config.json 2>&1 | logger -t flow-indexer
من أجل تجنب too many open files ، قد ترغب في زيادة عدد الملفات المفتوحة التي تسمح للمستخدم الذي يعمل به مجموعة التدفق التي يتم تشغيلها. يمكن القيام بذلك عن طريق تغيير إعداد nofile في /etc/security/limits.conf كما هو موضح أدناه.
flowindexer soft nofile 65535
flowindexer hard nofile 65535
لم تعد تستخدم حقًا في الممارسة العملية ، فإن الخفي هو الطريقة الموصى بها لاستخدام مؤشر التدفق. ولكن هذه الأوامر يمكن أن تكون مفيدة للاختبار والتطوير.
./flow-indexer --dbpath /tmp/f/flows.db index /tmp/f/conn*
2016/02/06 23:36:51 /tmp/f/conn.00:00:00-01:00:00.log.gz: Read 4260 lines in 24.392765ms
2016/02/06 23:36:51 /tmp/f/conn.00:00:00-01:00:00.log.gz: Wrote 281 unique ips in 2.215219ms
2016/02/06 23:36:51 /tmp/f/conn.01:00:00-02:00:00.log.gz: Read 4376 lines in 24.186168ms
2016/02/06 23:36:51 /tmp/f/conn.01:00:00-02:00:00.log.gz: Wrote 310 unique ips in 1.495277ms
[...]
2016/02/06 23:36:51 /tmp/f/conn.22:00:00-23:00:00.log.gz: Read 7799 lines in 18.350788ms
2016/02/06 23:36:51 /tmp/f/conn.22:00:00-23:00:00.log.gz: Wrote 775 unique ips in 5.155262ms
2016/02/06 23:36:51 /tmp/f/conn.23:00:00-00:00:00.log.gz: Read 5255 lines in 15.296847ms
2016/02/06 23:36:51 /tmp/f/conn.23:00:00-00:00:00.log.gz: Wrote 400 unique ips in 2.910344ms
./flow-indexer --dbpath /tmp/f/flows.db index /tmp/f/conn*
2016/02/06 23:37:36 /tmp/f/conn.00:00:00-01:00:00.log.gz Already indexed
2016/02/06 23:37:36 /tmp/f/conn.01:00:00-02:00:00.log.gz Already indexed
2016/02/06 23:37:36 /tmp/f/conn.02:00:00-03:00:00.log.gz Already indexed
2016/02/06 23:37:36 /tmp/f/conn.03:00:00-04:00:00.log.gz Already indexed
[...]
2016/02/06 23:37:36 /tmp/f/conn.20:00:00-21:00:00.log.gz Already indexed
2016/02/06 23:37:36 /tmp/f/conn.21:00:00-22:00:00.log.gz Already indexed
2016/02/06 23:37:36 /tmp/f/conn.22:00:00-23:00:00.log.gz Already indexed
2016/02/06 23:37:36 /tmp/f/conn.23:00:00-00:00:00.log.gz Already indexed
./flow-indexer --dbpath /tmp/f/flows.db expandcidr 192.30.252.0/24
192.30.252.86
192.30.252.87
192.30.252.92
192.30.252.124
192.30.252.125
192.30.252.126
192.30.252.127
192.30.252.128
192.30.252.129
192.30.252.130
192.30.252.131
192.30.252.141
./flow-indexer --dbpath /tmp/f/flows.db search 192.30.252.0/24
/tmp/f/conn.03:00:00-04:00:00.log.gz
/tmp/f/conn.04:00:00-05:00:00.log.gz
/tmp/f/conn.06:00:00-07:00:00.log.gz
/tmp/f/conn.14:00:00-15:00:00.log.gz
/tmp/f/conn.18:00:00-19:00:00.log.gz
/tmp/f/conn.20:00:00-21:00:00.log.gz
/tmp/f/conn.22:00:00-23:00:00.log.gz