-
Notifications
You must be signed in to change notification settings - Fork 19
如何查看实时日志
本工具需要Python3才能支持。
本质上是对WebSocket(或者kafka)JSON数据进行合理的过滤和格式化,可以通过编写Python脚本的方式完成你的格式化。
如果你需要在自己的PC机上浏览日志(不推荐)的话,需要安装各种包包。
首先你需要安装一下Python3,python-websocket:
如果你要使用lofka_console_kafka
从kafka而非WebSocket实时显示日志,那么:
pip3 install kafka-python python-snappy
Lofka默认使用GZip压缩,如果你需要使用Snappy,才需要安装包python-snappy
需要注意的是,对于Linux系统,安装python-snappy之前需要安装snappy
开发库:
# 针对Debian系列系统
apt install libsnappy-dev
# 你要是加入了CentOS邪教的话
yum install snappy-devel
# 你要是用苹果
# 那么我也不知道
# 欢迎补充
如果是Windows,需要安装Visual C++ 14编译器,否则pip无法编译snappy。
参考资料:
找到lofka_console.py中如下两行,将中文部分改为你需要的配置:
ws_host = arg_map.query_default("ws_host", "输入WebSocket的地址(IP/域名)")
ws_port = arg_map.query_default("ws_port", "输入WebSocket的端口")
例如:
ws_host = arg_map.query_default("ws_host", "10.10.11.75")
ws_port = arg_map.query_default("ws_port", "9500")
如果不修改,每次使用都需要在命令行中指定,如:--ws_host 127.0.0.1 --ws_port 9500
。
同时找到: 找到lofka_console_kafka.py中如下两行:
kafka_servers = arg_map.query_default("bootstrap_servers", "Kafka服务器地址")
zookeeper_servers = arg_map.query_default("zookeeper_servers", "Zookeeper地址")
例如:
kafka_servers = arg_map.query_default("bootstrap_servers", "data1:9092,data2:9092,data3:9092")
zookeeper_servers = arg_map.query_default("zookeeper_servers", "admin:2181,name1:2181,name2:2181")
如果不修改,每次使用都需要在命令行中指定bootstrap_servers
和zookeeper_servers
的内容,多个地址使用逗号隔开。
随后运行lofka_console.py,其中参数的格式为:--key1.key2...keyM value1,value2,...,valueN
举个例子,我只要监控app_name为app1或app2的WARN级别以上的日志,并且只监控固定IP送来的信息,只需要这样给出参数即可:
python3 lofka_console.py --app_name app1,app2 --level WARN,ERROR,FATAL --host.ip 10.10.11.75,10.10.11.36
详细的过滤取决于你对JSON的格式的定义,一般的定义参见Wiki中的Logger-JSON格式规范
自认为显示效果已经算是不错了,如果你有更加变态的需求请修改这个脚本,如果不会修改请联系我。
举个例子:
一般日志显示:
NGINX日志显示:
- 根据某个域名过滤(例如只查看test.example.com,多个域名使用逗号隔开):
lofka-console --message.host test.example.com
- 只查看POST和PUT类型的请求:
lofka-console --message.request_method POST,PUT
- 更多过滤条件以此类推。
参数中加上--print_raw
即可打印原始JSON格式的数据。