As Pyrogasm said, you'll need a damage detection system and most likely an indexing system. You should have these anyway, they're so important for making custom maps. I've been using Bribe's Unit Indexer and Damage Detection System in my maps and besides some issues with importing the systems over (like 1 or 2 variables bugging out and needing to be renamed/reset) it all works like a charm.
If you have issues importing the systems mentioned above I can help you along the way. They really aren't all that difficult to use once you get them up and running.
Here's an example of Bribe's Damage Event System in action. Once you have it imported, all you need to do is create a trigger with this event to detect whenever damage is dealt. If this is confusing than simply imagine that the event says "Whenever any unit is damaged".
-
Damage
-

Events
-


Game - DamageModifierEvent becomes Equal to 1.00
-

Conditions
-

Actions
-


If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-



If - Conditions
-




(Unit-type of DamageEventSource) Equal to Warrior
-




IsDamageSpell Equal to False
-



Then - Actions
-




-------- You can also track the rage using a real variable with an [array] --------
-




-------- Using a Unit Indexer system, each unit in the map has it's own unique custom value # --------
-




Set Rage[(Custom value of DamageEventSource)] = (Rage[(Custom value of DamageEventSource)] + 10.00)
-




-------- And/or if using mana, simply increase the mana --------
-




Unit - Set mana of DamageEventSource to ((Mana of DamageEventSource) + 10.00)
-



Else - Actions
The DamageEventSource is the source of the damage, so in this case it's your Warrior. With this system you can do just about anything. Like if you wanted to get really technical, you could add Rage equal to a percentage of the damage dealt. Like, set Rage = DamageEventAmount (how much damage was dealt) *0.10. So you gain 10% of the damage dealt as Rage. Also, in this example I check if the damage WASN'T from a spell (determining that it was instead an autoattack) with the boolean IsDamageSpell Equal to False.
--------------
Also, if you don't want to use mana to represent rage, you can display it in a couple of ways:
1) Display it in a multiboard.
2) Display it with floating text above the Warrior's head.
If you do it one of these ways then you'll have to store each Warrior's rage in a Real variable like I do in the example above.