I would have modeled this completely different right from the start. The easiest and quickest way would be the one by @RobinBetts but here is another one so that you get an idea what other tools exist in Blender so that the Boolean modifier is not necessary.
I don't know if your cylinders and the hole have specific dimensions or if you just modeled them with random sizes - but it's quite easy to get something like this with the correct dimensions without any need for a Boolean modifier.
Let's say you want to create this thing: the base should have a radius of 1 m and be 0.2 m high, then it should extend upwards 1 m with a radius of 0.6 m (0.4 m smaller than the base) and there should be a vertical hole with a radius of 0.3 m (0.3 m less than the radius before, 0,7 m less than the base).
Then I would do it like that:
Shift+A to Add a Cylinder. In the tool options, set the Radius to 1 m (if it isn't already) and the Depth to 0.2 m to get the base.
Next select the top face and hit I to inset the face followed by .4Return to make the inner radius 0.6 m.
With the inner face still selected press E1Return to extrude 1 m along the normal to get the height of the upper cylinder.
To create a circle with 0.3 m radius for the hole, inset the top face by 0.3 m with I.3Return.
Now select the bottom face of the base. This has a larger radius, so you need to inset it 0.7 m to get same radius for the hole, I.7Return.
Now select both inner faces for the hole. From the viewport menu select Edge > Bridge Edge Loops. This way the top and bottom faces are deleted and their edges are connected to build the inner walls of the hole.
And that's it for the modeling. You already got an accepted answer where the Weight method for the Bevel modifier is explained so I'll leave that to you, since your problem was primarily not the beveling itself but the mesh of your object.