Difference between revisions of "Writing advanced adapters"
| Line 9: | Line 9: | ||
**Write the output to stdout | **Write the output to stdout | ||
*KHIKA Data Aggregator ''pipes'' the output of the Aggregator script and send it to KHIKA over a SSL connection | *KHIKA Data Aggregator ''pipes'' the output of the Aggregator script and send it to KHIKA over a SSL connection | ||
| + | |||
| + | |||
| + | With these concepts in mind, let proceed with an example of a production ready KHIKA Data Adapter. Login to your KHIKA Data Aggregator node (default username/password is khika/khika123). We will study a syslog based adapter that processes the messages received from a PaloAlto Firewall. Open file TLHook_Adaptor_PaloAlto.py from directory /opt/KHIKA/Apps/Adapters/PaloAltoFW. | ||
| + | |||
| + | Check first few lines of this file where we import some important python modules | ||
| + | 1 #!/bin/env python | ||
| + | 2 import os, sys | ||
| + | 3 import socket | ||
| + | 4 import csv,StringIO | ||
| + | 5 import logging | ||
| + | 6 import re | ||
| + | 7 import time | ||
| + | 8 from time import strptime | ||
| + | 9 from datetime import datetime | ||
| + | 10 import random | ||
| + | 11 import calendar | ||
| + | 12 from ipaddress import IPv4Network,IPv4Address | ||
| + | 13 import pdb | ||
| + | |||
| + | |||
| + | Go the bottom of this file and locate function "__main__". This is start of execution of the code. | ||
Revision as of 08:10, 31 May 2019
After understanding Khika Data Format and going through the initial exercise of Writing you own KHIKA Data Adapters , it is the time to create a production level KHIKA Adapter. A few points to note here before we begin writing our own Adapter:
- Adapters are scripts that execute on KHIKA Data Aggregator
- Adapters can be written in any programming language (our favorite is python 2.7)
- Adapters are scheduled processes and KHIKA Data Aggregator is responsible for scheduling them to run at a periodic interval (typically 1 minute to 5 minutes)
- The Adapter scripts
- read the raw log messages one-by-one (from source such as files, queues, APIs, Databases etc),
- parse the log messages,
- convert it in Khika Data Format
- Write the output to stdout
- KHIKA Data Aggregator pipes the output of the Aggregator script and send it to KHIKA over a SSL connection
With these concepts in mind, let proceed with an example of a production ready KHIKA Data Adapter. Login to your KHIKA Data Aggregator node (default username/password is khika/khika123). We will study a syslog based adapter that processes the messages received from a PaloAlto Firewall. Open file TLHook_Adaptor_PaloAlto.py from directory /opt/KHIKA/Apps/Adapters/PaloAltoFW.
Check first few lines of this file where we import some important python modules
1 #!/bin/env python
2 import os, sys
3 import socket
4 import csv,StringIO
5 import logging
6 import re
7 import time
8 from time import strptime
9 from datetime import datetime
10 import random
11 import calendar
12 from ipaddress import IPv4Network,IPv4Address
13 import pdb
Go the bottom of this file and locate function "__main__". This is start of execution of the code.