1. A method by a computer comprising: partitioning each log stream of a plurality of log streams from a plurality of software sources executed by host nodes into records having defined intervals, each log stream having a template part and an attribute part; for each of the records, performing: responsive to a template from among a set of templates in a templates index repository based on an identifier for the record not existing; generating a new template having terms corresponding to content of the record and adding the new template to the set of templates in the templates index repository, wherein the templates index repository is generated as a union of all records that have the same template in a defined time period, responsive to a template from among a set of templates in the templates index repository based on an identifier for the record existing, selecting the template from among the set of templates in the templates index repository based on an identifier for the record being associated in the templates index repository with the template, the template being an invariant part of the record, identifying an attribute contained in the record based on the template, the attribute being a variant part of the record, and storing the attribute associated with an identifier for the record and an identifier for the template in an attributes index repository; receiving, via a network, a search query from a requesting device, the search query containing a search term and a time period; searching the templates index repository to identify a plurality of the templates from among the set of templates in the templates index repository based on content of the search query and the time period; and for each of the plurality of the templates that are identified, performing: identifying one of the attributes contained in the attributes index repository that is associated with an identifier for the template and satisfies the search term, obtaining from the attributes index repository the identifier for the record associated with the one of the attributes, retrieving the record using the identifier for the record that was obtained from the attributes index repository, and outputting the record as a response to the search query and transmitting the record via the network to the requesting device.
5. The method of claim 1 , wherein identifying the attribute contained in the record based on the template, comprises: determining a location of the attribute within the record based on the template.