Since there is a space in the aliased command, you need to embed it in quotes. The correct syntax is
alias log='tail /var/log/messages'
Anyway without quotes you should have received an error and the alias should have been set as tail without arguments. Therefore, I think the real problem is that aliases, shell variables and shell functions set in the command line are local to the current shell session. If you open a new terminal all the previously defined aliases are lost. The same if you reboot the machine or simply log out of the current session.
If you want your aliases to be set-up every time you start a new shell (that is every time you open a new terminal) you need to put them in a configuration file, usually .bashrc in your home directory (provided your default shell is bash).
Some useful reading: http://tldp.org/LDP/Bash-Beginners-G...ect_03_01.html
(about shell initialization) and http://tldp.org/LDP/Bash-Beginners-G...ect_03_05.html
(about aliases). Hope this help.
And welcome to LinuxQuestions!