有没有好用的工具可以在多台机器上查看和搜索分散在集群中的日志文件?我们有多个Web服务器和应用服务器,逐个服务器地查找日志很麻烦。
有没有好用的工具可以在多台机器上查看和搜索分散在集群中的日志文件?我们有多个Web服务器和应用服务器,逐个服务器地查找日志很麻烦。
您可以使用fabric来追踪多个主机并搜索所有结果:
$ fab -P -u 'USER' -p 'PASSWORD' --linewise -H host1,host2,host3 -- tail -f /path/to/my/log.log | grep ERROR
你可以通过一个小的shell脚本来实现这个:
machines=("user@address1" "user@address2" "user@address3")
log_files=("/path/to/application.log" "/path2/to2/application.log" "/path3/to3/application.log" "/path4/to4/application.log")
#!/bin/bash
pids_arr=()
for ((i=0;i<${#machines[@]};++i)); do
ssh "${machines[$i]}" "tail -f ${log_files[$i]}" & pids_arr+=("$!")
done
pids="${pids_arr[*]}"
trap "kill -9 $pids" SIGINT SIGKILL
for pid in ${pids}; do wait $pid; done
trap - SIGINT SIGKILL
额外提示:如果您不想看到作业监视器日志,可以使用以下命令:
job_mon=${-//[^m]/} ; set +m
(...)
sleep 0 ; if [[ -n "$job_mon" ]]; then set -m; else set +m; fi