Logstash failing to parse json

ES indexes the documents exactly as they arrive. It sounds like your problem is that e.g. event82 contains an array rather than an object, but that's really a problem with the source data. If you want you can use Logstash to transform the input to this:

"events" : {
  "event82" : {
    "count" : 1,
    "exponent" : 0,
    "unique" : ""
  },
  "event30" : {
    "count" : 1,
    "exponent" : 0,
    "unique" : ""
  },
  ...

There's no standard filter for doing that transformation but you can write Ruby code in a ruby filter to do it.