Fault diagnosis is an indispensable technique to ensure the high-performance operation of a mechanical system during its life-cycle. Existing research works mainly limits in the diagnosis of single component or some certain components of interest. The systematic investigation of fault diagnosis for a full system is rare, making it inefficient to implement the method developed in the practice of a complete engineering system. In this paper, a system-level fault diagnosis methodology is proposed based on fault behaviour analysis, optimal sensor placement and intelligent data analytics for multiple fault detection and isolation in a complex machine system. A dynamical model of a mechanical system is firstly constructed using Bond graph, and the response characteristics of observable parameters under different faults are derived by analysing the functional relationships of system variables. A set partitioning theory-based sensor placement approach is then presented for designing a condition monitoring system with a quantity-optimal set of sensors for a desired performance of fault isolatability. Two multivariate statistic measures, i.e. Hotelling's T2 and Q are calculated from the system operation parameters as the indices to detect the potential faults. The abnormal parameters are separated by constructing a contribution plot once a fault is reported. The separated abnormal parameters are then input to a Bayesian network model, and the real root cause of the abnormity is isolated by blending the observations with expert knowledge of diagnosis. The diesel engine lubrication system, which involves three common domains: mechanical, hydraulic and thermodynamic processes, is taken as an example to show the implementation and performance of proposed approach. This approach can be used to design a system-level fault diagnosis scheme that including various tasks such as fault behaviour analysis, sensor placement, data collection, data processing, information fusion in order to achieve an accurate fault isolation ultimately.