Practical IDC low cost monitoring

Abstract: The scale of telecom IDC services is expanding. More and more customers require telecom to provide personalized host monitoring and performance reporting services. Buying genuine server monitoring software is costly and does not necessarily meet the individual requirements of customers. The project focuses on building a low-cost utility server resource and performance monitoring platform, and providing reporting and alerting services, as well as scalability based on customer needs. The main problem solved by this project is to provide cost-effective personalized host monitoring services for IDC customers, improve service quality, and effectively guarantee the number of IDC customers.

1. Software development background and goals

1.1 R&D Background With the emergence of IDC data centers in multiple VIP levels in the province, IDC customers with annual revenues of 100,000 or even millions have also increased. However, many customers have higher requirements due to maintenance and security requirements. It is a common requirement to provide host monitoring and performance reporting services. At present, the most lack of domestic IDC is a perfect monitoring system. The operation of the server is not effectively monitored and reported, which not only increases the management workload of IDC, but also affects the customer service quality of the IDC network management center. Even if there is monitoring software that can be purchased, there are problems such as high price, high cost of subsequent maintenance, and inability to adapt to the individual needs of users.

Therefore, in order to improve the management level and service quality of IDC, to adapt to the situation of domestic Internet development, and to cooperate with the government and enterprises to carry out the online project smoothly, we are drawing on the development experience of IDC at home and abroad to carry out research on the IDC server monitoring and management system project. Developed a practical, low-cost IDC server monitoring and management system that can be put into practical use. It monitors the running status of the managed host and the usage status of performance resources in real time, and issues monthly graphic reports to report the running status of the host in time. The project is currently in practical use.

1.2 Design goals

(1) First of all, low cost. On the basis of low investment, it can meet the personalized needs of users.

(2) Secondly, it is easy to deploy. Based on the existing IDC network, it is possible to monitor the performance and resources of the user server without adding additional network hardware switching devices.

(3) The system can be expanded. The number of users, the number of monitoring hosts of the user, and the monitoring function module can be expanded. The expansion does not affect the host operation (4) can meet the user's individual needs. In the case of system scalability, auxiliary functions such as reports, real-time network chart viewing, SMS email alerts, and multi-terminal queries (mobile terminals) can be implemented.

2. Demand analysis

2.1 Function Module The whole project is divided into four major modules: host data acquisition module, central processing module, information display module, and user report module.

2.1.1 Host Data Acquisition Module

(1) Transparent Shell script collection

(2) Memory information

(3) CPU information

(4) Swap information

(5) Hard disk capacity information

(6) Other host resource information

(7) Acquisition frequency can be set

2.1.2 Central Processing Module

(1) Data collection

(2) Automatically organize data by user

(3) automatically organize data by server

(4) Automatically organize data by time

(5) Automatically organize data by data category

(6) Data processing frequency is controllable

2.1.3 Information Display Module

(1) Based on the real-time graphic display of web pages

(2) Login by user

(3) Query by data category

(4) query by server

(5) Query by time period

(6) Comparison by time chart

(7) Compare by server chart

(8) Specific data query and comparison in text form

2.1.4 User Report Module

(1) PPT report template

2.2 Host Data Acquisition Module Description

2.2.1 Host Data Collection

User: All monitored hosts.

Purpose: Obtain monitoring data of monitored hosts.

Input: None.

Processing: Get the monitoring host data transparently in a shell script and save it as a cookie in a fixed format: the data is stored in a cookie.

2.2.2 Host Data Upload

User: All monitored hosts.

Purpose: Upload data to the data processing center for centralized processing.

Enter: the name of the cookie.

Processing: Upload the cookie transparently in a shell script.

Output: None.

2.3 Central Processing Module Description

2.3.1 Function Configuration

User: The server that deploys the central processing module.

Purpose: Configure the parameters required for the module to function properly.

Input: various parameter values.

Processing: Configure various parameter outputs: None.

2.3.2 Data reading

User: The server that deploys the central processing module.

Purpose: To obtain data uploaded by each controlled server.

Enter: the name of the cookie.

Processing: Get relevant data from the cookie and back up the cookie.

Output: Data values ​​in a fixed format.

2.3.3 Data collection into the library

User: The server that deploys the central processing module.

Purpose: Organize messy data information and store it in a fixed format.

Input: Data processing in a fixed format: data entry.

Output: Boolean value indicates success or failure.

2.3.4 Program Flow Master Module

User: The server that deploys the central processing module.

Purpose: Program flow master.

Input: None.

Processing: According to the parameter configuration loop processing the above 2 and 3.

Output: None.

2.4 Information Display Module Description

2.4.1 Module Management

User: Telecom System Administrator.

Purpose: Configure website parameters, user accounts and permissions.

Input: various parameter values.

Processing: Set the parameter value.

Output: The web page displays the setting effect.

2.4.2 Chart data query by condition

User: A website login user with permissions.

Purpose: Query the chart of a certain type of data by condition.

Input: host name, time period, data display type.

Processing: Select the data value according to the input conditions to display as a web page.

Output: Chart output.

2.4.3 Text data query

User: A website login user with permissions.

Purpose: Query accurate data value input: host name, time period, data type, and other parameters.

Processing: Display precise data values ​​by condition.

Output: Accurate data is output as text.

3. Functional design

3.1 Architecture Design

3.1.1 Architecture

3.1.2 Operational model

3.2 Technical standards

3.2.1 Central Processing Server Side Technology

