{"id":296,"date":"2007-04-10T03:51:10","date_gmt":"2007-04-10T03:51:10","guid":{"rendered":"https:\/\/defragged.org\/ossec\/?p=296"},"modified":"2020-07-03T03:52:00","modified_gmt":"2020-07-03T03:52:00","slug":"ossec-performance-v2","status":"publish","type":"post","link":"https:\/\/defragged.org\/ossec\/2007\/04\/ossec-performance-v2\/","title":{"rendered":"OSSEC performance (v2)"},"content":{"rendered":"\n<p>During the release of&nbsp;<a href=\"https:\/\/dcid.me\/dcid\/?p=37\">ossec v1.0<\/a>, I posted some&nbsp;<a href=\"https:\/\/dcid.me\/dcid\/?p=38\">performance numbers<\/a>&nbsp;regarding that version. Even though I know most performance tests do not prove anything per se, I was able to see how many events per second an old&nbsp;<em>PIII<\/em>&nbsp;box with 512M of ram could handle.<\/p>\n\n\n\n<p>Recently, I finished doing multiple performance improvements to&nbsp;<a href=\"http:\/\/www.ossec.net\/\">ossec<\/a>&nbsp;and I decided to re-run this test using the latest available CVS version.<\/p>\n\n\n\n<p>I took the same steps as before, basically sending as many logs as possible to&nbsp;<strong>analysisd<\/strong>&nbsp;(main ossec process) and checking&nbsp;<strong>\/var\/ossec\/stats\/totals<\/strong>&nbsp;to see how many logs it was able to process per second.<\/p>\n\n\n\n<h3>Test setup:<\/h3>\n\n\n\n<p>I created 5 ossec configurations for logcolletor and initiated one separated daemon for each config. Each process was monitoring one log file. The operating system was OpenBSD 3.9 on an old PIII 700 with 512M of RAM.<strong><br># \/var\/ossec\/bin\/ossec-logcollector -c \/var\/ossec\/etc\/log1.conf<br># \/var\/ossec\/bin\/ossec-logcollector -c \/var\/ossec\/etc\/log2.conf<br># \/var\/ossec\/bin\/ossec-logcollector -c \/var\/ossec\/etc\/log3.conf<br># \/var\/ossec\/bin\/ossec-logcollector -c \/var\/ossec\/etc\/log4.conf<br># \/var\/ossec\/bin\/ossec-logcollector -c \/var\/ossec\/etc\/log5.conf<\/strong><\/p>\n\n\n\n<p><strong># tail \/var\/ossec\/logs\/ossec.log<br><\/strong><em>2007\/01\/20 15:14:49 ossec-logcollector(1956): Analyzing file: \u2018\/data\/test-logs\/log1\u2032.<br>2007\/01\/20 15:14:50 ossec-logcollector(20567): Analyzing file: \u2018\/data\/test-logs\/log2\u2032.<br>..<br>2007\/01\/20 15:14:56 ossec-logcollector(32102): Analyzing file: \u2018\/data\/test-logs\/log5\u2032.<br>2007\/01\/20 15:14:56 ossec-logcollector: Started (pid: 15448).<\/em><\/p>\n\n\n\n<p><strong># cat \/var\/ossec\/etc\/log1.conf<\/strong><br><em><br>&lt;ossec_config&gt;<br>&lt;localfile&gt;<br>&lt;log_format&gt;syslog&lt;\/log_format&gt;<br>&lt;ocation&gt;\/data\/test-logs\/log1&lt;\/location&gt;<br>&lt;\/localfile&gt;<br>&lt;\/ossec_config&gt;<\/em><\/p>\n\n\n\n<p>To be fair, I chose 5 different log formats and wrote a simple script to keep filling the logs as faster as possible.<\/p>\n\n\n\n<p><strong># cd \/data\/test-logs<br># while [ 1 ]; do .\/fill-logs.sh; done<br># cat fill-logs.sh<br><\/strong><em>cat PIX-sample &gt;&gt; log1 &amp;<br>cat accesslog-sample &gt;&gt; log2 &amp;<br>cat authlog-sample &gt;&gt; log3 &amp;<br>cat messages-sample &gt;&gt; log4<br>cat squid-sample &gt;&gt; log5<\/em><\/p>\n\n\n\n<h3>Test results:<\/h3>\n\n\n\n<p>To my surprise, my changes made a great improvement to the overall ossec performance. Previously, ossec was able to handle in average&nbsp;<strong>1,238,000<\/strong>&nbsp;events per hour (or&nbsp;<strong>340 per second<\/strong>).<\/p>\n\n\n\n<p>On the latest CVS version, this number jumped to&nbsp;<strong>2,100,000<\/strong>events per hour (or&nbsp;<strong>600 per second<\/strong>).&nbsp;<em>This is a big jump<\/em>! Note that I am using&nbsp;<strong>real data<\/strong>&nbsp;and that this sample is generating an average of&nbsp;<strong>1,000,000<\/strong>&nbsp;alerts per hour (<em>rate or 1 alert per 2 events<\/em>). On a&nbsp;<em>normal<\/em>&nbsp;environment this value would be much lower.<\/p>\n\n\n\n<h3>Summarized stats output from the UI:<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\"><em>\nHour  \t         Alerts  \tAlerts %  \tTotal  \tTotal %\nHour 14  \t1,046,427  \t5.0%   \t2,140,978  \t5.2%\nHour 15 \t1,034,108 \t4.9% \t2,142,076 \t5.2%\nHour 16 \t1,041,571 \t5.0% \t2,096,306 \t5.1%\nHour 17 \t1,016,219 \t4.8% \t2,048,642 \t5.0%\n<\/em><\/pre>\n\n\n\n<h3>Performance values per version:<\/h3>\n\n\n\n<p><em>*on a PIII, 512RAM, OpenBSD 3.9<\/em><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Version 1.0           1,238,000 per hour     340 per second\nVersion 1.2           2,100,000 per hour     600 per second<\/pre>\n\n\n\n<p>If you have some spares systems to execute a similar test, let us know how it goes and we will publish the results.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>During the release of&nbsp;ossec v1.0, I posted some&nbsp;performance numbers&nbsp;regarding that version. Even though I know most performance tests do not prove anything per se, I was able to see how many events per second an old&nbsp;PIII&nbsp;box with 512M of ram could handle. Recently, I finished doing multiple performance improvements to&nbsp;ossec&nbsp;and I decided to re-run this [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4],"tags":[],"_links":{"self":[{"href":"https:\/\/defragged.org\/ossec\/wp-json\/wp\/v2\/posts\/296"}],"collection":[{"href":"https:\/\/defragged.org\/ossec\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/defragged.org\/ossec\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/defragged.org\/ossec\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/defragged.org\/ossec\/wp-json\/wp\/v2\/comments?post=296"}],"version-history":[{"count":1,"href":"https:\/\/defragged.org\/ossec\/wp-json\/wp\/v2\/posts\/296\/revisions"}],"predecessor-version":[{"id":297,"href":"https:\/\/defragged.org\/ossec\/wp-json\/wp\/v2\/posts\/296\/revisions\/297"}],"wp:attachment":[{"href":"https:\/\/defragged.org\/ossec\/wp-json\/wp\/v2\/media?parent=296"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/defragged.org\/ossec\/wp-json\/wp\/v2\/categories?post=296"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/defragged.org\/ossec\/wp-json\/wp\/v2\/tags?post=296"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}