通过rabbitmq收集日志到elk堆栈的助手

logcollect的Python项目详细描述


用于集中收集日志的python库

提供简单的配置,用于将python日志收集到elk堆栈 通过Rabbitmq。

支持的消息流如下:

python.logging
      ||
      \/
  logcollect
      ||
      \/
   RabbitMQ
      ||
      \/
   Logstash
      ||
      \/
 ElasticSearch
      ||
      \/
    Kibana

力学

本地日志

logcollect.boot.default_config确保根记录器 正确配置的AMQP处理程序。

django

logcollect.boot.django_dict_config修改 django.conf.settings.LOGGING以确保根的amqp处理程序正确 记录员。在日志定义之后,应该在设置模块中调用它。

芹菜

logcollect.boot.celery_config为添加信号处理程序 worker_process_init信号,然后将amqp处理程序添加到 task_logger基本处理程序。如有必要,根记录器也可以 附加到AMQP处理程序。

配置提示

日志存储

input{rabbitmq{exchange=>"logstash"queue=>"logstash"host=>"rabbitmq-host"type=>"amqp"durable=>truecodec=>"json"}}output{elasticsearch{host=>localhost}stdout{codec=>rubydebug}}

日志收集

所有引导辅助程序都有相同的参数:

  • broker_uri-芹菜式rabbitmq连接字符串,即 amqp://guest@localhost//vhost
  • 交换,路由密钥-RabbitMQ的消息路由信息
  • 持久-消息传递模式
  • 级别-处理程序日志级别
  • 活动标识-带有“进程类型信息”的dict

活动特性

假设我们在同一主机上部署了两个项目:“github”和“jenkins”。 两者都有网络后端和后台工作人员。活动标识有助于 要识别来自这些工作人员的消息:

ProjectWorkerActivity identity
githubbackend^{tt8}$
jenkinsbackground^{tt9}$

loggername可用于分隔代码的不同部分 在工人内部。主机名和进程PID将自动添加。

相关id

尚不支持,但IDEA正在标记关于同一对象的日志消息 具有此对象的ID信息。

示例

原生python日志

python test_native/native_logging.py

django

python test_django/manage.py test_log

芹菜

首先,启动worker:

celery worker -A test_celery.app.celery

然后将任务发送给该工作者:

python test_celery/send_task.py

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在java中将字符串转换为音频输入   java如何使用Spring Boot RestTemplate解组json列表   计算机上C++ OpenCV项目转换为OpenCV Android的java步骤   Java Spring Telegraf数据表不工作   openurlconnection与connect之间的java差异?   java Solr字段搜索、通配符和转义字符   java如何使用DLFolderLocalServiceUtil类的getFolders()方法?   尝试用Java编写文件   java连续双缓冲解决方案不起作用   两个数组的Java乘积   java Jackson,如何正确编写自定义反序列化程序   java将布尔标志按一定顺序排列以获得更好的性能是否有意义   java Vaadin无缓冲网格无法关闭   java在MySQL中以同一用户身份同时从不同客户端登录安全吗?   java如何使用安卓asynchttp库   java无法在Android中使用AlarmManager停止服务   java在Hibernate的XML配置文件中指定默认值   Spring启动应用程序中的java内存SQLITE不工作   Java代码无法写入文本文件,