ELK Stack (Elasticsearch + Logstash + Kibana)
Fluentd:轻量级日志收集器,支持多种输入输出
# 统计错误日志数量
grep -c "ERROR" /var/log/app.log
# 按小时统计日志量
awk '{print $1}' /var/log/nginx/access.log | cut -d: -f1 | sort | uniq -c
# 统计IP访问量
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr
# 统计HTTP状态码
awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c
#!/usr/bin/env python3
from collections import Counter
import re
error_pattern = re.compile(r'ERROR')
ip_pattern = re.compile(r'\d+\.\d+\.\d+\.\d+')
error_count = 0
ip_counter = Counter()
with open('/var/log/app.log') as f:
for line in f:
if error_pattern.search(line):
error_count += 1
ip_match = ip_pattern.search(line)
if ip_match:
ip_counter[ip_match.group()] += 1
print(f"Total errors: {error_count}")
print("Top 10 IPs:")
for ip, count in ip_counter.most_common(10):
print(f"{ip}: {count}")
Kubernetes日志收集:
Serverless日志:
通过合理选择和组合上述工具与方法,可以构建高效可靠的Linux日志聚合与统计分析系统。