This all started when I asked the powers that be if I could purge the old data. I was then given the orders to retain everything for one year. :(
I did try the beta version on this and it performed the same, but I might reload it because of the following changes I made.
Right now we have about 7 million entries from our firewalls in the message table alone. They are busy, some days over 200 hits a second. The issue is that now they want to add all the switches, servers, xenservers etc. It has required a rethink of the whole setup. It just isn't fast enough and had some issues if I was quering the db, entries would be dropped. In the default rsyslog will only retry once, then it drops the updated packet. So I enabled rsyslog que
Rsyslog was changed to allow caching if the Mariadb is off line. Add the following lines to the rsyslog.conf and create the folder listed, with proper access.
From
http://www.rsyslog.com/doc/rsyslog_high ... _rate.html$WorkDirectory /rsyslog/work # default location for work (spool) files
$MainMsgQueueFileName mainq # set file name, also enables disk mode
$ActionResumeRetryCount -1 # infinite retries on insert failure
$ActionQueueType LinkedList # use asynchronous processing
$ActionQueueFileName dbq # set file name, also enables disk mode
The create DB script puts the message column in the SystemEvents table in as text, and this makes all searches slooow. It may do this for other columns but I haven't look into it yet.
I modify the Database as follows:
Idea From
http://stackoverflow.com/questions/6148 ... type-alterFrom Mysql client on linux server:
alter table t1 modify column name varchar(255);
However I used phpmyadmin to modify the rsyslogdb, table SystemEvents, Column Message. Clicked change, then selected varchar and 255 characters. hit ok and let it sit and sit and sit, took about 20 minutes.
Now searches for * take 38 seconds with Enable Row Counting checked to finish. Before it would take almost 5 minutes. It does take about 20 seconds to go to the next page though you wouldn't really want to.
Next step is to add an additional rsyslog server to funnel log transactions to the db server. Then before it gets to large ad a slave db server