Member since
07-30-2019
3387
Posts
1617
Kudos Received
999
Solutions
My Accepted Solutions
| Title | Views | Posted |
|---|---|---|
| 140 | 11-05-2025 11:01 AM | |
| 386 | 10-20-2025 06:29 AM | |
| 526 | 10-10-2025 08:03 AM | |
| 362 | 10-08-2025 10:52 AM | |
| 403 | 10-08-2025 10:36 AM |
12-06-2024
01:11 PM
1 Kudo
@sha257 NiFi is failing to startup because the execution of the ldap-user-group-provider during startup failed to complete successfully. Did you set the page size to 500 in the ldap-user-group-provider? There really is no harm in syncing groups that have no members. They can't be used for authorization since a group can't authenticate into NiFi. All that matters is that the groups with members are getting synced and those members are listed for the group. Then group based authorizations can be established to control access for those member identities. Keep in mind that the user and group identity strings being synced are loaded into NiFi heap memory. So you want to make sure your group search filter is syncing only the few groups containing user who will need to access your NiFi. So instead of using wildcards, declare the specific CNs for only the groups containing users that need to access your NiFi. Typically NiFi specific groups are created in LDAP/AD for managing authorized access to NiFi. Please help our community thrive. If you found any of the suggestions/solutions provided helped you with solving your issue or answering your question, please take a moment to login and click "Accept as Solution" on one or more of them that helped. Thank you, Matt
... View more
12-05-2024
07:11 AM
@sha257 NiFi's ldap-user-group-provider does not support nested groups (NIFI-8035) Based on what you have shared, your user "W0YZ1" is not a direct memberOf group: AG-X-SAMPLE-ADMIN The user is a member of a bunch of other groups and I am guessing that one of more of these groups are a member of the above group. And since your user search filter is only going to return users that are a direct memberOf: CN=AG-X-SAMPLE-ADMIN,OU=Groups,DC=corp1,DC=ad1,DC=xyz,DC=net NiFi's ldap-user-group-provider is not going to return the sample user you shared above. Something you may want to try here: It is not required that both the user and group search properties are configured in order to get users and groups returned. In your case I would suggest only performing the group sync to see what you get. The following properties should be adjusted: <property name="Page Size">500</property>
<property name="Sync Interval">30 mins</property>
<property name="User Search Base"></property>
<property name="User Object Class"></property>
<property name="User Search Scope">SUBTREE</property>
<property name="User Search Filter"></property>
<property name="User Identity Attribute">sAMAccountName</property>
<property name="User Group Name Attribute"></property>
<property name="User Group Name Attribute - Referenced Group Attribute"></property>
<property name="Group Search Base">OU=Groups,DC=corp1,DC=ad1,DC=xyz,DC=net</property>
<property name="Group Object Class">group</property>
<property name="Group Search Scope">SUBTREE</property>
<property name="Group Search Filter">(|(cn=AG*)(cn=UG*))</property>
<property name="Group Name Attribute">sAMAccountName</property>
<property name="Group Member Attribute">member</property>
<property name="Group Member Attribute - Referenced User Attribute"></property> The above changes assume that your groups have "member" attribute. I recommend always setting a page size of either 500 to avoid missing returns for large queries. I do not recommend re-syncing users and groups every 2 mins as you had originally set. This adds unnecessary load on CPU. Keep in mind that all user and group identities synced are loaded into NiFi's heap memory. The above setup will return all groups starting from the group search base that start with yoru configured search filter. From each returned group all the member lines will be returned which should contain the full DN for user members. Those returned DNS are then looked up to return the "sAMAccountName" string for each user member. I saw you were using full DNs for yoru groups previously (which is ok). The sAMAccountName string for your groups will also be used as the group identity. You can also out the ldap-user-group-provider class in debug in the NiFi logback.xml to get output of the user and group identity strings synced with ease sync execution: org.apache.nifi.ldap.tenants.LdapUserGroupProvider Please help our community thrive. If you found any of the suggestions/solutions provided helped you with solving your issue or answering your question, please take a moment to login and click "Accept as Solution" on one or more of them that helped. Thank you, Matt
... View more
12-05-2024
06:38 AM
@bgumis One way you can accomplish what you want to do is using an UpdateAttribute processor and RouteOnAttribute processor between your PutEmail and InvokeHTTP processors. The UpdateAttribute would be used to add an attribute to the FlowFile with the current time in milliseconds using NiFi Expression Language (NEL) statement: ${now():toNumber()} The success relationship of the update Attribute processor would be routed to the RouteOnAttribute processor. In the RouteOnAttribute processor you setup a new property that compares the records timestamp added to FlowFile by UpdateAttribute against the current time in milliseconds to see if 24 hours has passed yet. If true, the FlowFile will route to the expression property name relationship. If false, the FlowFile will route to the "unmatched" relationship which can be looped back on RouteOnAttribute. The "unmatched" relationship should be configured to use "retry" to trigger penalization of FlowFiles. This helps limit cpu usage by slowing how often the FlowFile is re-processed by penalizing the FlowFile on each retry. The "Retry Max Back Off Period" would translate into the max time beyond 24 hours a FlowFile may get routed to the invokeHTTP. I assume 24 hours is a min wait period and not a hard limit. The NEL statement used in RouteOnAttribute would look like this: ${now():toNumber():minus(${emailTime}):ge('86400000')} The other option would require a custom script to set penalization of 24 hours on each FlowFile after the putEmail processor. Please help our community thrive. If you found any of the suggestions/solutions provided helped you with solving your issue or answering your question, please take a moment to login and click "Accept as Solution" on one or more of them that helped. Thank you, Matt
... View more
12-04-2024
06:53 AM
@sha257 This is typically caused by a bad configuration in the ldap-user-group-provider in the authorizers.xml. It would be difficult for me to provide and configuration specifics with out a sample output from your AD for a group and one of the group members. However, if you can share your ldap-user-group-provider configuration (minus any sensitive values), I may be able to offer some suggestions. Please help our community thrive. If you found any of the suggestions/solutions provided helped you with solving your issue or answering your question, please take a moment to login and click "Accept as Solution" on one or more of them that helped. Thank you, Matt
... View more
11-22-2024
05:50 AM
2 Kudos
@rajivswe_2k7 Why are you fetching same files twice? I don't follow the "fail" all 5 if any one of them fails. You successfully wrote some of them to destinations. So what action are you taking when a partial failure happens (for example only 1 of 5 fails to write to archive? Why not just build dataflow around failure relationships to notify you of the specific files that failed? Please help our community thrive. If you found any of the suggestions/solutions provided helped you with solving your issue or answering your question, please take a moment to login and click "Accept as Solution" on one or more of them that helped. Thank you, Matt
... View more
11-22-2024
05:25 AM
1 Kudo
@Armel316 Since you only have two user group providers (ldap and file), that means that both are returning user "xxx". If the ldap-user-group-provider is returning user "xxx" you don't want to define that same user through the file-user-group-provider. What this means is that the users.xml file that the file-user-group-provider is loading users from on startup contains user "xxx". The file-user-group-provider will ONLY generate a users.xml file if one does not already exist. If one already exist the file-user-group-provider will NOT make any modifications to an existing users.xml if you modify the provider configuration. Once a users.xml file exists, the expectation is that all future user/group modification happen via the UI. NOTE: The users.xml does not contain any users or group being loaded by other providers in to NiFi memory. So you have two options here: Rename the current users.xml file so a new one is created on startup with only the 3 defined node-identities. (this is preferred method) Manually modify the users.xml to remove all users that are being synced by the ldap-user-group-provider. Please help our community thrive. If you found any of the suggestions/solutions provided helped you with solving your issue or answering your question, please take a moment to login and click "Accept as Solution" on one or more of them that helped. Thank you, Matt
... View more
11-21-2024
05:40 AM
@rajivswe_2k7 What is the use case for wanting to hold downstream processing of FlowFiles until a min 10 are queued? This is not a typical use pattern for NiFi. While I am sure it could be done without using a scripting processor,I don't think it would be as efficient in terms of resources. Creative use of the MergeContent processor comes to mind here. Please help our community thrive. If you found any of the suggestions/solutions provided helped you with solving your issue or answering your question, please take a moment to login and click "Accept as Solution" on one or more of them that helped. Thank you, Matt
... View more
11-19-2024
10:52 AM
@Armel316 You used the wrong composite provider "composite-user-group-provider". Since one of your providers is the "file-user-group-provider" (a configurable provider- meaning one you can add users and groups to via the UI), you need to use the "composite-configurable-user-group-provider". I see in the Apache NiFi-Registry documentation that the example is wrong. https://nifi.apache.org/docs/nifi-registry-docs/html/administration-guide.html#composite-implementations <userGroupProvider>
<identifier>composite-configurable-user-group-provider</identifier>
<class>org.apache.nifi.registry.security.authorization.CompositeConfigurableUserGroupProvider</class>
<property name="Configurable User Group Provider">file-user-group-provider</property>
<property name="User Group Provider 1">ldap-user-group-provider</property>
</userGroupProvider> What do you see in the nifi-registry-app.log when you try to start version control? What is the output from: openssl s_client -connect <nifi-registry hostname>:<port> -v openssl s_client -connect <nifi node hostname>:<port> -v Above can be checked to verify proper trust exists between NiFi and NiFi-Registry. What is the exact case sensitive user identity displayed in the upper right corner of your NiFi UI for the user authenticated to NiFi that is attempting to start version control? Does the same user Identity (case sensitive) exist in your NiFi-Registry and been assigned read, write, and delete on the bucket? Please help our community thrive. If you found any of the suggestions/solutions provided helped you with solving your issue or answering your question, please take a moment to login and click "Accept as Solution" on one or more of them that helped. Thank you, Matt
... View more
11-19-2024
10:30 AM
1 Kudo
@phadkev Would need to see more of the nifi-app.log to better understand what is going on here. Are you seeing the same org.apache.nifi.controller.StandardProcessorNode Timed out while waiting for OnScheduled exception for other components or just this executeScript processor? The exception itself is generic and could be thrown for any processor class. Are you ever seeing the log line telling you the NiFi UI is available at the following urls? If so NiFi is up. Are you seeing NiFi shut back down with some exception and stack trace in the nifi-app.log. What you shared implies NiFi is having issues scheduling this specific processor to execute. This could very well be caused by an issue with the custom script that was build and used in this processor. If you NiFi is really not coming up, you could modify the nifi.properties file by changing "nifi.flowcontroller.autoResumeState=true" to "nifi.flowcontroller.autoResumeState=false". This will allow you NiFi to start without starting any processors. You could then search the UI for the ExecuteScript component processor with id "acb441ba-c36b-1fdd-53f2-3a4821d43833". Disable it and start all your other processors. Restart your NiFi to see if you still have any issues. This isolates the issue to this processor and your script. Please help our community grow. If you found any of the suggestions/solutions provided helped you with solving your issue or answering your question, please take a moment to login and click "Accept as Solution" on one or more of them that helped. Thank you, Matt
... View more
11-19-2024
07:00 AM
@ZNFY You may find this other community thread useful for setting up a Docker NiFi cluster: https://community.cloudera.com/t5/Community-Articles/NiFi-cluster-sandbox-on-Docker/ta-p/346271 The Apache NiFi Docker is built around setting up a standalone (non-clustered) instance of NiFi. Please help our community thrive. If you found any of the suggestions/solutions provided helped you with solving your issue or answering your question, please take a moment to login and click "Accept as Solution" on one or more of them that helped. Thank you, Matt
... View more