J'ai eu comme défi de surveiller les journaux de nos applications avec OSSEC.
Ce fut plus aisé que prévu !
Premièrement, j'ai ajouté les décodeurs suivants dans /var/ossec/etc/decoder.xml :
<decoder name="tomcat-SEVERE">
<prematch>^SEVERE:</prematch>
<regex offset="after_prematch">\.+</regex>
<order>extra_data</order>
</decoder>
<decoder name="log4j-ERROR">
<prematch>^\d+\s\p\w+\p\s\d+\p\d+\p\d+\s\d+\p\d+\p\d+\p\d+\s+ERROR</prematch>
<regex offset="after_prematch">^ (\S+) - (\S+) - (\.+)</regex>
<order>extra_data, extra_data, extra_data</order>
</decoder>
<decoder name="log4j-TRACE">
<prematch>^\d+\s\p\w+\p\s\d+\p\d+\p\d+\s\d+\p\d+\p\d+\p\d+\s+TRACE</prematch>
<regex offset="after_prematch">\.+</regex>
<order>extra_data</order>
</decoder>
<decoder name="log4j-INFO">
<prematch>^\d+\s\p\w+\p\s\d+\p\d+\p\d+\s\d+\p\d+\p\d+\p\d+\s+INFO</prematch>
<regex offset="after_prematch">\.+</regex>
<order>extra_data</order>
</decoder>
<decoder name="log4j-DEBUG">
<prematch>^\d+\s\p\w+\p\s\d+\p\d+\p\d+\s\d+\p\d+\p\d+\p\d+\s+DEBUG</prematch>
<regex offset="after_prematch">\.+</regex>
<order>extra_data</order>
</decoder>
Puis, côté agent, la ligne suivante a été ajoutée à /var/ossec/etc/ossec.conf :
<localfile>
<log_format>multi-line:2</log_format>
<location>/var/log/tomcat7/catalina.out</location>
</localfile>
Sur le serveur, j'ai testé avec l'outil ossec-logtest une entrée du journal.
Enfin, pour finaliser le tout, la création de règle est obligatoire, donc dans /var/ossec/rules j'ai créé un nouveau fichier de règles que j'ai nommé tomcat_rules.xml et qui va comme suit :
<rule id="100002" level="5">
<decoded_as>log4j-ERROR</decoded_as>
<description>Error in Tomcat application</description>
</rule>
<rule id="100003" level="12">
<decoded_as>tomcat-SEVERE</decoded_as>
<description>Severe error in Tomcat container</description>
</rule>