Work from the last element in the chain. In your model, the vertical arm is affected by the vertical piston, so link those with the joint connector. Now that piston is going to be affected as part of a group for the next arm section. So group the first piston to the second arm element. When you connect the second piston to the group, everything moves relative to that connector. You then group the primary arm segment with the second piston, and tie the servo to the primary arm group. So now the servo acts on the arm segments and the pistons, and they all rotate around the servo axis.
You need to sort out the leftover tape measure marks (get rid of them), make that secondary arm section (L shaped bit) a single object, and also make your piston min/max values much bigger. You are going from 0 to -0.5 movement range. Go big, then reduce to suit. I went +5 to -5, and got about half length of the arm movement in each direction. And then look at how the sketchy shape options change the behavior. The shape dictates how the object will move, and also how it interacts with other objects it comes into contact with. Take a simple cube, place it a distance above a floor, then run the animation. I should move/roll/bounce as expected of a cube shape. Now change the shape value to a cylinder and repeat. It took me a long time to get the hang of using right mix of shapes, link sequence and collision settings to make a decent animation. I did a 6 cylinder in-line car engine, complete with camshafts and valve train, and the animation setup didn’t do a lot for my general mood and well-being! Experiment, experiment and more experimenting…you’ll get the hang of it.