Elasticsearch is a distributed system. You can use monitoring tools like kopf, head, marvel etc. to gain insight.
Monitoring a single query through the system can be achieved by using the query profiler https://www.elastic.co/elasticon/conf/2016/sf/profiling-elasticsearch-queries-for-fun-and-profit
Monitoring indexing is possible by evaluating the Java API
BulkResponse object which Elasticsearch returns.
Index segment monitoring can be done by plugins like Whatson https://github.com/xyu/elasticsearch-whatson
Low-level monitoring (files etc.) is hard because of several reasons: the volume of data is massive, the monitored nodes are distributed and working asynchronously, and most important the insight will be rather limited by watching raw data and events. That is the reason why monitoring tools like Marvel do the heavy lifting and show graphical data (trends) and statistics.