How do you build personas based on real users

I've seen a lot of really 'pretty' personas online. but my question is how to build personas based on real users. how do you gather the info to create a persona? Is it from interviews, observations, surveys or usage data? and how to you translate this research into the personas.