This paper provides a comprehensive literature review on Predictive Maintenance (PdM) with emphasis on system architectures, purposes and approaches. In industry, any outages and unplanned downtime of machines or systems would degrade or interrupt a company's core business, potentially resulting in significant penalties and unmeasurable reputation loss. Existing traditional maintenance approaches suffer from some assumptions and limits, such as high prevent/repair costs, inadequate or inaccurate mathematical degradation processes and manual feature extraction. With the trend of smart manufacturing and development of Internet of Things (IoT), data mining and Artificial Intelligence (AI), etc., PdM is proposed as a novel type of maintenance paradigm to perform maintenances only after the analytical models predict certain failures or degradations. In this survey, we first provide a high-level view of the PdM system architectures including the Open System Architecture for Condition Based Monitoring (OSA-CBM), cloud-enhanced PdM system and PdM 4.0, etc. Then, we make clear the specific maintenance purposes/objectives, which mainly comprise cost minimization, availability/reliability maximization and multiobjective optimization. Furthermore, we provide a review of the existing approaches for fault diagnosis and prognosis in PdM systems that include three major subcategories: knowledge based, traditional Machine Learning (ML) based and DL based approaches. We make a brief review on the knowledge based and traditional ML based approaches applied in diverse industrial systems or components with a complete list of references, while providing a comprehensive review of DL based approaches. Finally, important future research directions are introduced.