rsyslog are a good idea, both can handle local and remote logging. It's usually done using UDP, so yes, messages can be lost.
rsyslog can be configured to use TCP and even TLS, though.
You could have a hybrid deployment, e.g. have syslog as sender and rsyslog as receiver.
With syslog you can write something like:
/etc/syslog.conf on sender and
/etc/rsyslog.conf on receiver and get all your messages collected on receiver.