{"id":438,"date":"2014-05-29T13:14:16","date_gmt":"2014-05-29T03:14:16","guid":{"rendered":"https:\/\/girl-germs.com\/?p=438"},"modified":"2016-08-30T10:48:42","modified_gmt":"2016-08-30T00:48:42","slug":"building-up-a-logging-server-oss-style","status":"publish","type":"post","link":"https:\/\/girl-germs.com\/?p=438","title":{"rendered":"Building up a logging server &#8211; OSS style!"},"content":{"rendered":"<p>So &#8211; I wanted to get Splunk but in my organisation that was never going to happen (you want something that costs MONEY?! Ludicrous!) So we had to come up with a compromise. A colleague of mine went hunting for some open source logging software and found that the combination of Elastic Search, LogStash, Kibana and nxLog worked well. He tested it on his PC, wrote a few lines on how to get it roughly working and then sent it through to me to get it working from a server perspective. (Hi Ken! ^_^)<\/p>\n<p>I&#8217;ve just recently finished the base setup (with a little assistance) and it&#8217;s getting information from our production, test and development\u00a0AD DC&#8217;s\u00a0and WOAH do they waffle a lot. So after posting on Twitter that I&#8217;d got this working (because I was excited I&#8217;d got it working&#8230;duh!) someone asked me to do a blog post on the setup. So this is that blog post. I&#8217;ve written this in a way that anyone else with basic Windows Server knowledge could install this if required &#8211; yes, it is dumbed down a bit in some areas, but that&#8217;s because I wrote it to be as idiot-proof as possible.<\/p>\n<p><strong>UPDATE\u00a0(3rd August 2016)<\/strong> &#8211; This document has now been updated with details regarding the most recent ELK stack. I have recently done an install using the instructions of ElasticSearch 2.3.4, LogStash 2.3.4 &amp; Kibana 4.5.3.<\/p>\n<p>Software used:<\/p>\n<ul>\n<li><a href=\"http:\/\/www.oracle.com\/technetwork\/java\/javase\/downloads\/server-jre7-downloads-1931105.html\">Java JRE<\/a><\/li>\n<li><a href=\"http:\/\/www.elasticsearch.org\/overview\/elkdownloads\/\">ElasticSearch<\/a><\/li>\n<li><a href=\"http:\/\/www.elasticsearch.org\/overview\/elkdownloads\/\">Kibana<\/a><\/li>\n<li><a href=\"http:\/\/www.elasticsearch.org\/overview\/elkdownloads\/\">LogStash<\/a><\/li>\n<li><a href=\"http:\/\/sourceforge.net\/projects\/nxlog-ce\/files\/\">nxLog<\/a><\/li>\n<\/ul>\n<p>Other basic setup (specific to the environment we setup):<\/p>\n<ul>\n<li>Virtual Server<\/li>\n<li>Windows Server 2012<\/li>\n<li>2vCPU<\/li>\n<li>4GB RAM<\/li>\n<li>Two HDD &#8211; C: &amp; D: (disk space is up to you &#8211; the more you give it, the more logs you can stash!)<\/li>\n<\/ul>\n<h2><strong>Log Server Installation Instructions\u00a0<\/strong><\/h2>\n<h3><span style=\"text-decoration: underline;\">Folder creations<\/span><\/h3>\n<ul>\n<li>On C: drive\n<ul>\n<li>Create a C:\\Program Files\\Java\\jdk[version number]<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li>On D: drive\n<ul>\n<li>Create a D:\\LogData directory (or whatever you want to call where you dump your logs)<\/li>\n<li>Create a D:\\ElasticSearch directory<\/li>\n<li>Create a D:\\Kibana directory<\/li>\n<li>Create a D:\\LogStash<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3><span style=\"text-decoration: underline;\">Create a Service Account<\/span><\/h3>\n<ul>\n<li>In your domain:\n<ul>\n<li>Create a new user\u00a0service account user<\/li>\n<\/ul>\n<\/li>\n<li>On the LogServer\n<ul>\n<li>Add the new user to the &#8216;Administrators&#8217; group (yes, I know this is ugly and dirty, but it was the quickest and easiest way to get this up and running without having to mess too much with permissions)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3><span style=\"text-decoration: underline;\">Install Java JRE<\/span><\/h3>\n<ul>\n<li>Extract Java JRE to C:\\Program Files\\Java\\jdk[version number]<\/li>\n<li>Set up a system environment variable\n<ul>\n<li>Right-click on &#8216;My Computer<\/li>\n<li>Select &#8216;Properties&#8217;<\/li>\n<li>Click on &#8220;Advanced system settings&#8221;<\/li>\n<li>Select the &#8216;Advanced&#8217; tab<\/li>\n<li>Click on &#8216;Environment Variables&#8230;&#8217;<\/li>\n<li>Under &#8216;System variables&#8217; click &#8216;New&#8230;&#8217;<\/li>\n<li>Enter the following:\n<ul>\n<li>Variable name: JAVA_HOME<\/li>\n<li>Variable value: C:\\Program Files\\Java\\jdk\\jre<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Java is now installed and the variables required for the LogServer set.<\/p>\n<h3><span style=\"text-decoration: underline;\">Install ElasticSearch<\/span><\/h3>\n<ul>\n<li>Extract the downloaded <a href=\"http:\/\/www.elasticsearch.org\/overview\/elkdownloads\/\">ElasticSearch <\/a>files to D:\\ElasticSearch<\/li>\n<li>Edit the D:\\ElasticSearch\\config\\elasticsearch.yml file\n<ul>\n<li>Set the cluster.name to \u201c[clustername]\u201d (Take note of what you do use &#8211; this will be useful if you decide to add in more ElasticSearch servers later)<\/li>\n<li>Set the path.data option to D:\\LogData<\/li>\n<\/ul>\n<\/li>\n<li>Edit the D:\\ElasticSearch\\bin\\service.bat file\n<ul>\n<li>Under the REM ***** JAVA options ***** add in an entry \u201cset ES_MAX_MEM=4g\u201d. (or however much memory you want it to use &#8211; we gave it access to everything because it is the only service hosted on this server)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li>Set up a firewall rule to allow the ElasticSearch ports\n<ul>\n<li>Open &#8216;Windows Firewall with Advanced Security&#8217;<\/li>\n<li>Select &#8216;Inbound Rules&#8217;<\/li>\n<li>Click &#8216;New Rule&#8230;&#8217;<\/li>\n<li>In the window that appears, select &#8216;Port&#8217; and click &#8216;Next&#8217;<\/li>\n<li>Make sure &#8216;TCP&#8217; is selected and check &#8216;Specific local ports:&#8217;\n<ul>\n<li>9200, 9300<\/li>\n<\/ul>\n<\/li>\n<li>Click &#8216;Next&#8217;<\/li>\n<li>Select &#8216;Allow the connection&#8217; and click &#8216;Next&#8217;<\/li>\n<li>Select all the profiles you want it to use (we selected all three, as we&#8217;ll have logs coming from multiple sources\/multiple domains and from our DMZ)\u00a0and click &#8216;Next&#8217;<\/li>\n<li>Name the rule &#8216;ElasticSearch&#8217; and give it a description (if you so desire)<\/li>\n<li>Click &#8216;Finish&#8217;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li>To test that everything has been configured correctly:\n<ul>\n<li>Open a command prompt (no admin rights needed)<\/li>\n<li>cd to D:\\ElasticSearch and run\n<ul>\n<li>bin\\elasticsearch.bat<\/li>\n<li>If it doesn&#8217;t sit there waiting for input, something isn&#8217;t configured properly &#8211; go back over your configuration to ensure everything has been set correctly<\/li>\n<\/ul>\n<\/li>\n<li>Ctrl+C to quit<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li>Install the ElasticSearch Windows service\n<ul>\n<li>Open a command prompt as an administrator<\/li>\n<li>cd to D:\\ElasticSearch\\bin<\/li>\n<li>Type: service install<\/li>\n<li>The ElasticSearch service is now installed<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li>Configure the ElasticSearch service\n<ul>\n<li>Open &#8216;Services&#8217;<\/li>\n<li>Find the &#8216;ElasticSearch&#8217; service\n<ul>\n<li>If it&#8217;s not present, go back and install the service<\/li>\n<\/ul>\n<\/li>\n<li>Right-click and select &#8216;Properties&#8217;<\/li>\n<li>On the &#8216;General&#8217; tab, change &#8216;Startup type&#8217; to Automatic<\/li>\n<li>On the &#8216;Log On&#8217; tab, change to use the service account you created<\/li>\n<li>Click &#8216;Apply&#8217;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>ElasticSearch will now be running on the server successfully as a service.<\/p>\n<h3><span style=\"text-decoration: underline;\">Install Kibana<\/span><\/h3>\n<p>(Unlike the previous version, Kibana 4.* no longer requires IIS to run and instead runs inside it&#8217;s own webserver, yay!)<\/p>\n<ul>\n<li>Extract the <a href=\"http:\/\/www.elasticsearch.org\/overview\/elkdownloads\/\">Kibana<\/a> files to D:\\Kibana<\/li>\n<li>Edit the Kibana config file:\n<ul>\n<li>Browse to D:\\Kibana\\config<\/li>\n<li>Right-click on &#8216;kibana.yml&#8217; and click &#8216;Edit&#8217;<\/li>\n<li>In the file that opens, edit the line that starts with &#8216;elasticsearch.url:&#8217; to be:\n<ul>\n<li>elasticsearch.url: &#8220;http:\/\/[FQDN of log server]:9200&#8221;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li>Set up a firewall rule to allow the Kibana\u00a0port\n<ul>\n<li>Open &#8216;Windows Firewall with Advanced Security&#8217;<\/li>\n<li>Select &#8216;Inbound Rules&#8217;<\/li>\n<li>Click &#8216;New Rule&#8230;&#8217;<\/li>\n<li>In the window that appears, select &#8216;Port&#8217; and click &#8216;Next&#8217;<\/li>\n<li>Make sure &#8216;TCP&#8217; is selected and check &#8216;Specific local ports:&#8217;\n<ul>\n<li>5601<\/li>\n<\/ul>\n<\/li>\n<li>Click &#8216;Next&#8217;<\/li>\n<li>Select &#8216;Allow the connection&#8217; and click &#8216;Next&#8217;<\/li>\n<li>Select all three profiles (Domain, Private &amp; Public) and click &#8216;Next&#8217;<\/li>\n<li>Name the rule &#8216;Kibana&#8217; and give it a description<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li>Setup the Kibana service to run as a service &#8211; number of ways to do this &#8211; you could install it as a service or use a third-party service manager, but I&#8217;ve chosen the easier &#8220;run a scheduled task&#8221; method:\n<ul>\n<li>Open Task Scheduler<\/li>\n<li>Click &#8216;Create Task&#8230;&#8217;<\/li>\n<li>On the &#8216;General&#8217; tab\n<ul>\n<li>&#8216;Name&#8217; field: Start\u00a0Kibana<\/li>\n<li>Click &#8216;Change User or Group&#8230;&#8217; and select the service account you created earlier<\/li>\n<li>&#8216;Security Options&#8217;, select &#8216;Run whether user is logged on or not&#8217;<\/li>\n<\/ul>\n<\/li>\n<li>On the &#8216;Triggers&#8217; tab\n<ul>\n<li>Select &#8216;New&#8230;&#8217;<\/li>\n<li>Beside &#8216;Begin the task:&#8217; select &#8216;At startup&#8217; and click &#8216;OK&#8217;<\/li>\n<\/ul>\n<\/li>\n<li>On the &#8216;Actions&#8217; tab\n<ul>\n<li>Select &#8216;New&#8230;&#8217;<\/li>\n<li>Beside &#8216;Action:&#8217; select &#8216;Start a program&#8217;\n<ul>\n<li>Program\/script: D:\\Kibana\\bin\\kibana.bat<\/li>\n<li>Start in (optional): D:\\Kibana\\bin<\/li>\n<\/ul>\n<\/li>\n<li>Click &#8216;OK&#8217;<\/li>\n<\/ul>\n<\/li>\n<li>On the &#8216;Settings&#8217; tab\n<ul>\n<li>&#8216;Allow task to be run on demand&#8217; is checked<\/li>\n<li>&#8216;Run task as soon as possible after a schedule start is missed&#8217; is checked<\/li>\n<li>&#8216;If the task fails, restart every:&#8217; 5 minutes<\/li>\n<li>&#8216;Attempt to restart up to:&#8217; 3 times<\/li>\n<li>&#8216;If the running task does not end when requested, force it to stop&#8217; is checked<\/li>\n<\/ul>\n<\/li>\n<li>Click &#8216;OK&#8217;<\/li>\n<li>Put in the password for your service account<\/li>\n<li>Click on the service and select &#8216;Run&#8217;\n<ul>\n<li>The &#8216;Last Run Result&#8217; will display 0x41301 as the kibana.bat file is being run &#8211; this will remain this way unless there is an error (4101 means &#8220;running&#8221;)<\/li>\n<\/ul>\n<\/li>\n<li>Either restart your server or right-click and &#8216;Run&#8217; this scheduled task<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li>To test that everything has been configured correctly:\n<ul>\n<li>Open up a web browser on your PC and browser to: http:\/\/[FQDN of log server]:5601 (if you want to change this, you can modify the port number in the kibana.yml file)<\/li>\n<li>If you cannot access the website, something isn&#8217;t configured correctly (either kibana or elasticsearch) &#8211; go back and check your configuration<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>The Kibana webserver will now be running and can be successfully accessed.<\/p>\n<h3><span style=\"text-decoration: underline;\">Install Logstash<\/span><\/h3>\n<ul>\n<li>Extract the <a href=\"http:\/\/www.elasticsearch.org\/overview\/elkdownloads\/\">LogStash <\/a>files\u00a0to D:\\LogStash<\/li>\n<\/ul>\n<ul>\n<li>Create the LogStash config file (to read from ElasticSearch)\n<ul>\n<li>See below for first &#8216;Update&#8217; regarding our configuration; basic configuration information can be found <a href=\"https:\/\/www.elastic.co\/guide\/en\/logstash\/current\/configuration.html\">here <\/a>from Elastic<\/li>\n<li>Place this file in D:\\LogStash<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li>Set up a firewall rule to allow the LogStash port\n<ul>\n<li>Open &#8216;Windows Firewall with Advanced Security&#8217;<\/li>\n<li>Select &#8216;Inbound Rules&#8217;<\/li>\n<li>Click &#8216;New Rule&#8230;&#8217;<\/li>\n<li>In the window that appears, select &#8216;Port&#8217; and click &#8216;Next&#8217;<\/li>\n<li>Make sure &#8216;TCP&#8217; is selected and check &#8216;Specific local ports:&#8217;\n<ul>\n<li>3515<\/li>\n<\/ul>\n<\/li>\n<li>Click &#8216;Next&#8217;<\/li>\n<li>Select &#8216;Allow the connection&#8217; and click &#8216;Next&#8217;<\/li>\n<li>Select all three profiles (Domain, Private &amp; Public) and click &#8216;Next&#8217;<\/li>\n<li>Name the rule &#8216;LogStash&#8217; and give it a description<\/li>\n<li>Click &#8216;Finish&#8217;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li>To test\n<ul>\n<li>Open a command prompt (no admin rights needed)<\/li>\n<li>cd to D:\\LogStash and run\n<ul>\n<li>bin\\logstash.bat agent -f logstash.conf<\/li>\n<li>If it doesn&#8217;t sit there waiting for input, something isn&#8217;t configured properly &#8211; go back over your configuration to ensure everything has been set correctly<\/li>\n<\/ul>\n<\/li>\n<li>Ctrl+C to quit<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li>Setup the LogStash scheduled task\n<ul>\n<li>Open Task Scheduler<\/li>\n<li>Click &#8216;Create Task&#8230;&#8217;<\/li>\n<li>On the &#8216;General&#8217; tab\n<ul>\n<li>&#8216; Name&#8217; field: Start LogStash<\/li>\n<li>&#8216;Security Options&#8217;, select &#8216;Run whether user is logged on or not&#8217;<\/li>\n<\/ul>\n<\/li>\n<li>On the &#8216;Triggers&#8217; tab\n<ul>\n<li>Select &#8216;New&#8230;&#8217;<\/li>\n<li>Beside &#8216;Begin the task:&#8217; select &#8216;At startup&#8217; and click &#8216;OK&#8217;<\/li>\n<\/ul>\n<\/li>\n<li>On the &#8216;Actions&#8217; tab\n<ul>\n<li>Select &#8216;New&#8230;&#8217;<\/li>\n<li>Beside &#8216;Action:&#8217; select &#8216;Start a program&#8217;\n<ul>\n<li>Program\/script: D:\\LogStash\\bin\\logstash.bat<\/li>\n<li>Add arguments (optional): agent -f logstash.conf<\/li>\n<li>Start in (optional): D:\\LogStash<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>On the &#8216;Settings&#8217; tab\n<ul>\n<li>&#8216;Allow task to be run on demand&#8217; is checked<\/li>\n<li>&#8216;Run task as soon as possible after a schedule start is missed&#8217; is checked<\/li>\n<li>&#8216;If the task fails, restart every:&#8217; 5 minutes<\/li>\n<li>&#8216;Attempt to restart up to:&#8217; 3 times<\/li>\n<li>&#8216;If the running task does not end when requested, force it to stop&#8217; is checked<\/li>\n<\/ul>\n<\/li>\n<li>Click &#8216;OK&#8217;<\/li>\n<li>Put in the password for your service account<\/li>\n<li>Click on the service and select &#8216;Run&#8217;\n<ul>\n<li>The &#8216;Last Run Result&#8217; will display 0x41301 as the kibana.bat file is being run &#8211; this will remain this way unless there is an error (4101 means &#8220;running&#8221;)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>LogStash will now be running on the server successfully without a user needing to be logged in.<\/p>\n<h2><strong>Client Server Installation Instructions<\/strong><\/h2>\n<h3>nxLog<\/h3>\n<ul>\n<li>Run the nxlog.msi\n<ul>\n<li>Select &#8216;I accept the terms in the License Agreement&#8217;<\/li>\n<li>Click &#8216;Install&#8217;<\/li>\n<li>If prompted by UAC, click &#8216;Yes&#8217;<\/li>\n<li>Uncheck &#8216;Open README.txt to read important installation notes&#8217;<\/li>\n<li>Click &#8216;Finish&#8217;<\/li>\n<\/ul>\n<\/li>\n<li>After it\u2019s installed\n<ul>\n<li>Browse to C:\\Program Files (x86)\\nxlog\\conf<\/li>\n<li>Make a copy of nxlog.conf<\/li>\n<li>Rename the existing nxlog.conf file to nxlog-default.conf\n<ul>\n<li>If prompted by UAC, click &#8216;Continue&#8217;<\/li>\n<\/ul>\n<\/li>\n<li>Make any changes to the nxlog.conf file as required (see &#8216;Other tips\/configuration&#8217; below for changes that have been made in our environment)<\/li>\n<\/ul>\n<\/li>\n<li>Edit the config file\n<ul>\n<li>Change the host setting near the bottom from 127.0.0.1 to the FQDN\u00a0of the Log Server<\/li>\n<\/ul>\n<\/li>\n<li>Start the service\n<ul>\n<li>Open up Services<\/li>\n<li>Find the &#8216;nxlog&#8217; service<\/li>\n<li>Right-click and select &#8216;Start&#8217;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>The server will now be sending logs to the Log Server<\/p>\n<h2>Other tips\/configuration<\/h2>\n<p>I tried really hard to get LogStash to run as a service&#8230;and I failed miserably. If someone knows how to get this working, please enlighten me as my batch file does work, but it&#8217;s not quite as clean and lovely as a service.<\/p>\n<p>A really nifty command that we&#8217;ve found is that sometimes you may need to delete the logs you&#8217;ve collected &#8211; either because there&#8217;s too many, or you&#8217;ve changed your config and want to collect something else, or you were testing and want to get rid of the test logs you&#8217;d collected. In this case, the way we were deleting things was via PowerShell (all hail PowerShell!):<\/p>\n<p>Invoke-WebRequest -Uri http:\/\/[FQDN of log server]:9200\/[name of log file folder] -Method DELETE<\/p>\n<p>In order to not be absolutely FLOODED with events, we also modified the nxLog conf file to only collect what we wanted. You may want to tweak this yourself, depending on what you&#8217;re interested in collecting.<\/p>\n<p>Changes we made to the nxlog.conf file:<\/p>\n<pre>Query &lt;QueryList&gt;\\\r\n&lt;Query Id=\"0\"&gt;\\\r\n&lt;Select Path=\"Security\"&gt;*&lt;\/Select&gt;\\\r\n&lt;Suppress Path=\"Security\"&gt;*[System[(EventID=4624 or EventID=4776 or EventID=4634 or EventID=4672 or EventID=4688)]]&lt;\/Suppress&gt;\\\r\n&lt;Select Path=\"System\"&gt;*[System[(EventID=1074 or (EventID &amp;gt;= 6005 and EventID &amp;lt;= 6009) or EventID=6013)]]&lt;\/Select&gt;\\\r\n&lt;Select Path=\"Microsoft-Windows-TerminalServices-LocalSessionManager\/Operational\"&gt;*&lt;\/Select&gt;\\\r\n&lt;\/Query&gt;\\\r\n&lt;\/QueryList&gt;\r\n<\/pre>\n<p>This is giving us a few things:<\/p>\n<ul>\n<li><span style=\"text-decoration: underline;\">Security Log:<\/span> we&#8217;ve excluded a few ID&#8217;s, purely because they were generating way too much traffic to be useful (the &#8220;User has logged on&#8221;, for example, generated over 6 <strong>million<\/strong> log entries in 24 hours&#8230;) &#8211; if you&#8217;re going to be logging your security logs into this thing, you\u00a0<strong>need<\/strong> to exclude stuff. Otherwise you&#8217;ll just end up filling your disk way too quickly. Just as an example, leaving security as *, we used 13GB in less than 24 hours &#8211; suppressing\u00a0those 5 event ID&#8217;s changed that to only 300MB in 24 hours&#8230;<\/li>\n<li><span style=\"text-decoration: underline;\">System Log:<\/span> we&#8217;re only including a few things here &#8211; the logs that tell us when the server was shut down\/restarted\/started.<\/li>\n<li><span style=\"text-decoration: underline;\">Terminal Services &#8211;\u00a0Local Session Manager:<\/span> this was picked up by a colleague who included it here. This little log lets us know when people are logging on to the domain controller &#8211; in particularly, when people are logging on <strong>directly<\/strong>\u00a0to the domain controller via the console. This is bad and we want to strongly discourage it&#8230;so we log it.<\/li>\n<\/ul>\n<p>Our <a href=\"http:\/\/i.imgur.com\/uTsyWN0.jpg\">default dashboard<\/a>\u00a0(I&#8217;ve removed any proprietary info from the image so it&#8217;s safe to view!) has also been customised a bit (thanks again to Ken! ^_^) to include some of the information most useful to us and to make it look nice and shiny to management. In particular:<\/p>\n<ul>\n<li>Pie chart breaking down Event ID&#8217;s<\/li>\n<li>Bar chart showing our most active DC&#8217;s<\/li>\n<li>Pie chart of the accounts that are being locked out the most &#8211; this, for me right now, is one of the more interesting charts&#8230;<\/li>\n<li>Standard bar chart, showing logs over time<\/li>\n<li>A sorted column list displaying all events but with limited columns, in particular: EventTime, EventID, SourceName, message, SubjectUserName, TargetUserName &#8211; this may not include every bit of information we need for certain events, but it fits for most events.<\/li>\n<\/ul>\n<p>So yes &#8211; that&#8217;s our log server. Very exciting. If there are any updates or tweaks, I&#8217;ll do an updated post.<\/p>\n<p><strong>UPDATE (23rd June 2014)\u00a0<\/strong>&#8211; I was requested to give information on our logstash.conf file as well as the dashboard we use.<\/p>\n<p>The edit logstash.conf file:<\/p>\n<pre>input {\r\n\t# Accept messages in on tcp\/3515\r\n\t# Incoming messages will be in json format, one per line\r\n\t# Tag these messages as windows and eventlog so we can filter on them later on\r\n    tcp {\r\n        port =&gt; 3515\r\n\tcodec =&gt; json_lines\r\n\ttags =&gt; [\"windows\",\"eventlog\"]\r\n    }\r\n}\r\n\r\nfilter {\r\n    # If it is an eventlog message, change some fields to lower case, and rename some fields so they match logstash's default\r\n\tif \"eventlog\" in [tags] {\r\n        mutate {\r\n            lowercase =&gt; [ \"EventType\", \"FileName\", \"Hostname\", \"Severity\", \"host\" ]\r\n            rename =&gt; [ \"Hostname\", \"host\" ]\r\n            rename =&gt; [ \"Message\", \"message\" ]\r\n        }\r\n    }\r\n}\r\n\r\noutput { \r\n\t# Send all the output to the elasticsearch cluster listed below\r\n\telasticsearch { \r\n\t\thost =&gt; localhost\r\n\t\tcluster =&gt; \"YourClusterName\"\r\n\t} \r\n}\r\n<\/pre>\n<p>I was also asked for a copy of our dashboard.json file, which I&#8217;ve uploaded here: <a href=\"https:\/\/girl-germs.com\/wp-content\/uploads\/2014\/05\/default.txt\">Kibana Dashboard (default.json)<\/a>. Due to security restrictions on my blog, I&#8217;ve uploaded it as a .txt file. When you&#8217;ve downloaded it, just change the .txt to .json and away you go!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>So &#8211; I wanted to get Splunk but in my organisation that was never going to happen (you want something that costs MONEY?! Ludicrous!) So we had to come up with a compromise. A colleague of mine went hunting for some open source logging software and found that the combination of Elastic Search, LogStash, Kibana and nxLog worked well. He&#8230; <a href=\"https:\/\/girl-germs.com\/?p=438\">Read more &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[5,328,2,7],"tags":[163,164,167,165,125,166],"class_list":["post-438","post","type-post","status-publish","format-standard","hentry","category-sys-admin","category-techstuff","category-technology","category-work","tag-elastic-search","tag-kibana","tag-log","tag-logstash","tag-monitoring","tag-nxlog"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p2Tmk1-74","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/girl-germs.com\/index.php?rest_route=\/wp\/v2\/posts\/438","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/girl-germs.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/girl-germs.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/girl-germs.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/girl-germs.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=438"}],"version-history":[{"count":17,"href":"https:\/\/girl-germs.com\/index.php?rest_route=\/wp\/v2\/posts\/438\/revisions"}],"predecessor-version":[{"id":1571,"href":"https:\/\/girl-germs.com\/index.php?rest_route=\/wp\/v2\/posts\/438\/revisions\/1571"}],"wp:attachment":[{"href":"https:\/\/girl-germs.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=438"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/girl-germs.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=438"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/girl-germs.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=438"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}