How secure is a linked server in SQL Server
I want to log all logons using a logon trigger from server A in server B.


Ideally, if you are using Enterprise edition, then as Shawn mentioned, you can use SQL Server Audit.

You can even set up a light weight server side trace and then define a WMI event notification - TRACE_FILE_CLOSE to automatically load the trace data into a table when it rollsover.

Another option is - you can use the script for Logon Trigger posted by me. Note that it wont work for the existing connections and it a limitation of Logon triggers. All new connections will go through the Logon Trigger. 


  it is important that my database be able to insert the log into A, but it should not have delete or update access on B.


You can use transactional replication by just replicating the LOGON Table to server B (in your case). Make sure you choose - Do not replicate DDL changes option.


  when I want to monitor the logons on A the only possible solution should be doing it on B.


You can create a view using Linked server and just give select permission to the view. This way you can control who can access the info.

As a side note, make sure you do not return a full data set in the view, rather just limit it with last 10 -15 days of login audit, so when a user queries the data, it will return a small amount of data only.