Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Brought back the elastic plugin. #96

Merged
merged 1 commit into from
Oct 2, 2019
Merged

Brought back the elastic plugin. #96

merged 1 commit into from
Oct 2, 2019

Conversation

scudette
Copy link
Contributor

@scudette scudette commented Oct 2, 2019

The reason it has a huge footprint is due to inefficiently written
client library. Forked client library and made it more efficient (only
export the bulk upload API).

Also added a server side event monitoring artifact which uploads to
elastic the results of any completed flows. This allows the results of
collected artifacts to be examined/visualized in Kibana.

Additionally VQL now supports SELECT *, column FROM plugin(). This is a good way of just adding extra columns without needing to list all the columns explicitly.

The reason it has a huge footprint is due to inefficiently written
client library. Forked client library and make it more efficient (only
export the bulk upload API).

Also added a server side event monitoring artifact which uploads to
elastic the results of any completed flows. This allows the results of
collected artifacts to be examined/visualized in Kibana.
@scudette scudette merged commit c2a4689 into master Oct 2, 2019
@scudette scudette deleted the elastic branch October 2, 2019 04:26
@j-mie
Copy link

j-mie commented Oct 2, 2019

Is there anyway to generate some kind of Elastic schema or template? Or do you rely on Elastic's dynamic mapping?

@scudette
Copy link
Contributor Author

scudette commented Oct 2, 2019

The index we use is derived from the artifact name so you would need to create the index and the proper mapping by external means before you can push data to it. If not then the index will be automatically created with default mappings the first item that is pushed to it based on the type of the first row.

For example you can use curl to initialize the index with the correct mappings:
https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html#mappings

and because the index name is derived from the name of the artifact then all data from the same artifact will go there.

For Velociraptor it is difficult to figure out the mappings automatically because the types and fields emitted really depend on the VQL query and therefore each artifact is different. We pretty much also guess the column types by the heuristics in a similar way to elastic so I did not see the point of having a way of overriding the elastic heuristics (other than setting the mappings manually on the elastic side).

BTW I am still playing with this feature so it is considered experimental - I am trying to see if we can make up some useful dashboards and visualizations in kibana and how that would translate to the index structure.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants