运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(四)

释放双眼,带上耳机,听听看~!

(5)数据库服务器(以甘肃数据库为例,脚本解释参照甘肃
web)

  1. #!/bin/bash  
  2. #ip  

db_ip
=$(/sbin/ifconfig eth0|grep "inet addr"|cut -d : -f 2|awk '{print $1}')  

  1. #name  

db_name
=$(hostname)  
1.
monitor_name

database
 
1.
here

'gansu'
 

  1. #mysql info  

mysql_ip

'1.1.1.1'
 
1.
mysql_username

'root'
 
1.
mysql_passwd

'****'
 
1.
mysql_database

'monitor'
 
1.
memory_table

''
$here'_memory'  
1.
load_table

''
$here'_load'  
1.
io_table

''
$here'_io'  
1.
hardware_table

''
$here'_hardware'  
1.
message_table

''
$here'_message'  
1.
user_table

''
$here'_user'  
1.
disk_table

''
$here'_disk'  
1.
cpu_table

''
$here'_cpu'  
1.
service_table

''
$here'_service'  

  1. #date and log  

day

"$(date +%Y%m%d)"
 
1.
worklog

'/usr/local/monitor/logs/all_work_log'
 
1.
downlog

'/usr/local/monitor/logs/all_down_log'
 
1.
now

"$(date +%Y-%m-%d-%T)"
 
1.
loghere

'/usr/local/monitor/logs'
 

  1. #cpu service  

alert_cpu

'80'
 
1.
db_cpu_idle

"$(top -b -n 1 | grep Cpu | awk '{print $5}' | cut -f 1 -d .)"
 
1.
db_cpu

"$(echo 100 – $db_cpu_idle|/usr/bin/bc)"
 

  1. #memory service  

alert_mem

'100'
 
1.
db_mem

"$(/usr/bin/free -m|grep Mem|awk '{print $4}')"
 
1.
db_swap

"$(/usr/bin/free -m|grep Swap|awk '{print $3}')"
 
1.
alert_swap

'0'
 

  1. #memory log  

memory_worklog

'/usr/local/monitor/logs/mem_work_log'
 
1.
memory_downlog

'/usr/local/monitor/logs/mem_down_log'
 

  1. #load service  

cpu_count

"$(grep -c 'model name' /proc/cpuinfo)"
 
1.
alert_load

"$(echo $cpu_count/2|/usr/bin/bc)"
 
1.
db_load

"$(uptime|awk '{print $NF}'|cut -f 1 -d .)"
 
1.
db_load_15

"$(uptime|awk '{print $NF}')"
 

  1. #load log  

load_worklog

'/usr/local/monitor/logs/load_work_log'
 
1.
load_downlog

'/usr/local/monitor/logs/load_down_log'
 

  1. #io service  

alert_io

'80'
 
1.
db_io_idle_back

"$(/usr/bin/iostat|awk 'NR==4{print $NF}'|cut -f 1 -d .)"
 
1.
db_io_idle

"$(echo 100 – $db_io_idle_back|/usr/bin/bc)"
 

  1. #io log  

io_worklog

'/usr/local/monitor/logs/io_work_log'
 
1.
io_downlog

'/usr/local/monitor/logs/io_down_log'
 

  1. #hardware service  

db_hardware_error

"$(dmesg|grep -i error|wc -l)"
 
1.
db_info_error

"$(dmesg|grep -i error)"
 

  1. #hardware error log  

hard_worklog

'/usr/local/monitor/logs/hard_work_log'
 
1.
hard_downlog

'/usr/local/monitor/logs/hard_down_log'
 

  1. #message service  

db_message_error_count

"$(awk '/"
$(date +%Y%m%d)"/' /var/log/messages|grep -i error|wc -l)"  
1.
db_message_error

"$(awk '/"
$(date +%Y%m%d)"/' /var/log/messages|grep -i error)"  

  1. #message error log  

message_worklog

'/usr/local/monitor/logs/message_work_log'
 
1.
message_downlog

'/usr/local/monitor/logs/message_down_log'
 

  1. #user service  

db_user_count

"$(/usr/bin/who|wc -l)"
 
1.
db_user_info

"$(/usr/bin/who)"
 

  1. #user  log  

user_worklog

'/usr/local/monitor/logs/user_work_log'
 
1.
user_downlog

'/usr/local/monitor/logs/user_down_log'
 

  1. #disk service  

alert_disk

'80'
 
1.
db_disk

"$(/bin/df -H|sort -k5nr|grep -vE 'Filesystem|tmpfs|cdrom'|awk '{print $5 "
 " $1}')"  
1.
db_disk_use
=$(echo $db_disk|awk '{print $1}'|cut -d '%' -f1)  
1.
db_disk_partition
=$(echo $db_disk|awk '{print $2}')  

  1. #disk log  

disk_worklog

'/usr/local/monitor/logs/disk_work_log'
 
1.
disk_downlog

'/usr/local/monitor/logs/disk_down_log'
 

  1. #cpu log  

cpu_worklog

'/usr/local/monitor/logs/cpu_work_log'
 
1.
cpu_downlog

'/usr/local/monitor/logs/cpu_down_log'
 

  1. #notification mail  

email

'denglei@ctfo.com'
 

  1. #monitor  
  2. if [ ! -d "$loghere" ];then  
  3.     mkdir $loghere  
  4. fi  
  5. #check cpu_idle  
  6. #check cpu_idle  
  7. if [ $db_cpu -ge $alert_cpu ];then  
  8.     echo "$now ShengFen: $here Server: $db_name Ip: $db_ip Service: cpu_idle Monitor_Server: $monitor_name Cpu_use: $db_cpu"|/bin/mail -s "Notification ShengFen: $here Server: $db_name Service: cpu_use  was Exceed Threshold value: 80%" $email  

    echo "$now ShengFen: $here Server: $db_name Ip: $db_ip Service: cpu_idle Monitor_Server: $monitor_name Cpu_use: $db_cpu" 

 $cpu_downlog-$day  

  1.     /usr/bin/mysql -h $mysql_ip -u$mysql_username -p$mysql_passwd $mysql_database -e "insert into $cpu_table values ('','$here','$db_name','$db_ip','$monitor_name','cpu_use','$alert_cpu','$db_cpu','abnormal',now())";  
  2. else  

    echo "$now ShengFen: $here Server: $db_name Ip: $db_ip Service: cpu_idle Monitor_Server: $monitor_name Cpu_use: $db_cpu" 

 $cpu_worklog-$day  

  1.     /usr/bin/mysql -h $mysql_ip -u$mysql_username -p$mysql_passwd $mysql_database -e "insert into $cpu_table values ('','$here','$db_name','$db_ip','$monitor_name','cpu_use','$alert_cpu','$db_cpu','normal',now())";  
  2. fi  
  3. #check memory  
  4. if [ $db_mem -le $alert_mem ];then  
  5.         echo "$now ShengFen: $here Server: $db_name Ip: $db_ip Service: memory Monitor_Server: $monitor_name Free_mem: $db_mem"|/bin/mail -s "Notification ShengFen: $here Server: $db_name Service: memory  was Exceed Threshold value" $email  

        echo "$now ShengFen: $here Server: $db_name Ip: $db_ip Service: memory Monitor_Server: $monitor_name Free_mem: $db_mem" 

 $memory_downlog-$day  

  1.         /usr/bin/mysql -h $mysql_ip -u$mysql_username -p$mysql_passwd $mysql_database -e "insert into $memory_table values ('','$here','$db_name','$db_ip','$monitor_name','memory','$alert_mem','$db_mem','abnormal',now())";  
  2. else  

        echo "$now ShengFen: $here Server: $db_name Ip: $db_ip Service: memory Monitor_Server: $monitor_name Free_mem: $db_mem" 

 $memory_worklog-$day  

  1.         /usr/bin/mysql -h $mysql_ip -u$mysql_username -p$mysql_passwd $mysql_database -e "insert into $memory_table values ('','$here','$db_name','$db_ip','$monitor_name','memory','$alert_mem','$db_mem','normal',now())";  
  2. fi  
  3. #check swap  
  4. if [ $db_swap -gt $alert_swap ];then  
  5.         echo "$now ShengFen: $here Server: $db_name Ip: $db_ip Service: swap Monitor_Server: $monitor_name Swap_db: $db_swap"|/bin/mail -s "Notification ShengFen: $here Server: $db_name Service: swap Ip: $db_ip was Exceed Threshold value" $email  

        echo "$now ShengFen: $here Server: $db_name Ip: $db_ip Service: swap Monitor_Server: $monitor_name Swap_db: $db_swap" 

 $memory_downlog-$day  

  1.         /usr/bin/mysql -h $mysql_ip -u$mysql_username -p$mysql_passwd $mysql_database  -e "insert into $memory_table values ('','$here','$db_name','$db_ip','$monitor_name','swap','$alert_swap','$db_swap','abnormal',now())";  
  2. else  

        echo "$now ShengFen: $here Server: $db_name Ip: $db_ip Service: swap Monitor_Server: $monitor_name Swap_db: $db_swap" 

 $memory_worklog-$day  

  1.         /usr/bin/mysql -h $mysql_ip -u$mysql_username -p$mysql_passwd $mysql_database -e "insert into $memory_table values ('','$here','$db_name','$db_ip','$monitor_name','swap','$alert_swap','$db_swap','normal',now())";  
  2. fi  
  3. #check load_15  
  4. if [ $db_load -ge $alert_load ];then  
  5.         echo "$now ShengFen: $here Server: $db_name Ip: $db_ip Service: load_15 Monitor_Server: $monitor_name Load_use: $db_load_15"|/bin/mail -s "Notification ShengFen: $here Server: $db_name Service: load_15 Ip: $db_ip was Exceed Threshold value" $email   

        echo "$now ShengFen: $here Server: $db_name Ip: $db_ip Service: load_15 Monitor_Server: $monitor_name Load_use: $db_load_15" 

 $load_downlog-$day  

  1.         /usr/bin/mysql -h $mysql_ip -u$mysql_username -p$mysql_passwd $mysql_database -e "insert into $load_table values ('','$here','$db_name','$db_ip','$monitor_name','load_15','$alert_load','$db_load_15','abnormal',now())";  
  2. else  

        echo "$now ShengFen: $here Server: $server Ip: $ip Service: load Monitor_Server: $monitor_name Load_use: $db_load_15" 

 $load_worklog-$day  

  1.         /usr/bin/mysql -h $mysql_ip -u$mysql_username -p$mysql_passwd $mysql_database -e "insert into $load_table values ('','$here','$db_name','$db_ip','$monitor_name','load_15','$alert_load','$db_load_15','normal',now())";  
  2. fi  
  3. #check io_idle  
  4. if [ $db_io_idle -ge $alert_io ];then  
  5.         echo "$now ShengFen: $here Server: $db_name Ip: $db_ip Service: io_idle Monitor_Server: $monitor_name Io_use: $db_io_idle"|/bin/mail -s "Notification ShengFen: $here Server: $db_name Service: io_use  was Exceed Threshold value: 80%" $email  

        echo "$now ShengFen: $here Server: $db_name Ip: $db_ip Service: io_idle Monitor_Server: $monitor_name Io_use: $db_io_idle" 

 $io_downlog-$day  

  1.         /usr/bin/mysql  -h $mysql_ip -u$mysql_username -p$mysql_passwd $mysql_database -e "insert into $io_table values ('','$here','$db_name','$db_ip','$monitor_name','io_use','$alert_io','$db_io_idle','abnormal',now())";  
  2. else  

        echo "$now ShengFen: $here Server: $db_name Ip: $db_ip Service: io_idle Monitor_Server: $monitor_name Io_use: $db_io_idle" 

 $io_worklog-$day  

  1.         /usr/bin/mysql  -h $mysql_ip -u$mysql_username -p$mysql_passwd $mysql_database -e "insert into $io_table values ('','$here','$db_name','$db_ip','$monitor_name','io_use','$alert_io','$db_io_idle','normal',now())";  
  2. fi  
  3. #check hareware error info  
  4. if [ $db_hardware_error -gt 0 ];then  
  5.         echo "$now ShengFen: $here Server: $db_name Ip: $db_ip Service: hardware_error Monitor_Server: $monitor_name Error: $db_info_error"|/bin/mail -s "Notification ShengFen: $here Server: $db_name Service: hardware_error  were some hardware imformation error" $email  

        echo "$now ShengFen: $here Server: $db_name Ip: $db_ip Service: hardware_error Monitor_Server: $monitor_name Error: $db_info_error" 

 $hard_downlog-$day  

  1.         /usr/bin/mysql -h $mysql_ip -u$mysql_username -p$mysql_passwd $mysql_database -e "insert into $hardware_table values ('','$here','$db_name','$db_ip','$monitor_name','hardware_error','0','$db_hardware_error','abnormal',now())";  
  2. else  

        echo "$now ShengFen: $here Server: $db_name Ip: $db_ip Service: hardware_error Monitor_Server: $monitor_name Error: Nothing" 

 $hard_worklog-$day  

  1.         /usr/bin/mysql -h $mysql_ip -u$mysql_username -p$mysql_passwd $mysql_database -e "insert into $hardware_table values ('','$here','$db_name','$db_ip','$monitor_name','hardware_error','0','$db_hardware_error','normal',now())";  
  2. fi  
  3. #check message error  
  4. if [ $db_message_error_count -ge 1 ];then  
  5.         echo "$now ShengFen: $here Server: $db_name Ip: $db_ip Service: message_error Monitor_Server: $monitor_name Message_error: $db_message_error"|/bin/mail -s "Notification ShengFen: $here Server: $db_name Service: message_error  were some message imformation error" $email  

        echo "$now ShengFen: $here Server: $db_name Ip: $db_ip Service: message_error Monitor_Server: $monitor_name Message_error: $db_message_error" 

 $message_downlog-$day  

  1.         /usr/bin/mysql-h $mysql_ip -u$mysql_username -p$mysql_passwd $mysql_database -e "insert into $message_table values ('','$here','$db_name','$db_ip','$monitor_name','message_error','1','$db_message_error_count','abnormal',now())";  
  2. else  

        echo "$now ShengFen: $here Server: $db_name Ip: $db_ip Service: message_error Monitor_Server: $monitor_name Message_error: Nothing" 

 $message_worklog-$day  

  1.         /usr/bin/mysql -h $mysql_ip -u$mysql_username -p$mysql_passwd $mysql_database  -e "insert into $message_table values ('','$here','$db_name','$db_ip','$monitor_name','message_error','1','$db_message_error_count','normal',now())";  
  2. fi  
  3. #check user  
  4. if [ $db_user_count -ge 3 ];then  
  5.         echo "$now ShengFen: $here Server: $db_name Ip: $db_ip Service: user Monitor_Server: $monitor_name User: $db_user_info"|/bin/mail -s "Notification ShengFen: $here Server: $db_name  Service: user  was Exceed Threshold value: 3" $email  

        echo "$now ShengFen: $here Server: $db_name Ip: $db_ip Service: user Monitor_Server: $monitor_name User: $db_user_info" 

 $user_downlog-$day  

  1.         /usr/bin/mysql  -h $mysql_ip -u$mysql_username -p$mysql_passwd $mysql_database -e "insert into $user_table values ('','$here','$db_name','$db_ip','$monitor_name','user','3','$db_user_count','abnormal',now())";  
  2. else  

        echo "$now ShengFen: $here Server: $db_name Ip: $db_ip Service: user Monitor_Server: $monitor_name User: normal" 

 $user_worklog-$day  

  1.         /usr/bin/mysql  -h $mysql_ip -u$mysql_username -p$mysql_passwd $mysql_database -e "insert into $user_table values ('','$here','$db_name','$db_ip','$monitor_name','user','3','$db_user_count','normal',now())";  
  2. fi  
  3. #check disk  
  4. if [ $db_disk_use -ge $alert_disk ];then  
  5.         echo "$now ShengFen: $here Server: $db_name Ip: $db_ip Service: disk_use Monitor_Server: $monitor_name Disk_use: $db_disk_partition ($db_disk_use%)"|/bin/mail -s "Warning!!! $here Server: $db_name Service: disk_use  was Exceed Threshold value : $alert_disk% " $email  

        echo "$now ShengFen: $here Server: $db_name Ip: $db_ip Service: disk_use Monitor_Server: $monitor_name Disk_use: $db_disk_partion ($db_disk_use%)" 

 $disk_downlog-$day  

  1.         /usr/bin/mysql -h $mysql_ip -u$mysql_username -p$mysql_passwd $mysql_database  -e "insert into $disk_table values ('','$here','$db_name','$db_ip','$monitor_name','disk_use','$alert_disk','$db_disk_partition','$db_disk_use','abnormal',now())";  
  2. else  

        echo "$now ShengFen: $here Server: $db_name Ip: $db_ip Service: disk_use Monitor_Server: $monitor_name Disk_use: $db_disk_partition ($db_disk_use%)" 

 $disk_worklog-$day  

  1.         /usr/bin/mysql -h $mysql_ip -u$mysql_username -p$mysql_passwd $mysql_database  -e "insert into $disk_table values ('','$here','$db_name','$db_ip','$monitor_name','disk_use','$alert_disk','$db_disk_partition','$db_disk_use','normal',now())";  
  2. fi  

注意:
web、交换、引擎服务器里监控内容除了资源监控(如硬盘、io、cpu、用户

、负载、日志错误信息、登录硬件错误信息、内存),还包括应用服务监控,而备用与数据库服务器的监控没有应用服务器监控,只有资源监控。

6**、
mysql数据库内容与解释**

之前的
shell监控脚本部署完成后,会在监控的时候,把监控的数据一部分写入到本机的日志里,另外一个部分写入到mysql数据库,所以在mysql里会专门的建立一个数据库与数据表,接收shell监控写入的数据。


1)数据库表名的结构

数据表有
10个,分别是cpu、disk、hardware、io、load、memory、message、service、user、device。在创建各自省份的时候,会在表名前加入省份名称中文拼音,比如像创建甘肃省的cpu表,在数据库里找个表名为gansu_cpu。

A、
cpu、hardware、io、load、memory、message、user这些表的字段一样,内容为:

  1. 字段                   类型                  解释  
  2. id                      int(10)             编号,主要为监控此服务的次数  
  3. province                varchar(30)         省份名称  
  4. server                  varchar(30)          监控主机名称,主要是监控主机hostname的名称  
  5. ip                      varchar(20)          监控主机的ip  
  6. monitor_server       varchar(30)          监控主机的类型,我这里分别有web、交换、引擎、备用、数据库  
  7. service                 varchar(20)          监控的服务名称  
  8. alert                   int(10)              监控服务的阀值  
  9. value                   int(10)              监控服务的当前值  
  10. status                  varchar(10)          监控服务器的状态,normal与abnormal  
  11. date                    datetime             监控服务的时间  

下面是我的
mysql数据库里甘肃cpu截图

B、
disk数据表的内容

 

  1. 字段                   类型                 解释  
  2. id                      int(10)             编号,主要为监控此服务的次数  
  3. province                varchar(30)         省份名称  
  4. server                  varchar(30)          监控主机名称,主要是监控主机hostname的名称  
  5. ip                      varchar(20)          监控主机的ip  
  6. monitor_server       varchar(30)          监控主机的类型,我这里分别有web、交换、引擎、备用、数据库  
  7. service                 varchar(20)          监控的服务名称  
  8. alert                   int(10)              监控服务的阀值  
  9. partition               varchar(30)          最大硬盘的分区名称  
  10. value                   int(10)              监控服务的当前值  
  11. status                  varchar(10)          监控服务器的状态,normal与abnormal  
  12. date                    datetime             监控服务的时间  

下面是我的
mysql里甘肃disk的截图

C、
service数据表的内容

 

  1. 字段                   类型                  解释  
  2. id                      int(10)             编号,主要为监控此服务的次数  
  3. province                varchar(30)         省份名称  
  4. server                  varchar(30)          监控主机名称,主要是监控主机hostname的名称  
  5. ip                      varchar(20)          监控主机的ip  
  6. monitor_server       varchar(30)          监控主机的类型,我这里分别有web、交换、引擎、备用、数据库  
  7. service                 varchar(20)          监控的服务名称  
  8. status                  varchar(10)          监控服务器的状态,normal与abnormal  
  9. date                    datetime             监控服务的时间  

下面是我的
mysql数据库里甘肃service截图

D、
device

  1. 字段                   类型                   解释  
  2. id                      int(10)              编号,主要为监控此服务的次数  
  3. name                    varchar(255)          设备的名称  
  4. ip                      varchar(30)          设备的ip  
  5. mac                  varchar(30)          设备的mac  
  6. type                    varchar(30)          设备的类型  
  7. jifang_name          varchar(255)            机房的名称  
  8. raw_name                varchar(255)            机架的名称  
  9. raw_location            varchar(45)          机架的位置  
  10. assets_code          varchar(30)          财产编号  
  11. state                   varchar(30)          设备状态  
  12. price                   int(10)              设备的架构  

下面是我的
device数据表的截图


2)数据库的建立

我建立的数据库为
monitor,创建的语句为:

create database monitor;


3)数据库表的建立

数据表建立有
2个方式:

1、使用
create_database.sh脚本建立,脚本内容如下:

  1. #!/bin/bash  
  2. #mysql info  

mysql_ip

'1.1.1.1'
 

  1. ##数据库的ip  

mysql_username

'root'
 

  1. ##数据库的登录用户  

mysql_passwd

'****'
 

  1. ##数据库的登录密码  

mysql_database

'monitor'
 

  1. ##需要登录的数据库  