The C# programming language is designed by a development team led by Microsoft's A nder sHejlsberg and Scott Willamette. The language designed by the .NET platform, which allows programmers to be ported. On NET. This kind of porting is easier for the majority of programmers, because C# evolved from C, C++, and Java, and it uses the best features of the three languages ​​and adds its own features. C# is an event-driven, fully object-oriented visual programming language that we can use to write C# programs using an integrated development environment. With the IDE, programmers can easily build, run, test, and debug C# programs, reducing the time it takes to develop a usable program to a fraction of the time it takes to develop without the IDE. The process of quickly building an application using the IDE is called rapid reflection development.

.NET is Microsoft's XML Web services platform.

Regardless of the operating system or programming language, the XM LWeb service enables applications to transfer and share data over the Internet.

3.2.2 B/S structure server-side development technology

ASP is a Microsoft technology that is a server-side scripting technology that enables scripts embedded in web pages to be executed by Internet servers. Refers to Active Server Pages, a program that runs in IIS.

ASP.net is a program that is compiled and run based on a common language, so its power and adaptability can make it run on almost all platforms of web application developers (I only know that it can only be used in the past Windows 2000/2003 Server/VISTA/7). The basic language of the common language, the message mechanism, and the processing of the data interface can be seamlessly integrated into the ASP.net web application. ASP.net is also languageindependent (language independent), so you can choose a language that suits you best to write your program, or write your program in many languages. Now you have C# ( The combination of C++ and Java), VB, Jscript, C++, F++. In the future, the ability of such multiple programming languages ​​to work together to protect your current COM+-based programs can be fully ported to ASP.

Net.

3.2.3 Background Management System Technology

ExtJS can be used to develop RIA, which is a rich client AJAX application. It is written in javascript and is mainly used to create front-end user interface. It is a front-end ajax framework that is independent of background technology. Therefore, ExtJS can be used. Net, Java, Php and other development language development applications. ExtJs is based on YUI technology. It is developed by developer JackSlocum. It can be used to organize visualization components by reference to JavaSwing and other mechanisms. From CSS style application on UI interface to exception handling on data analysis, it is a rare one. A boutique of JavaScript client technology.

3.2.4 Database Technology

Oracle Database Management System is a database management software system that manages data based on relational and object-oriented. It has a wide range of applications in management information systems, enterprise data processing, Internet and e-commerce. Because of its superior performance in data security and data integrity control, and data interoperability across operating systems and hardware platforms, more and more users use Oracle as their application data processing system.

The Oracle database is based on a "client/server" schema structure. The client application performs activities that interact with the user. It receives user information and sends a request to the "server side." The server system is responsible for managing data information and various operational data activities.

3.3 Software features

3.3.1 Shell Script Part (Data Acquisition)

Module function description: Fully transparent script written by the shell command built in the host operating system to obtain basic information of host resources and generate corresponding cookie files. The files are transferred to the central processing server through the ftp client that comes with the operating system.

Performance: The frequency of data collection is determined by configuring crontab or scheduling tasks, such as 1 minute.

Input and output: The specimen is configured with the input parameters of a basic command. After running, it generates a cookie file containing data.

Restriction: The user host must be connected to the central processing server network. Some users may consider opening a tunnel that accesses the external network ftp port or a third server proxy because it is a closed intranet.

3.3.2 Central Processing Module Section

Module function description: This is the file and database processing module. When a cookie file has been uploaded in the specified directory, the file content is read and analyzed and calculated, and the data is inserted into the database according to the specified format.

Performance: When the module is running, the server resource CPU utilization is basically unchanged, and the server resource requirements are not high. The processing capacity is thousands of files per minute, which is more than enough for general monitoring. After 4 months of operational testing, the program worked fine and there was no crash record.

Design method (algorithm): Configurable data processing frequency, staying asleep when idle, in the case of a small number of monitoring, keep 5 minutes, ftp temporary fault disconnection does not matter, as long as the cookie file is retained, after uploading Just handle it.

The user requests a MaxAverage and MinAverage curve for a certain system resource. The agreed design algorithm is as follows:

maxAverage: Take 5 times of data for each data acquisition, record the max data as the data point, and use the curve to form the maxAverage curve.

minAverage: Take 5 times of data for each data acquisition, record the min data as the data point, and use the curve formed as the minAverage curve.

3.3.3 Monitoring Host Information Display Section

This is a B/S structure of a website design method (algorithm) with full management capabilities.

The system's charts are processed using the ZedGraph control.

Z ed G raph is an open source. NET chart library, all code is developed in C#. It can create 2D linear and column charts with arbitrary data sets.

ZedGraph's class library is highly flexible.

Almost every level of the chart can be modified by the user. At the same time, in order to ensure the ease of use of the class library, all chart properties provide default values. The code contained in the class library can select the scale range and step size and size to be adapted according to the divided data. ZedGraph inherits the UserControl interface in the Framework, so it allows users to drag and drop in the VS IDE environment. Added support for access interfaces in other languages, such as C++, VB.

Figure 3.3 shows an example of the CPU load curve of the monitoring system website.

3.3.4 Report section (as shown in Figure 3.4)

3.4 Performance Specifications

(1) The single-center data processing module (server) supports 400 monitoring hosts.

(2) The number of monitoring hosts can be increased by means of a packet extension server. (Author: Cummins)

0 times
Window._bd_share_config = { "common": { "bdSnsKey": {}, "bdText": "", "bdMini": "2", "bdMiniList": false, "bdPic": "", "bdStyle": " 0", "bdSize": "24" }, "share": {}, "image": { "viewList": ["qzone", "tsina", "tqq", "renren", "weixin"], "viewText": "Share to:", "viewSize": "16" }, "selectShare": { "bdContainerClass": null, "bdSelectMiniList": ["qzone", "tsina", "tqq", "renren" , "weixin"] } }; with (document) 0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = 'http://bdimg.share. Baidu.com/static/api/js/share.js?v=89860593.js?cdnversion=' + ~(-new Date() / 36e5)];