Tsunamis are generated by any powerful disturbance that may be capable of displacing a large volume of ocean water. Such disturbances include earthquakes, nuclear explosions, landslides, volcanic eruptions, etc. Such a sudden disturbance of water generates waves with very large wavelengths (amplitude or crest-to-crest spacing of a few hundred miles). Because of the ocean's depth, such displacement of water is rarely observed, even though the waves may be moving with velocities approaching 600-700 miles per hour near the ocean floor. The height of the waves is very small while it is in the ocean. When the waves reach shore, the elevation difference between shore and ocean level is less and we suddenly observe very tall waves, with devastating force. The size of tsunamis is a function of the intensity of the original disturbance (such as the intensity the of earthquake), the characteristics of the shoreline (the wave may be broken by features on the shoreline), the distance from the source of the original disturbance (such as distance from the epicenter of the earthquake: the closer to the epicenter, the more energy would be transferred and the bigger the tsunami would be), the depth of the water where the initial disturbance starts, the energy transfer efficiency between the disturbance and the tsunami, etc.
Hope this helps.