How do I build index for MySQL table that inserts a lot and queries only most recent data
PRIMARY KEY (OrgID, MachID, Date) would be good for that query.  But, a PRIMARY KEY is necessarily "unique"; is that combination unique?  If not unique, then make it a plain INDEX and have something else as the PRIMARY KEY.

If we are talking about millions of rows per day, then Summary tables would be worth doing.

If it is usually "yesterday", then consider:

AND Date &gt;= CURDATE() - INTERVAL 1 DAY
AND Date  &lt; CURDATE()


Or, more generically, (where you insert the days ago for '?'):

AND Date &gt;= CURDATE() - INTERVAL ?   DAY
AND Date  &lt; CURDATE() - INTERVAL ?-1 DAY


More

Insuring sequential -- not that important.  With that 3-part PK, you will be inserting sequentially in several spots, namely each combination of OrgID and MachID.

Insert do need to update secondary keys, but this is usually not a big deal.  (To get really technical, see "InnoDB's change buffering".)

If you are going to be inserting more than 100 rows per second, then I recommend gathering them up and batch inserting.  Also, see innodb_flush_log_at_trx_commit = 2.