So in general, it's satellite observations (SOHO, STEREO) for initial predictions and observations of CMEs***. CMEs are constantly happening, but in every direction, not just at us. If one is pointed at us, once the initial shock hits the L1 point* it's more predictable. That's where satellites like ACE and DSCOVR sit about 1.5 million kilometers upstream from Earth, giving us roughly 15-60 minutes of warning once a solar wind disturbance arrives there.
The shock models and reports look like this:
The flux ropes** which bring the spectacular shows come after. These twisted magnetic field structures in coronal mass ejections (CMEs) produce some of the most dramatic aurora displays when they interact with Earth's magnetosphere in just the right way. Conditions like solar wind speeds, etc. affect visibility as well.
Before the L1 point it's a lot of high level guess work and modelling including ground-based solar observations and magnetometer networks, but those are more important after L1. The ground based stuff are some of the first metrics you see on the Solar Weather dashboard. After the L1 point, though, it's countdown time for the good ones. The app sends out alerts for big ones like this.
A caveat, space weather is one of those fields where there is a bit of an art to the science... The sun is a bit like a cat, we haven't quite figured out all of it's quirks and it doesn't always do what we expect it to do.
* https://en.m.wikipedia.org/wiki/Lagrange_point
** https://en.m.wikipedia.org/wiki/Flux_tube https://www.nasa.gov/image-article/flux-ropes-sun/