Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何修改syslog ng';通过tcp将日志与行流连接起来?_Python_Linux_Logging_Stream_Syslog Ng - Fatal编程技术网

Python 如何修改syslog ng';通过tcp将日志与行流连接起来?

Python 如何修改syslog ng';通过tcp将日志与行流连接起来?,python,linux,logging,stream,syslog-ng,Python,Linux,Logging,Stream,Syslog Ng,我有一台机器来修改syslog ng的日志; 编辑配置文件以将日志写入本地文件/data/logs/access.log destination d_nginx_video { file("/data/logs/access.log" create_dirs(yes) template("$PROGRAM $MESSAGE\n"));}; 然后我想将日志文件发送到一个redis队列,我可以通过一些处理来获取日志 但我需要先读取日志文件,然后将日志放入redis 所以我使用tail-F/dat

我有一台机器来修改syslog ng的日志; 编辑配置文件以将日志写入本地文件
/data/logs/access.log

destination d_nginx_video { file("/data/logs/access.log" create_dirs(yes) template("$PROGRAM $MESSAGE\n"));}; 
然后我想将日志文件发送到一个
redis
队列,我可以通过一些处理来获取日志

但我需要先读取日志文件,然后将日志放入redis

所以我使用
tail-F/data/logs/access.log | python进程放到redis队列中
,这是一种不好的方法

我想运行一个tcp服务器来接收日志文件以及如何配置syslog ng

我的tcp服务器脚本是


5144
是syslog ng端口,我通过我的脚本收听它

您是否考虑过除了使用“文件”之外还使用“程序”指令,只将日志直接传输到脚本,而不涉及网络

destination d_nginx_video { program("/path/to/python/script arg arg arg"
                                    template("$PROGRAM $MESSAGE\n"));
                            file("/data/logs/access.log" create_dirs(yes)
                                 template("$PROGRAM $MESSAGE\n")); };

我不是syslog ng专家,但这似乎与您当前的方法非常相似,只是它保持脚本运行,并从syslog守护进程中不断处理日志。包含更多信息。

感谢您的回答,有没有办法将日志流发送到zeromq?