pythonlogstash和pythonlogstashasync不与Django一起工作

2024-05-15 13:14:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试了两个库将一些日志从Django后端发送到日志服务器:

  • python日志库
  • python日志存储异步

以下是我也尝试/验证过的东西:

  • 验证Ec2安全组是否在端口tcp/5000(logstash)上接受
  • 监控来自本地计算机和日志服务器的流量,以验证任何网络流量。使用nc我能够验证发送和接收到日志服务器的测试日志
  • 重新创建一个简单的django项目,看看版本控制是否有问题

我在运行manage.py runserver之后发送日志

class AppConfig(AppConfig):
    name = 'app'
    
    def ready(self):
        logger.info('info local django logging ')
        logger.error('debug local django logging ')
        logger.debug('debug local django logging ')
        print('logging init')

这是我已经检查过的类似链接:

settings.py(python日志存储异步)

LOGGING = {
  'formatters': {
      'logstash': {
          '()': 'logstash_async.formatter.DjangoLogstashFormatter',
          'message_type': 'python-logstash',
          'fqdn': False, # Fully qualified domain name. Default value: false.
          'extra_prefix': 'dev', #
          'extra': {
              'environment': 'local'
          }
      },
  },
  'handlers': {
      'logstash': {
          'level': 'DEBUG',
          'class': 'logstash_async.handler.AsynchronousLogstashHandler',
          'transport': 'logstash_async.transport.TcpTransport',
          'host': 'my.remote.host', 
          'port': 5000,
          'ssl_enable': False,
          'ssl_verify': False,
          'database_path': 'memory',
      },
  },
  'loggers': {
      'django.request': {
          'handlers': ['logstash'],
          'level': 'DEBUG',
          'propagate': True,
      },
  },
}

日志存储配置:

input {
stdin {}
    tcp {
        port => 5000
        codec => json
    }
    gelf {
        type => docker
        port => 12201
    }

}

## Add your filters / logstash plugins configuration here

output {
stdout {}
        elasticsearch {
                hosts => "elasticsearch:9200"
        }
}

详情:

  • Python版本:3.7.2
  • Django版本:2.1.3

重新创建的django项目:

  • Python版本:3.7.9
  • Django版本:3.1.5

因此,我的机器上没有传出流量,也没有来自日志服务器的传入流量,但我不知道为什么

任何提示/想法都会有帮助,谢谢


Tags: 项目djangodebug版本服务器falseasyncport