首先,我们需要检查当前的日志文件格式,了解其结构和内容。
cat /var/log/syslog查看特定日志文件:
cat /var/log/auth.log 示例:使用 logstash 进行日志解析:
logstash:
sudo apt-get update sudo apt-get install logstash logstash 配置文件:
# /etc/logstash/conf.d/01-syslog.conf input { file { path => "/var/log/syslog" start_position => "beginning" } } filter { grok { match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" } } date { match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ] } } output { stdout { codec => rubydebug } elasticsearch { hosts => ["localhost:9200"] } }logstash:
sudo systemctl start logstash示例:使用 awk 提取关键信息:
awk '/ERROR/ {print $0}' /var/log/syslog示例:使用 grep 和 sed 提取关键信息:
grep 'ERROR' /var/log/syslog | sed 's/.*ERROR: \(.*\)/\1/'示例:使用 jq 处理 JSON 格式的日志:
cat /var/log/json.log | jq '.message'示例:使用 ELK(Elasticsearch, Logstash, Kibana)进行日志聚合和分析:
Elasticsearch:
sudo apt-get update sudo apt-get install elasticsearch sudo systemctl start elasticsearch sudo systemctl enable elasticsearchLogstash:
sudo apt-get update sudo apt-get install logstashKibana:
sudo apt-get update sudo apt-get install kibana sudo systemctl start kibana sudo systemctl enable kibanalogstash 配置文件:
# /etc/logstash/conf.d/01-syslog.conf input { file { path => "/var/log/syslog" start_position => "beginning" } } filter { grok { match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" } } date { match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ] } } output { elasticsearch { hosts => ["localhost:9200"] } }logstash:
sudo systemctl start logstash Kibana 进行日志分析:
http://localhost:5601logstash-*Discover 功能进行日志分析示例:使用 sed 进行脱敏处理:
sed 's/\b[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\b/xxx.xxx.xxx.xxx/g' /var/log/syslog示例:使用 logstash 进行脱敏处理:
logstash 配置文件:
# /etc/logstash/conf.d/01-syslog.conf input { file { path => "/var/log/syslog" start_position => "beginning" } } filter { grok { match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" } } date { match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ] } mutate { gsub => [ "syslog_message", "\b[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\b", "xxx.xxx.xxx.xxx" ] } } output { stdout { codec => rubydebug } elasticsearch { hosts => ["localhost:9200"] } }logstash:
sudo systemctl start logstashhttp://localhost:3000admin)Elasticsearchhttp://localhost:9200logstash-*Create your first dashboard定期检查和优化日志分析是非常重要的,以确保系统始终处于最佳的工作状态。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。