If you want to leverage the cacti syslog plugin to process SNMP traps you will need to use SNMPTT
to translate the trap for you and then forward it over to syslog
the issue with this is the syslog messeges will always look like they are coming from local host
I have created a simple python script that will collect the messege from SNMPTT and collect the host name via variable substitution
available in SNMPTT and use that data to formulate the sql insert to the syslog_incoming database table
then the syslog plugin poller does the rest
the script is available on my github https://github.com/bmfmancini/Cacti_SNMPTT_SYSLOG-connector