Here are some key considerations for architecting a Splunk application:
- Define a data model and taxonomy - Map data sources to common schemas and entities. This allows for unified search, reporting and alerts.
- Partition data appropriately - Separate apps by function, team, data type or other logical boundaries. Consider security, scalability and maintenance.
- Choose input methods based on data volume and type - Streaming for high volume, modular/scripted for custom parsing. Consider HTTP Event Collector, TCP or file monitors.
- Design for scalability - Distribute data and workloads across multiple Splunk instances. Consider sharding, clustering, load balancing.
- Implement modular and reusable components - Custom searches, lookups