目的:将脚本运行时的日志打印到ES,通过kibana展示,特别是后台运行时,可知道脚本运行状态。

0.配置logstash

cd /opt/server/logstash-5.5.0/config
touch python-logstash.conf
---------------输入以下内容-------------------
input {
  udp {
    port => 5959 #udp的端口
    codec => json#输入的格式为json格式
  }
}
output {
elasticsearch {
    hosts => ["10.100.172.111:9200"] #es的地址
    index => "python-message-%{+YYYY.MM.dd}" #存入到es的索引名
        }
  stdout {
    codec => rubydebug
  }
}

#到logstash的bin目录下,启动Logstash
[root@inte-es-node1 bin]# ./logstash -f ../config/python-logstash.conf


1.安装python-logstash模块

pip install python-logstash


2.示例代码

import logging
import logstash
import sys

#host为logstash的IP地址
host = '10.100.172.111'

test_logger = logging.getLogger('python-logstash-logger')
test_logger.setLevel(logging.INFO)
#创建一个ogHandler
test_logger.addHandler(logstash.LogstashHandler(host, 5959))


test_logger.error('这是一行测试日志')
# test_logger.info('python-logstash: test logs  tash info message.')
# test_logger.warning('python-logstash: test logstash warning message.')

3.通过kibana查看

使用python logging 模块将日志打印到Logstash_elk