Hướng dẫn python logging to elasticsearch - python ghi nhật ký vào đàn hồi

Hướng dẫn này trình bày cách ăn nhật ký từ ứng dụng Python và cung cấp chúng một cách an toàn vào triển khai dịch vụ elaticsearch. Bạn sẽ thiết lập FileBeat để theo dõi tệp nhật ký có cấu trúc JSON có các trường được định dạng Lược đồ phổ biến [ECS] tiêu chuẩn và sau đó bạn sẽ xem trực quan hóa thời gian thực của các sự kiện nhật ký trong Kibana khi chúng xảy ra. Mặc dù Python được sử dụng cho ví dụ này, cách tiếp cận này để giám sát đầu ra nhật ký được áp dụng trên nhiều loại khách. Kiểm tra danh sách các plugin ghi nhật ký ECS có sẵn.

Bạn sẽ học cách:

  1. Tạo tập lệnh Python với ghi nhật ký
  2. Thiết lập FileBeat
  3. Gửi nhật ký Python đến Elaticsearch
  4. Tạo trực quan hóa nhật ký trong Kibana

Thời gian cần thiết: 1 giờ

Điều kiện tiên quyết

Để hoàn thành các bước này, bạn cần cài đặt Python trên hệ thống của bạn cũng như bộ ghi Lược đồ chung [ECS] đàn hồi cho thư viện ghi nhật ký Python.

Để cài đặt ECS-Logging-Python, Run:

python -m pip install ecs-logging

Nhận elaticsearch ServiceEdit

  1. Nhận một bản dùng thử miễn phí.
  2. Đăng nhập vào đám mây đàn hồi.
  3. Chọn Tạo triển khai.Create deployment.
  4. Đặt tên cho việc triển khai của bạn. Bạn có thể để lại tất cả các cài đặt khác ở các giá trị mặc định của chúng.
  5. Chọn Tạo triển khai và lưu thông tin triển khai đàn hồi của bạn. Bạn sẽ cần những thông tin này sau này.Create deployment and save your Elastic deployment credentials. You will need these credentials later on.

Không muốn đăng ký vào một dịch vụ khác? Bạn cũng có thể nhận dịch vụ Elaticsearch thông qua các thị trường AWS, Azure và GCP.

Kết nối an toàn

Khi kết nối với dịch vụ Elaticsearch, bạn có thể sử dụng ID đám mây để chỉ định chi tiết kết nối. Tìm ID đám mây của bạn bằng cách vào menu chính Kibana và chọn Quản lý> Tích hợp, sau đó chọn chi tiết triển khai xem.

Để kết nối, truyền dữ liệu đến và phát hành các truy vấn với dịch vụ Elaticsearch, bạn cần suy nghĩ về xác thực. Hai cơ chế xác thực được hỗ trợ, khóa API và xác thực cơ bản. Ở đây, để bạn bắt đầu nhanh chóng, chúng tôi sẽ chỉ cho bạn cách sử dụng xác thực cơ bản, nhưng bạn cũng có thể tạo các khóa API như được hiển thị sau. Khóa API an toàn hơn và ưa thích cho môi trường sản xuất.

Tạo tập lệnh Python với Loggedit

Trong bước này, bạn sẽ tạo một tập lệnh Python tạo ra các nhật ký ở định dạng JSON, sử dụng mô -đun ghi nhật ký tiêu chuẩn Python.

  1. Trong một thư mục cục bộ, hãy tạo một tệp mới elvis.py và lưu nó với các nội dung này:

    #!/usr/bin/python
    
    import logging
    import ecs_logging
    import time
    from random import randint
    
    #logger = logging.getLogger[__name__]
    logger = logging.getLogger["app"]
    logger.setLevel[logging.DEBUG]
    handler = logging.FileHandler['elvis.json']
    handler.setFormatter[ecs_logging.StdlibFormatter[]]
    logger.addHandler[handler]
    
    print["Generating log entries..."]
    
    messages = [
        "Elvis has left the building.",#
        "Elvis has left the oven on.",
        "Elvis has two left feet.",
        "Elvis was left out in the cold.",
        "Elvis was left holding the baby.",
        "Elvis left the cake out in the rain.",
        "Elvis came out of left field.",
        "Elvis exited stage left.",
        "Elvis took a left turn.",
        "Elvis left no stone unturned.",
        "Elvis picked up where he left off.",
        "Elvis's train has left the station."
        ]
    
    while True:
        random1 = randint[0,15]
        random2 = randint[1,10]
        if random1 > 11:
            random1 = 0
        if[random1=5 and random1=9 and random1 11:
            random1 = 0
        if[random1=5 and random1=9 and random1 11:
            random1 = 0
        if[random1=5 and random1=9 and random1 11:
            random1 = 0
        if[random1=5 and random1=9 and random1 11:
            random1 = 0
        if[random1=5 and random1=9 and random1 Tích hợp, sau đó chọn chi tiết triển khai xem.

    Khởi động dòng

    #!/usr/bin/python
    
    import logging
    import ecs_logging
    import time
    from random import randint
    
    #logger = logging.getLogger[__name__]
    logger = logging.getLogger["app"]
    logger.setLevel[logging.DEBUG]
    handler = logging.FileHandler['elvis.json']
    handler.setFormatter[ecs_logging.StdlibFormatter[]]
    logger.addHandler[handler]
    
    print["Generating log entries..."]
    
    messages = [
        "Elvis has left the building.",#
        "Elvis has left the oven on.",
        "Elvis has two left feet.",
        "Elvis was left out in the cold.",
        "Elvis was left holding the baby.",
        "Elvis left the cake out in the rain.",
        "Elvis came out of left field.",
        "Elvis exited stage left.",
        "Elvis took a left turn.",
        "Elvis left no stone unturned.",
        "Elvis picked up where he left off.",
        "Elvis's train has left the station."
        ]
    
    while True:
        random1 = randint[0,15]
        random2 = randint[1,10]
        if random1 > 11:
            random1 = 0
        if[random1=5 and random1=9 and random1 11:
            random1 = 0
        if[random1=5 and random1=9 and random1 11:
            random1 = 0
        if[random1=5 and random1=9 and random1 11:
            random1 = 0
        if[random1=5 and random1=9 and random1 11:
            random1 = 0
        if[random1=5 and random1=9 and random1 11:
            random1 = 0
        if[random1=5 and random1=9 and random1 11:
            random1 = 0
        if[random1=5 and random1=9 and random1

Bài Viết Liên Quan

Chủ Đề