here

'gansu'
 

  1. ##创建数据库的省份名称  

memory_table

''
$here'_memory'  
1.
load_table

''
$here'_load'  
1.
io_table

''
$here'_io'  
1.
hardware_table

''
$here'_hardware'  
1.
message_table

''
$here'_message'  
1.
user_table

''
$here'_user'  
1.
disk_table

''
$here'_disk'  
1.
cpu_table

''
$here'_cpu'  
1.
service_table

''
$here'_service'  

  1. ##创建数据库的表名  
  2. #create table memory  

 mysql -h $mysql_ip -u$mysql_username -p$mysql_passwd $mysql_database -e "create table $memory_table(id int(10) not null primary key auto_increment,province varchar(30) not null,server varchar(30) not null,ip varchar(20) not null,monitor_server varchar(30) not null,service varchar(20) not null,alert int(10) not null,value int(10) not null,status varchar(10) not null,date datetime)
ENGINE

InnoDB
 DEFAULT 
CHARSET

utf8
;"  

  1. #create table load  

mysql -h $mysql_ip -u$mysql_username -p$mysql_passwd $mysql_database -e "create table $load_table(id int(10) not null primary key auto_increment,province varchar(30) not null,server varchar(30) not null,ip varchar(20) not null,monitor_server varchar(30) not null,service varchar(20) not null,alert int(10) not null,value int(10) not null,status varchar(10) not null,date datetime)
ENGINE

InnoDB
 DEFAULT 
CHARSET

utf8
;"  

  1. #create table io  

mysql -h $mysql_ip -u$mysql_username -p$mysql_passwd $mysql_database -e "create table $io_table(id int(10) not null primary key auto_increment,province varchar(30) not null,server varchar(30) not null,ip varchar(20) not null,monitor_server varchar(30) not null,service varchar(20) not null,alert int(10) not null,value int(10) not null,status varchar(10) not null,date datetime)
ENGINE

InnoDB
 DEFAULT 
CHARSET

utf8
;"  

  1. #create table hardware  

mysql -h $mysql_ip -u$mysql_username -p$mysql_passwd $mysql_database -e "create table $hardware_table(id int(10) not null primary key auto_increment,province varchar(30) not null,server varchar(30) not null,ip varchar(20) not null,monitor_server varchar(30) not null,service varchar(20) not null,alert int(10) not null,value int(10) not null,status varchar(10) not null,date datetime)
ENGINE

InnoDB
 DEFAULT 
CHARSET

utf8
;"  

  1. #create table message  

mysql -h $mysql_ip -u$mysql_username -p$mysql_passwd $mysql_database -e "create table $message_table(id int(10) not null primary key auto_increment,province varchar(30) not null,server varchar(30) not null,ip varchar(20) not null,monitor_server varchar(30) not null,service varchar(20) not null,alert int(10) not null,value int(10) not null,status varchar(10) not null,date datetime)
ENGINE

