SumoLogic query can also be run via API. Here is a bash example that I wrote to get the nginx access logs.
By default it searches the logs in the past 10 minutes, but you can overwrite it by adding a parameter.
Here is the script. It is also can be found in my github.
#!/bin/bash # Sumo credential format username:password SUMOACCESS="username:password" # Default 10 minutes TIME=${1:-10} # Wait interval in seconds WAITFOR="10" # Setup time range FROM_TIME=`date "+%Y-%m-%dT%R:%S" -d "$TIME min ago"` TO_TIME=`date "+%Y-%m-%dT%R:%S"` # Check proxy if [[ `export | grep http_proxy` ]]; then echo "Found proxy" PROXY="-x ${http_proxy}:80" fi # Current time /bin/date +%D-%R # Generate search file cat > search.json << EOF { "query": "_sourceCategory=my-nginx-access | parse "* - - [*] \"*\" * *" as client, timestamp, request, response, size", "from": "${FROM_TIME}", "to": "${TO_TIME}", "timeZone": "Australia/Sydney" } EOF echo "Searching log in the past $TIME minutes... " job_id=`curl $PROXY -s -b cookies.txt -c cookies.txt -H 'Content-type: application/json' -H 'Accept: application/json' -X POST -T search.json --user $SUMOACCESS "https://api.au.sumologic.com/api/v1/search/jobs" | jq -r .id` job_status="STARED" while [ "${job_status}" != "DONE GATHERING RESULTS" ] do sleep $WAITFOR echo search job status is ${job_status} job_status=`curl $PROXY -s -b cookies.txt -c cookies.txt -H 'Accept: application/json' --user $SUMOACCESS https://api.au.sumologic.com/api/v1/search/jobs/${job_id}| jq -r .state` done echo "Generating search result..." curl $PROXY -s -b cookies.txt -c cookies.txt -H 'Accept: application/json' --user $SUMOACCESS "https://api.au.sumologic.com/api/v1/search/jobs/${job_id}/messages?offset=0&limit=1000" -o results