Closed pranavmarla closed 2 years ago
Thanks @pranavmarla, glad you were able to get this working with td-agent 4. We will add this to our backlog as an enhancement request.
Great, thank you @gp510 !
Thank you for reporting and telling us the workaround!
I looked into it and the issue is coming from openid_connect
gem is requiring active_model
gem, and it requires tz_info ~> 1.1
. either these gems fix their dependencies or we have to avoid using them.
Hey @pranavmarla, I was able to install fluend-hec v1.2.9 plugin in both td-agent 3 and td-agent 4 and received logs in splunk.
Result for td-agent 4
$ rpm -qa | grep td-agent
td-agent-4.3.0-1.el7.x86_64
$ sudo td-agent-gem install fluent-plugin-splunk-hec
Fetching attr_required-1.0.1.gem
Fetching connection_pool-2.2.5.gem
Fetching net-http-persistent-3.1.0.gem
Fetching mail-2.7.1.gem
Fetching activemodel-7.0.0.gem
Fetching validate_url-1.0.13.gem
Fetching mini_mime-1.1.2.gem
Fetching i18n-1.8.11.gem
Fetching activesupport-7.0.0.gem
Fetching validate_email-0.1.6.gem
Fetching aes_key_wrap-1.1.0.gem
Fetching json-jwt-1.13.0.gem
Fetching swd-1.3.0.gem
Fetching webfinger-1.2.0.gem
Fetching fluent-plugin-splunk-hec-1.2.9.gem
Fetching rack-2.2.3.gem
Fetching rack-oauth2-1.19.0.gem
Fetching openid_connect-1.1.8.gem
Successfully installed connection_pool-2.2.5
Successfully installed net-http-persistent-3.1.0
Successfully installed attr_required-1.0.1
Successfully installed i18n-1.8.11
Successfully installed activesupport-7.0.0
Successfully installed activemodel-7.0.0
Successfully installed validate_url-1.0.13
Successfully installed mini_mime-1.1.2
Successfully installed mail-2.7.1
Successfully installed validate_email-0.1.6
Successfully installed aes_key_wrap-1.1.0
Successfully installed json-jwt-1.13.0
Successfully installed swd-1.3.0
Successfully installed webfinger-1.2.0
Successfully installed rack-2.2.3
Successfully installed rack-oauth2-1.19.0
Successfully installed openid_connect-1.1.8
Successfully installed fluent-plugin-splunk-hec-1.2.9
Parsing documentation for connection_pool-2.2.5
Installing ri documentation for connection_pool-2.2.5
Parsing documentation for net-http-persistent-3.1.0
Installing ri documentation for net-http-persistent-3.1.0
Parsing documentation for attr_required-1.0.1
Installing ri documentation for attr_required-1.0.1
Parsing documentation for i18n-1.8.11
Installing ri documentation for i18n-1.8.11
Parsing documentation for activesupport-7.0.0
Installing ri documentation for activesupport-7.0.0
Parsing documentation for activemodel-7.0.0
Installing ri documentation for activemodel-7.0.0
Parsing documentation for validate_url-1.0.13
Installing ri documentation for validate_url-1.0.13
Parsing documentation for mini_mime-1.1.2
Installing ri documentation for mini_mime-1.1.2
Parsing documentation for mail-2.7.1
Installing ri documentation for mail-2.7.1
Parsing documentation for validate_email-0.1.6
Installing ri documentation for validate_email-0.1.6
Parsing documentation for aes_key_wrap-1.1.0
Installing ri documentation for aes_key_wrap-1.1.0
Parsing documentation for json-jwt-1.13.0
Installing ri documentation for json-jwt-1.13.0
Parsing documentation for swd-1.3.0
Installing ri documentation for swd-1.3.0
Parsing documentation for webfinger-1.2.0
Installing ri documentation for webfinger-1.2.0
Parsing documentation for rack-2.2.3
Installing ri documentation for rack-2.2.3
Parsing documentation for rack-oauth2-1.19.0
Installing ri documentation for rack-oauth2-1.19.0
Parsing documentation for openid_connect-1.1.8
Installing ri documentation for openid_connect-1.1.8
Parsing documentation for fluent-plugin-splunk-hec-1.2.9
Installing ri documentation for fluent-plugin-splunk-hec-1.2.9
Done installing documentation for connection_pool, net-http-persistent, attr_required, i18n, activesupport, activemodel, validate_url, mini_mime, mail, validate_email, aes_key_wrap, json-jwt, swd, webfinger, rack, rack-oauth2, openid_connect, fluent-plugin-splunk-hec after 22 seconds
18 gems installed
Result for td-agent 3
$ rpm -qa | grep td-agent
td-agent-3.8.1-0.el7.x86_64
$ sudo td-agent-gem install fluent-plugin-splunk-hec
Fetching: connection_pool-2.2.5.gem (100%)
Successfully installed connection_pool-2.2.5
Fetching: net-http-persistent-3.1.0.gem (100%)
Successfully installed net-http-persistent-3.1.0
Fetching: attr_required-1.0.1.gem (100%)
Successfully installed attr_required-1.0.1
Fetching: i18n-1.8.11.gem (100%)
Successfully installed i18n-1.8.11
Fetching: activesupport-7.0.0.gem (100%)
ERROR: Error installing fluent-plugin-splunk-hec:
activesupport requires Ruby version >= 2.7.0.
$ sudo td-agent-gem install -f fluent-plugin-splunk-hec
Successfully installed activesupport-7.0.0
Fetching: activemodel-7.0.0.gem (100%)
Successfully installed activemodel-7.0.0
Fetching: validate_url-1.0.13.gem (100%)
Successfully installed validate_url-1.0.13
Fetching: mini_mime-1.1.2.gem (100%)
Successfully installed mini_mime-1.1.2
Fetching: mail-2.7.1.gem (100%)
Successfully installed mail-2.7.1
Fetching: validate_email-0.1.6.gem (100%)
Successfully installed validate_email-0.1.6
Fetching: bindata-2.4.10.gem (100%)
Successfully installed bindata-2.4.10
Fetching: aes_key_wrap-1.1.0.gem (100%)
Successfully installed aes_key_wrap-1.1.0
Fetching: json-jwt-1.13.0.gem (100%)
Successfully installed json-jwt-1.13.0
Fetching: swd-1.3.0.gem (100%)
Successfully installed swd-1.3.0
Fetching: webfinger-1.2.0.gem (100%)
Successfully installed webfinger-1.2.0
Fetching: rack-2.2.3.gem (100%)
Successfully installed rack-2.2.3
Fetching: rack-oauth2-1.19.0.gem (100%)
Successfully installed rack-oauth2-1.19.0
Fetching: openid_connect-1.1.8.gem (100%)
Successfully installed openid_connect-1.1.8
Fetching: prometheus-client-2.1.0.gem (100%)
Successfully installed prometheus-client-2.1.0
Fetching: fluent-plugin-splunk-hec-1.2.9.gem (100%)
Successfully installed fluent-plugin-splunk-hec-1.2.9
Parsing documentation for activesupport-7.0.0
Installing ri documentation for activesupport-7.0.0
Parsing documentation for activemodel-7.0.0
Installing ri documentation for activemodel-7.0.0
Parsing documentation for validate_url-1.0.13
Installing ri documentation for validate_url-1.0.13
Parsing documentation for mini_mime-1.1.2
Installing ri documentation for mini_mime-1.1.2
Parsing documentation for mail-2.7.1
Installing ri documentation for mail-2.7.1
Parsing documentation for validate_email-0.1.6
Installing ri documentation for validate_email-0.1.6
Parsing documentation for bindata-2.4.10
Installing ri documentation for bindata-2.4.10
Parsing documentation for aes_key_wrap-1.1.0
Installing ri documentation for aes_key_wrap-1.1.0
Parsing documentation for json-jwt-1.13.0
Installing ri documentation for json-jwt-1.13.0
Parsing documentation for swd-1.3.0
Installing ri documentation for swd-1.3.0
Parsing documentation for webfinger-1.2.0
Installing ri documentation for webfinger-1.2.0
Parsing documentation for rack-2.2.3
Installing ri documentation for rack-2.2.3
Parsing documentation for rack-oauth2-1.19.0
Installing ri documentation for rack-oauth2-1.19.0
Parsing documentation for openid_connect-1.1.8
Installing ri documentation for openid_connect-1.1.8
Parsing documentation for prometheus-client-2.1.0
Installing ri documentation for prometheus-client-2.1.0
Parsing documentation for fluent-plugin-splunk-hec-1.2.9
Installing ri documentation for fluent-plugin-splunk-hec-1.2.9
Done installing documentation for activesupport, activemodel, validate_url, mini_mime, mail, validate_email, bindata, aes_key_wrap, json-jwt, swd, webfinger, rack, rack-oauth2, openid_connect, prometheus-client, fluent-plugin-splunk-hec after 28 seconds
16 gems installed
I wasn't able to install the gem directly, but was able to install using -f
flag. You need to set require_ssl_min_version
to false value if you are using td-agent 3.
Thanks @harshit-splunk . I was able to confirm that this issue is no longer present when installing the Splunk plugin with td-agent 4 (specifically, the Splunk plugin is now able to handle the newer version of tzinfo that is installed by td-agent 4). Presumably, this is because one of the gems @rockb1017 mentioned above fixed their dependencies.
What happened: I tried to do 2 things: Step 1: Install td-agent Step 2: Using the bundled Ruby gem (
td-agent-gem
), install Splunk output pluginUnfortunately, out of the box, the Splunk plugin is incompatible with both the latest major versions of td-agent (3 and 4)!
What you expected to happen: Installing Splunk plugin for td-agent should just work without issues, similar to installing other output plugins like Kafka.
How to reproduce it (as minimally and precisely as possible):
td-agent-gem sources --add https://rubygems.org/
td-agent-gem install fluent-plugin-splunk-hec
At this point, the Splunk plugin installation will fail because it tries to install activesupport 6.0.3.2, which requires Ruby >= 2.5.0 -- unfortunately, the version of Ruby bundled with td-agent 3 is only 2.4.10:Thus, the Splunk plugin is incompatible with td-agent 3.
td-agent-gem sources --add https://rubygems.org/
td-agent-gem install fluent-plugin-splunk-hec
This time, the Splunk plugin installation (and activesupport 6.0.3.2 installation) will work, because the version of Ruby bundled with td-agent 4 is 2.7.1:i.e. When we install td-agent 4, it installs tzinfo 2.0.2 -- however, the Splunk plugin (specifically the activesupport dependency) cannot handle that newer version. As part of the Splunk plugin installation, it installs an older compatible version of tzinfo (1.2.7) -- however, since the newer incompatible version (2.0.2) is still present from the previous td-agent installation, activesupport fails to activate, which means the Splunk plugin fails to activate.
Thus, the Splunk plugin is incompatible with td-agent 4.
Anything else we need to know?:
Workaround: As of now, I was not able to get the Splunk plugin working with td-agent 3. However, I was able to eventually get it working with td-agent 4, by manually uninstalling the newer version of tzinfo (2.0.2) (
td-agent-gem uninstall tzinfo -v '>= 2.0'
) before starting up Fluentd (and activating the Splunk plugin).Goal: Ideally, it should be possible to just install the Splunk plugin for td-agent and have it work, regardless of whether it's v3 or v4, without us having to do any manual workarounds. At the very least though, given how many people use td-agent, it would helpful to have this incompatibility (and workaround) documented in the main README page.
Environment:
td-agent: td-agent 3: 3.8.0 td-agent 4: 4.0.1
Ruby version: td-agent 3:
td-agent 4:
OS: Ubuntu 18.04.4 LTS