InnoDB
 DEFAULT 
CHARSET

utf8
;"  

  1. #create table user  

mysql -h $mysql_ip -u$mysql_username -p$mysql_passwd $mysql_database -e "create table $user_table(id int(10) not null primary key auto_increment,province varchar(30) not null,server varchar(30) not null,ip varchar(20) not null,monitor_server varchar(30) not null,service varchar(20) not null,alert int(10) not null,value int(10) not null,status varchar(10) not null,date datetime)
ENGINE

InnoDB
 DEFAULT 
CHARSET

utf8
;"  

  1. #create table disk  

mysql -h $mysql_ip -u$mysql_username -p$mysql_passwd $mysql_database -e "create table $disk_table(id int(10) not null primary key auto_increment,province varchar(30) not null,server varchar(30) not null,ip varchar(20) not null,monitor_server varchar(30) not null,service varchar(20) not null,alert int(10) not null,partition varchar(30) not null,value int(10) not null,status varchar(10) not null,date datetime)
ENGINE

InnoDB
 DEFAULT 
CHARSET

utf8
;"  

  1. #create table cpu  

mysql -h $mysql_ip -u$mysql_username -p$mysql_passwd $mysql_database -e "create table $cpu_table(id int(10) not null primary key auto_increment,province varchar(30) not null,server varchar(30) not null,ip varchar(20) not null,monitor_server varchar(30) not null,service varchar(20) not null,alert int(10) not null,value int(10) not null,status varchar(10) not null,date datetime)
ENGINE

InnoDB
 DEFAULT 
CHARSET

utf8
;"  

  1. #create table service  

mysql -h $mysql_ip -u$mysql_username -p$mysql_passwd $mysql_database -e "create table $service_table(id int(10) not null primary key auto_increment,province varchar(30) not null,server varchar(30) not null,ip varchar(20) not null,monitor_server varchar(30) not null,service varchar(20) not null,status varchar(10) not null,date datetime)
ENGINE

InnoDB
 DEFAULT 
CHARSET

utf8
;"  

注意:
device这个表我没有在create_database.sh脚本里创建,如果你想使用这个功能,就自己创建这个表。

2、在后头进行添加省份
php监控程序的时候,使用create_province.sh进行创立,这个在后面部分进行说明。

7、
php程序设计的web端的内容与解释

php监控程序主要是通过从
mysql数据库里获得数据,然后在网页里展示数据。

我设计的这个程序主要有
4个功能:

1、资产管理

主要是通过
device数据表进行数据的收集,通过add.php、add_device.php、list_device.php、conn.php、head.php、head_device.php进行数据的输入与展示。

2、监控详情

主要是通过各自省份的数据表进行数据的采集,比如进行甘肃省分的采集,需要用到的数据表有
gansu_cpu、gansu_disk、gansu_io、gansu_load、gansu_hardware、gansu_message、gansu_memory、gansu_user、gansu_service,通过list.php、gansu.php(各自省份的都有各自的php文件,比如广西的为guangxi.php)、conn.php、head.php、province.php进行数据的展示。

3、当日报警

主要是通过各自省份的数据表进行数据的采集,比如进行甘肃省分的采集,需要用到的数据表有
gansu_cpu、gansu_disk、gansu_io、gansu_load、gansu_hardware、gansu_message、gansu_memory、gansu_user、gansu_service,通过warn.php、gansu_warn.php(各自省份的都有各自的php文件,比如广西的为guangxi_warn.php)、conn.php、head.php、warn_province.php。

下一篇文章地址:

运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(五)

http://dl528888.blog.51cto.com/2382721/1035252

 本文转自 reinxu 51CTO博客,原文链接:http://blog.51cto.com/dl528888/1035145
,如需转载请自行联系原作者

给TA打赏
共{{data.count}}人
人已打赏
安全技术安全运维

Windows服务器如何发现被黑

2018-5-20 12:24:31

安全技术

详解Node.js API系列 Http模块(2) CNodejs爬虫实现

2021-12-21 16:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索