Is there any problem to reuse the prime p, g and a in Diffie-Hellman? Suppose I always reuse p, g and a in DH and there is someone monitoring my communication. Is there a way this person can use this to perform some kind of attack to me?

I believe that reusing p and g isn't a big issue, however I'm not quite sure about a.
Actually, there is one potential problem to reusing $a$ values:

Background: $g$ generates a subgroup of size $q$; $q$ is a divisor of $p-1$, but it is usually selected as a prime, and is hence less than $p-1$ (which is obviously composite).

What an attacker could do is, for any small prime $r$ which divides $(p-1)/q$, he can potentially learn $a \bmod q$; he does this by negotiating with you, selecting as his share a value $g^b \cdot h$, where $b$ is a value he knows (doesn't matter what it is), and $h$ is a value of order $q$.  Then, when you'll do is generate a shared secret $(g^b \cdot h)^a = g^{ab} \cdot h^{a \bmod r}$; he can easily compute $g^{ab}$, and so he knows the shared secret is one of $r$ different values (depending on the value of $a \bmod r$).

If $(p-1)/q$ has a number of small primes, the attacker can deduce quite a bit about $a$.  One example of such a $p, q$ pair which has been actually proposed is Group 23 of RFC 5114; this particular group has $$(p-1)/q = 2 * 3 * 3 * 5 * 43 * 73 * 157 * 387493 * 605921 * 5213881177 * 352891
0760717 * 83501807020473429349 * C489$$ (where $C489$ is a 489 digit composite), and so the attacker can actually deduce enough to make brute force search of a 256 bit exponent feasible.

Now, there are several ways to protect yourself from this:


When you receive a value $b$, always check to see if $b^q = 1$; if not, someone is playing games.  This works, but it is expensive.
Use a 'safe prime' group; that is, one where $p-1 = 2q$.  This implies that the attacker can learn one bit of $a$ (the least significant bit), but nothing else.
Don't reuse $a$ values; what the attacker learns is the value $a \bmod r$ for the $a$ you used with the exchange with him; if you use different values of $a$ for unrelated exchanges, this doesn't buy him anything.


Also, note that the idea of using $q = p-1$ really isn't a protection; if $q$ has a small factor $r$, the attacker can also learn $a \bmod r$ just by examining $g^a$, hence the same vulnerability is there (except that not reusing $a$ doesn't actually provide protection).