django restframework 사용하기
from django.shortcuts import render
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from elasticsearch import Elasticsearch
from elasticsearch_dsl.connections import connections
class SearchView(APIView):
def get(self, request):
es = Elasticsearch(['http://192.168.0.1:9200'], http_auth=('elastic','password'), timeout=300)
#es = Elasticsearch(hosts="http://elastic:password!@192.168.0.1:9200/", timeout=300)
search_word = request.query_params.get('search')
if not search_word:
return Response(status=status.HTTP_400_BAD_REQUEST, data={'message': 'search word param is missing'})
docs = es.search(index='firewall*',
body={
"size": 10,
"from": 1,
"_source": {
"includes": ["@timestamp", "src_ip","dst_ip","dst_port"]
},
"sort":
{ "@timestamp":{ "order" :"desc"} },
"query": {
"multi_match": {
"query": search_word,
"fields": ["src_ip"]}
}
})
data_list = docs['hits']
return Response(data_list)