From Latin -or, -ōris.
For earlier -ōs, from Proto-Indo-European *-ōs, for original *-oss, i.e. the neuter s-stem *-os with masculine nominative *-s. The ō from the nominative case was made common to all cases originally with non-ablauting o (the three exceptions were arbor, mulier and Cerēs). Afterwards nom.sg. -ōr > -or, by Latin sound laws. Thus paradoxically, as in the r-stems (soror, -tor), in the resulting paradigm the one form with a short stem vowel is the only form whose stem was etymologically long.
From Proto-Germanic *-ar-. Akin to Old High German -ar.
From Latin -(a)tor.