Can I restart logstash while beats and ES are running?

Currently Beats are pushing logs to LS then LS push processed data to ES, can I safely restart LS while both of them are running and everything will be re-connected without losing any log event?

Yes, you don't have to worry about anything. Beats will continue as soon it gets back connection to LS.