我試圖使用ELK管道來讀取電子郵件(IMAP),提取通用附件(主要是PDF,最終是doc或ppt)並將它們放在ElasticSearch上。在ElasticSearch上獲取電子郵件附件
這是我能夠做到:
- 直接加載到ElasticSearch從文件中使用Logstash一些的base64數據,使用在ElasticSearch的
Ingest Attachment Processor
閱讀的base64內容。 - 從IMAP(交換電子郵件)加載數據我可以正確加載ElasticSearch上的所有電子郵件信息,但附件(我需要)除外。
第一個解決方案工作正常,並且執行我正在尋找的任務,除非它不直接從電子郵件中提取附件,並且我已經在文件內對base64數據進行了硬編碼。 對於第二種解決方案,我在Kibana上有一個字段x-ms-has-attach: yes
,但附件本身沒有任何地方。 imap
插件僅用於加載沒有附件的電子郵件內容?
我錯過了什麼?你能建議我一條管道來實現我在找的東西嗎?
這是第一示例我logstash配置:
input {
file {
path => "/my/path/to/data/*"
start_position => "beginning"
# sincedb_path => "/my/path/to/sincedb"
sincedb_path => "/dev/null"
close_older => 0
tags => ["attachment"]
}
}
output {
elasticsearch {
index => "email-attachment"
hosts => [ "localhost:9200" ]
}
}
這是管道:
PUT _ingest/pipeline/email-attachment
{
"description": "Pipeline to parse an email and its attachments",
"processors": [
{
"attachment" : {
"field" : "message"
}
},
{
"remove" : {
"field" : "message"
}
},
{
"date_index_name" : {
"field" : "@timestamp",
"index_name_prefix" : "email-attachment-",
"index_name_format": "yyyy-MM",
"date_rounding" : "M"
}
}
]
}
這是我的第二示例 logstash配置:
input {
imap {
host => "my.domain.it"
password => "mypassword"
user => "myuser"
port => 12345
type => "imap"
secure => true
strip_attachment => true
}
}
output {
elasticsearch {
index => "email-attachment"
hosts => [ "localhost:9200" ]
}
}
UPDATE
我使用的版本5.2.2
您能否詳細說明您正在使用哪個腳本:a)拉電子郵件和b)bas64編碼附件? – Moshe
請檢查更新的答案。 –