【问题标题】:Sending CSV to influxDB将 CSV 发送到 influxDB
【发布时间】:2019-07-09 08:21:04
【问题描述】:

我有一个不错的 PowerShell 脚本,用于获取事件日志并将它们导出到 CSV,然后我打算将其解析为 influxDB,并且我尝试了几种方法。其中是:

  • 通过 PowerShell 流式写入 Telegraf。会发送包裹,但我认为包裹中没有任何东西,因为我脑子里有一些文本编码方式。

  • 通过 API 进行 POST 查询。

  • 第三方程序(尽管它们以 Syslog 为重点,也无济于事)。

我现在找到了一个Python script on Github,它将向我的 Influx 服务器发送一个 CSV 文件,这将是完美的,并且看起来可以工作,除了它给我关于时间戳的错误。 虽然这个 Python 脚本确实连接并可以创建数据库,但事件日志中的时间戳似乎有问题,即使我在 CSV 文件本身中手动将其更改为默认时间戳,它仍然会抱怨: python.exe:回溯(最近一次调用最后): 在行:1 字符:1 + python.exe .\csv-to-influx\csv-to-influxdb.py ` + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (Traceback (last last call last)::String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError 文件“.\csv-to-influx\csv-to-influxdb.py”,第 175 行,在 args.timezone) 文件“.\csv-to-influx\csv-to-influxdb.py”,第 68 行,在 loadCsv 对于阅读器中的行: 文件“C:\Users\alexander.hansen\AppData\Local\Programs\Python\Python37-32\lib\csv.py”,第 111 行,在 __next__ self.fieldnames 文件“C:\Users\alexander.hansen\AppData\Local\Programs\Python\Python37-32\lib\csv.py”,第 98 行,在字段名中 self._fieldnames = next(self.reader) _csv.Error:行包含 NULL 字节

在尝试使用 Py 脚本插入这 1 行 CSV 时出现此问题:

EntryType,"TimeGenerated","Source","EventID","MachineName","Message" 警告,"2019-07-03 13:27:03","组策略本地用户和组","4098","主机名","---'组策略对象中的计算机“管理员”首选项不适用,因为它失败并出现错误代码“0x8007052a”不允许此操作,因为它可能导致管理帐户被禁用、删除或无法登录。此错误已被抑制。”

我希望能够真正理解问题所在,但我不确定。 CSV 似乎是它应该的样子?

【问题讨论】:

  • 文档使用这个例子python csv-to-influxdb.py --dbname test --input data.csv --fieldcolumns value。尝试指定参数inputdbname
  • 运行脚本时已经指定了这些。

标签: python windows powershell influxdb


【解决方案1】:

我发现了一个增强导出 csv 到 influx 的功能。 https://github.com/Bugazelle/export-csv-to-influx

安装方式:pip install ExportCsvToInflux

export_csv_to_influx \
--csv test.csv \
--dbname test \
--measurement sample \
--tag_columns EntryType,Source,MachineName \
--field_columns EntryType,Source,EventID,MachineName,Message \
--time_column TimeGenerated \
--user admin \
--password admin \
--server 127.0.0.1:8086

这是流入数据:

> use test
Using database test
> select * from sample
name: sample
time                EntryType EntryType_1 EventID MachineName MachineName_1 Message                                                                                                                                                                                                                                                                               Source                              Source_1
----                --------- ----------- ------- ----------- ------------- -------                                                                                                                                                                                                                                                                               ------                              --------
1562160423000000000 Warning   Warning     4098    Hostname    Hostname      The computer 'admin' preference item in the ---' Group Policy Object did not apply because it failed with error code '0x8007052a This operation is disallowed as it could result in an administration account being disabled, deleted or unable to logon.' This error was suppressed. Group Policy Local Users and Groups Group Policy Local Users and Groups
>

【讨论】:

  • 周一试试,好像有用多了!谢谢!
  • @DamnPeggy 做负责任的事,点赞这篇文章并接受它作为正确答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多