My team is in this situation as well. We have a lot of continuing development work, but also some support. And, we support production services, so if there is an issue, we may need to drop everything and fix it.
We opted, so far, to keep using scrum as before, but reserving some time every sprint for ongoing tickets and other work not known in advance. Every day, there is a dedicated person for handling incoming tickets, Nagios notifications, etc. In case of need, that person can always consult or hand over things to another engineer - but we try to avoid this. This reduces the disturbance in the flow of other engineers.
Planning the reserved time may seem very difficult: the load of support tends to vary. However, our experience is that most of the time, our reserved time is in the right range. There are obviously exceptions, where we lose several man-days extra, but in the worst case we drop items from the sprint. I cannot recall the last time this happened though.
To summarise: most of the time, support load is quite predictable. Reserve time in the sprint for this, and it should work out. But, the most important advice I can give is: try something, even if you're not so sure it's the right thing, and look back on it in your retrospective. You only know for sure once you've tried, and reflected.