使用 python 脚本编辑 logstash 中的数据
Use python script to edit data in logstash
我有一个 logstash
配置,它从 MySQL 数据库获取数据并将数据发送到 elasticsearch
。
这是我的配置:
input {
jdbc {
clean_run => true
jdbc_driver_library => "/usr/share/java/mysql-connector-java.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://IP:PORT/DATABASE"
jdbc_user => "myuser"
jdbc_password => "mypassword"
use_column_value => true
tracking_column => "field1"
schedule => "*/2 * * * *"
statement => "SELECT * FROM test"
}
}
**need something here before the 'output' section ?**
output {
elasticsearch {
hosts => ["http://ELASTICSEARCH_IP:PORT"]
index => "myindexname"
document_id => "%{field1}"
}
}
一切正常,但我需要添加一些值依赖于其他列值的列,因此我尝试编写 Python 脚本来执行此操作。有没有办法在 elasticsearch
中发送数据之前对 add/edit 列执行 python 脚本?我需要 filter
选项吗?
编辑:
例如,我使用 python 脚本来:
- 根据日期时间字段创建周数列。
- 根据日期时间字段创建月份数字列。
- 编辑 'name' 列并替换一些特殊字符('/'、'-'、':' 等...)
- 根据另一列创建线性趋势线。
- 根据另一列创建移动平均线。
- 替换某些列的值(例如:将 'y' 替换为 'yes',将 'n' 替换为 'no')。
我终于用ruby代码搞定了。
感谢小伙伴们的帮助!
我有一个 logstash
配置,它从 MySQL 数据库获取数据并将数据发送到 elasticsearch
。
这是我的配置:
input {
jdbc {
clean_run => true
jdbc_driver_library => "/usr/share/java/mysql-connector-java.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://IP:PORT/DATABASE"
jdbc_user => "myuser"
jdbc_password => "mypassword"
use_column_value => true
tracking_column => "field1"
schedule => "*/2 * * * *"
statement => "SELECT * FROM test"
}
}
**need something here before the 'output' section ?**
output {
elasticsearch {
hosts => ["http://ELASTICSEARCH_IP:PORT"]
index => "myindexname"
document_id => "%{field1}"
}
}
一切正常,但我需要添加一些值依赖于其他列值的列,因此我尝试编写 Python 脚本来执行此操作。有没有办法在 elasticsearch
中发送数据之前对 add/edit 列执行 python 脚本?我需要 filter
选项吗?
编辑: 例如,我使用 python 脚本来:
- 根据日期时间字段创建周数列。
- 根据日期时间字段创建月份数字列。
- 编辑 'name' 列并替换一些特殊字符('/'、'-'、':' 等...)
- 根据另一列创建线性趋势线。
- 根据另一列创建移动平均线。
- 替换某些列的值(例如:将 'y' 替换为 'yes',将 'n' 替换为 'no')。
我终于用ruby代码搞定了。 感谢小伙伴们的帮助!