如何正确地将具有异步 csv 流数据的文件索引到 Splunk 中?
How to correctly index files with asynchronous csv stream data into Splunk?
我正在将来自每个 URL 的异步 csv 流数据一个接一个地放入每个文件中,如下所示。
async with httpx.AsyncClient(headers={"Authorization": 'Token token="sometoken"'}) as session:
for url in some_urls_list:
download_data(url, session)
@backoff.on_exception(backoff.expo,exception=(httpx.SomeException,),max_tries=7,)
async def download_data(url, session):
while True:
async with session.stream("GET", url) as csv_stream:
csv_stream.raise_for_status()
async with aiofiles.open("someuniquepath", "wb") as f:
async for data in csv_stream.aiter_bytes():
await f.write(data)
break
我正在通过 inputs.conf
和 props.conf
将这些数据提取到 Splunk 中,如下所示。
[monitor:///my_main_dir_path]
disabled = 0
index = xx
sourcetype = xx:xx
[xx:xx]
SHOULD_LINEMERGE = false
LINE_BREAKER = ([\r\n]+)
NO_BINARY_CHECK = true
CHARSET = UTF-8
INDEXED_EXTRACTIONS = csv
TIMESTAMP_FIELDS = xx
我遇到了以下几个问题。
- 有些文件根本没有索引。
- 一些文件中只有部分行被索引。
- 某些行在 Splunk 上突然分为 2 个事件。
在 Splunk 配置方面可以做些什么来解决上述问题,同时注意它不会导致任何重复的数据索引问题?
示例数据:(第一行是 header。)
A,B B,C D,E,F,G H?,I J K,L M?,N/O P,Q R S,T U V (w x),Y Z,AA BB,CC DD,EE FF,GG HH,II JJ KK,some timestamp field,LL,MM,NN-OO,PP?,QQ RR ss TT UU,VV,WW,XX,YY,ZZ,AAA BBB,CCC,DDD-EEE,FFF GGG,HHH,III JJJ,KKK LLL,MMM MMM,NNN OOO,PPP QQQ,RRR SSS 1,TTT UUU 2,VVV WWW 3,XX YYY,ZZZ AAAA,BBBB CCCC
adata@adata.adata,"bbdata, bbdata",ccdata ccdata,eedata eedata - eedata,ffdata - ffdata - 725 ffdata ffdata,No,,No,,,,,unknown,unknown,unknown,2.0.0,"Sep 26 22:40:18 iidata-iidata-12cb65d081f745a2b iidata/iidata[4783]: iidata: to=<iidata@iidata.iidata>, iidata=iidata.iidata.iidata.iidata[111.111.11.11]:25, iidata=0.35, iidata=0.08/0/0.07/0.2, iidata=2.0.0, iidata=iidata (250 2.0.0 OK 1569537618 iidata.325 - iidata)",9/26/2019 22:40,,,,,,,wwdata,xxdata,5,"zzdata, zzdata",aaadata aaadata aaadata,cccdata - cccdata,ddddata - ddddata,fffdata,hhhdata,25/06/2010,6,2010,"nnndata nnndata nnndata, nnndata.",(pppdata'pppdata) pppdata pppdata,,,,303185,,
样本损坏事件:
adata@adata.adata,"bbdata, bbdata",ccdata ccdata,eedata eedata - eedata,ffdata - ffdata - 725 ffdata ffdata,No,,No,,,,,unknown,un
known,unknown,2.0.0,"Sep 26 22:40:18 iidata-iidata-12cb65d081f745a2b iidata/iidata[4783]: iidata: to=<iidata@iidata.iidata>, iidata=iidata.iidata.iidata.iidata[111.111.11.11]:25, iidata=0.35, iidata=0.08/0/0.07/0.2, iidata=2.0.0, iidata=iidata (250 2.0.0 OK 1569537618 iidata.325 - iidata)",9/26/2019 22:40,,,,,,,wwdata,xxdata,5,"zzdata, zzdata",aaadata aaadata aaadata,cccdata - cccdata,ddddata - ddddata,fffdata,hhhdata,25/06/2010,6,2010,"nnndata nnndata nnndata, nnndata.",(pppdata'pppdata) pppdata pppdata,,,,303185,,
我希望您正在监视比顶级目录更具体的内容。否则,您 运行 Splunk 运行 宁出文件的风险会打开 and/or 内存。
部分行和分隔行是 props.conf 设置不正确的症状。没有看到一些事件就不可能提出更正建议。
也有可能 Splunk 读取文件的速度过快。尝试将这些设置添加到 inputs.conf:
multiline_event_extra_waittime = true
time_before_close = 3
我正在将来自每个 URL 的异步 csv 流数据一个接一个地放入每个文件中,如下所示。
async with httpx.AsyncClient(headers={"Authorization": 'Token token="sometoken"'}) as session:
for url in some_urls_list:
download_data(url, session)
@backoff.on_exception(backoff.expo,exception=(httpx.SomeException,),max_tries=7,)
async def download_data(url, session):
while True:
async with session.stream("GET", url) as csv_stream:
csv_stream.raise_for_status()
async with aiofiles.open("someuniquepath", "wb") as f:
async for data in csv_stream.aiter_bytes():
await f.write(data)
break
我正在通过 inputs.conf
和 props.conf
将这些数据提取到 Splunk 中,如下所示。
[monitor:///my_main_dir_path]
disabled = 0
index = xx
sourcetype = xx:xx
[xx:xx]
SHOULD_LINEMERGE = false
LINE_BREAKER = ([\r\n]+)
NO_BINARY_CHECK = true
CHARSET = UTF-8
INDEXED_EXTRACTIONS = csv
TIMESTAMP_FIELDS = xx
我遇到了以下几个问题。
- 有些文件根本没有索引。
- 一些文件中只有部分行被索引。
- 某些行在 Splunk 上突然分为 2 个事件。
在 Splunk 配置方面可以做些什么来解决上述问题,同时注意它不会导致任何重复的数据索引问题?
示例数据:(第一行是 header。)
A,B B,C D,E,F,G H?,I J K,L M?,N/O P,Q R S,T U V (w x),Y Z,AA BB,CC DD,EE FF,GG HH,II JJ KK,some timestamp field,LL,MM,NN-OO,PP?,QQ RR ss TT UU,VV,WW,XX,YY,ZZ,AAA BBB,CCC,DDD-EEE,FFF GGG,HHH,III JJJ,KKK LLL,MMM MMM,NNN OOO,PPP QQQ,RRR SSS 1,TTT UUU 2,VVV WWW 3,XX YYY,ZZZ AAAA,BBBB CCCC
adata@adata.adata,"bbdata, bbdata",ccdata ccdata,eedata eedata - eedata,ffdata - ffdata - 725 ffdata ffdata,No,,No,,,,,unknown,unknown,unknown,2.0.0,"Sep 26 22:40:18 iidata-iidata-12cb65d081f745a2b iidata/iidata[4783]: iidata: to=<iidata@iidata.iidata>, iidata=iidata.iidata.iidata.iidata[111.111.11.11]:25, iidata=0.35, iidata=0.08/0/0.07/0.2, iidata=2.0.0, iidata=iidata (250 2.0.0 OK 1569537618 iidata.325 - iidata)",9/26/2019 22:40,,,,,,,wwdata,xxdata,5,"zzdata, zzdata",aaadata aaadata aaadata,cccdata - cccdata,ddddata - ddddata,fffdata,hhhdata,25/06/2010,6,2010,"nnndata nnndata nnndata, nnndata.",(pppdata'pppdata) pppdata pppdata,,,,303185,,
样本损坏事件:
adata@adata.adata,"bbdata, bbdata",ccdata ccdata,eedata eedata - eedata,ffdata - ffdata - 725 ffdata ffdata,No,,No,,,,,unknown,un
known,unknown,2.0.0,"Sep 26 22:40:18 iidata-iidata-12cb65d081f745a2b iidata/iidata[4783]: iidata: to=<iidata@iidata.iidata>, iidata=iidata.iidata.iidata.iidata[111.111.11.11]:25, iidata=0.35, iidata=0.08/0/0.07/0.2, iidata=2.0.0, iidata=iidata (250 2.0.0 OK 1569537618 iidata.325 - iidata)",9/26/2019 22:40,,,,,,,wwdata,xxdata,5,"zzdata, zzdata",aaadata aaadata aaadata,cccdata - cccdata,ddddata - ddddata,fffdata,hhhdata,25/06/2010,6,2010,"nnndata nnndata nnndata, nnndata.",(pppdata'pppdata) pppdata pppdata,,,,303185,,
我希望您正在监视比顶级目录更具体的内容。否则,您 运行 Splunk 运行 宁出文件的风险会打开 and/or 内存。
部分行和分隔行是 props.conf 设置不正确的症状。没有看到一些事件就不可能提出更正建议。
也有可能 Splunk 读取文件的速度过快。尝试将这些设置添加到 inputs.conf:
multiline_event_extra_waittime = true
time_before_close = 3