Django API Log to LogStash - PullRequest
       10

Django API Log to LogStash

0 голосов
/ 22 апреля 2020

Я работаю над API в Django, и когда вызов API завершен, нам нужно зарегистрировать эти данные, используя стек ELK.

Здесь установка выполнена правильно, так как я вижу новые журналы показывая в Logsta sh, но не в Filebeat, используя который мы sh отправляем данные в Kibanna.

Я загружаю скриншоты для файла конфигурации и другие подробности здесь. Пожалуйста, будьте терпеливы LogStash Conf File

Filebeat Configuraation

ElasticSearch Index List

Кодовый сегмент с Django

logger = logging.getLogger(__name__)


logging.config.dictConfig(
    {
        "version": 1,
        "disable_existing_loggers": False,
        "formatters": {
            "console": {"format": "%(name)-12s %(levelname)-8s %(message)s"},
            "file": {"format": "%(asctime)s %(levelname)s-%(message)s"},
        },
        "handlers": {
            "console": {"class": "logging.StreamHandler", "formatter": "console"},
            "file": {
                "level": "DEBUG",
                "class": "logging.FileHandler",
                "formatter": "file",
                "filename": "/home/dhruv/elk_log/debug.log",
            },
        },
        "loggers": {"": {"level": "DEBUG", "handlers": ["console", "file"]}},
    }
)

# Create your views here.


class FileView(APIView):
    parser_classes = (MultiPartParser, FormParser)

    def post(self, request, *args, **kwargs):
        file_data = request.data["file"]
        decoded_file = file_data.read().decode("utf-8").splitlines()
        file_serializer = FileSerializer(data=request.data)

        print("File data is", request.data["file"])
        read_data = csv.DictReader(decoded_file)

        # s = smtplib.SMTP("smtp.gmail.com", 587)
        # s.starttls()
        id, password = settings.GMAIL_ID, settings.GMAIL_PASSWORD
        print(f"The gmail id and password is {id} {password}")
        # s.login(id, password)

        # Reading the Data as
        for item in read_data:
            # print(item)
            print(
                item["Email ID"],
                item["To"],
                item["cc"],
                item["bcc"],
                item["subject "],
                item["body"],
            )
            # msg = EmailMessage()
            from_addr = item["Email ID"]
            to_addr = item["To"]
            cc = item["cc"]
            bcc = item["bcc"]
            subject = item["subject "]
            body = item["body"]
            # msg["From"] = from_addr
            # msg["To"] = to_addr
            # msg["Cc"] = cc
            # msg["Bcc"] = bcc
            # msg["subject"] = subject
            # msg.set_content(body)
            # s.send_message(msg)

            logger.debug(
                f"From:{from_addr} To:{to_addr} CC:{cc} BCC:{bcc} Subject:{subject} Body:{body}"
            )

Сообщите мне, где я иду неправильно или что не так с моей текущей настройкой.

...