The Internet of Things (IoT) is a technological paradigm involved in a diversity of domains with favorable impacts on people’s daily lives and the development of industry and cities. Nowadays, one of the most critical challenges is developing software for IoT systems since the traditional Software Engineering methodologies and tools are unproductive in the face of the complex requirements resulting from the highly distributed, heterogeneous, and dynamic scenarios in which these systems operate. Model-Driven Engineering (MDE) emerges as an appropriate approach to abstract the complexity of IoT systems. However, there are no domain-specific languages (DSLs) aligned to standardized reference architectures for IoT. Furthermore, existing DSLs have an incomplete language to represent the IoT entities that may be needed at the edge, fog, and cloud layers to monitor IoT environments. Therefore, this paper proposes a domain-specific language named Monitor-IoT, which supports developers in designing multi-layer monitoring architectures for IoT systems with high abstraction, expressiveness, and flexibility. Monitor-IoT consists of a high-level visual modeling language and a metamodel aligned with the ISO/IEC 30141:2018 reference architecture. In addition, it provides a language capable of modeling architectures with a wide variety of digital entities and dataflows (synchronous and asynchronous) between them across the edge, fog, and cloud layers to support the monitoring of a diversity of IoT scenarios. The empirical evaluation of Monitor-IoT through the application of an experiment, which contemplates the use of the Technology Acceptance Model (TAM), demonstrates the intention of the participants to use this tool in the future since they consider it easy to use and useful.