“Linux syslog 怎么导入”这个问题,取决于你想导入到哪里、以及syslog 的来源格式。下面按常见场景给你说明。
syslog 一般位于:
/var/log/messages
/var/log/syslog
/var/log/secure
例如:
less /var/log/syslog
grep "error" /var/log/syslog
awk '$1=="Jul" && $2>10' /var/log/syslog
sqlite3 syslog.db
CREATE TABLE syslog (
ts TEXT,
host TEXT,
tag TEXT,
msg TEXT
);
用脚本(Python)解析后导入即可。
/etc/logstash/conf.d/syslog.conf:
input {
file {
path => "/var/log/syslog"
start_position => "beginning"
}
}
filter {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:timestamp} %{HOSTNAME:host} %{DATA:program}: %{GREEDYDATA:msg}" }
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "syslog-%{+YYYY.MM.dd}"
}
}
在客户端:
*.* @@logserver:514
在服务端:
module(load="imtcp")
input(type="imtcp" port="514")
/var/log/sysloginputs.conf:[monitor:///var/log/syslog]
sourcetype = syslog
rsyslog 接收sudo apt install rsyslog
module(load="imudp")
input(type="imudp" port="514")
日志会写入:
/var/log/remote/...
tcpdump 抓 syslog 包tcpdump -i eth0 udp port 514 -w syslog.pcap
| 目标 | 方式 |
|---|---|
| MySQL | Python 解析 + INSERT |
| Kafka | rsyslog + omkafka |
| HDFS | Flume |
我可以直接给你可复制的配置或脚本。