精华内容
下载资源
问答
  • 只用已知的账号登录服务器 看是否可以正常登录 性能 检查项 检查操作 参考标准 资源占用进程 taskmgr.exe打开任务管理器 分别记录cpu、内存占用最高的前五项 磁盘使用率 打开资源管理器逐个分区检查属性...

    网络

    操作系统

    检查项 检查操作 参考标准
    操作系统版本 执行命令winver.exe
    网络连通性情况 ping DR环境 观察5分钟是否丢包
    ping 测试柜子 观察5分钟是否丢包
    检查服务器账号 只用已知的账号登录服务器 看是否可以正常登录

    性能指标

    性能

    检查项 检查操作 参考标准
    资源占用进程 taskmgr.exe打开任务管理器在这里插入图片描述 分别记录cpu、内存占用最高的前五项
    磁盘使用率 打开资源管理器逐个分区检查属性在这里插入图片描述 记录磁盘使用率,了解数据增长趋势
    检查服务日志 登录Application-server查看D盘下nginx,tomcat日志 日志切割是否按天,持久保存日期是否符合策略
    展开全文
  • LINUX 服务器巡检指导

    2020-11-16 15:45:40
    服务器巡检指导:服务器硬件检查 操作系统检查 网络检查 资源检查 安全检查 ,指导内容较详细,可以参考
  • 公司服务器巡检脚本

    2020-08-06 15:45:14
    公司服务器巡检脚本 根据公司服务器部署环境做了一个服务器脚本,每天定时执行。 因有5台服务器,节约写脚本的麻烦,把检查5台服务器的环境全写在一个脚本上 以下脚本还有诸多未完善,欢迎评论区提建议,谢谢! ...

    公司服务器巡检脚本

    • 根据公司服务器部署环境做了一个服务器脚本,每天定时执行。
    • 因有5台服务器,节约写脚本的麻烦,把检查5台服务器的环境全写在一个脚本上
    • 以下脚本还有诸多未完善,欢迎评论区提建议,谢谢!

    执行脚本后所展示的内容

    #########################巡检开始#########################
    
    巡检项目:系统信息,网络信息,硬件信息,用户信息,服务信息
    
    #######################检查巡检环境#######################
    巡检yum源正常
    巡检工具sysstat正常
    巡检工具net-tools正常
    #########################巡检系统信息#########################
    当前时间:2020-08-06-15:13:48
    本机名称:wnkj-web2
    本机公网IP: x.x.x.x     # 这里不方便透露外网ip,用x表示
    本机私网IP: 192.168.0.62
    服务器所在位置: 浙江省杭州市 阿里云
    系统版本类型:Linux
    系统版本:CentOS Linux release 7.4.1708 (Core) 
    系统内核:3.10.0-957.21.3.el7.x86_64
    系统运行时间:25 days
    系统最后运行时间:2020-07-12 05:39
    #########################巡检网络信息#########################
    入站网卡流量:188.7 GiB
    出站网卡流量:78.9 GiB
    巡检联网状态:正常
    #########################巡检硬件信息#########################
    CPU个数:1
    CPU核数:4
    CPU架构:x86_64
    CPU操作模式:32-bit, 64-bit
    CPU型号:Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz
    CPU空闲时间百分比:98.46%
    CPU 等待I/O线程所占百分比:0.04%
    CPU 系统级别(kernel)运行所使用CPU的百分比:0.52%
    CPU 用户级别运行所使用CPU的百分比:0.98%
    系统CPU平均1分钟负载: 0.02
    系统CPU平均5分钟负载: 0.05
    系统CPU平均15分钟负载:0.05
    巡检CPU平均负载正常
    
    磁盘总容量:140G
    
    系统盘的总容量:40G
    系统盘磁盘空间占用百分比:39%
    vda磁盘设备每秒I/O请求数:3.22/s
    vda磁盘每秒读取block数:2.99/s
    vda磁盘每秒写入block数:22.23/s
    vda磁盘读入的block总数/M:6495/M
    vda磁盘写入的block总数/M:48267/M
    巡检系统磁盘正常
                                                              
    业务盘的总容量:100G
    业务磁盘空间占用百分比:50%
    vdb磁盘设备每秒I/O请求数:0.85/s
    vdb磁盘每秒读取block数:1.55/s
    vdb磁盘每秒写入block数:87.90/s
    vdb磁盘读入的block总数/M:3357/M
    vdb磁盘写入的block总数/M:190836/M
    巡检业务磁盘正常
                                                              
    内存总数:15885MB
    已使用内存:3524MB
    多个进程共享内存总额:0MB
    空闲内存:11277MB
    可用内存:11998MB
    巡检内存正常
    ############################巡检用户信息###############################
    当前登录系统用户:admin
    本机授权用户数量为:3
    本机授权的用户为:root admin visitor
    当前登录本机的用户数量:1
    巡检登录用户正常
    ############################巡检服务信息###############################
    远程登录账号名错误3次以上统计:699
    远程登录密码错误3次以上统计:33
    小程序的端口:18081
    小程序的CPU占用率:0.0%
    小程序的内存占用率:19.7%
    巡检后台服务正常
    巡检后台日志正常
    
    ##############################巡检结束############################
    

    脚本内容

    [admin@test ~]$ vim monitor
    #!/bin/bash
    
    # 巡检脚本,用于巡检服务器磁盘,CPU负载,内存,登录用户,运行服务、日志等
    
    
    echo "#########################巡检开始#########################"
    echo ""
    echo -e "\033[34m巡检项目:系统信息,网络信息,硬件信息,用户信息,服务信息\033[0m"
    echo ""
    echo "#######################检查巡检环境#######################"
    
    # 检查系统yum源
    
    yum_total=$(yum repolist | grep repolist | awk '{print $2}' | sed -n "s/,//p")
    if [ "${yum_total}" -eq "0" ];then
    echo -e "\033[31myum源异常,巡检中断,请检查\033[0m"
    exit 1
    else
    echo -e "\033[32m巡检yum源正常\033[0m"
    fi
    
    # 检查巡检时需要的工具
    
    for i in sysstat net-tools 
    do
    rpm -q $i >/dev/null 2>&1
    if [ $? -ne 0 ];then
    echo "$i 巡检工具未安装"
    echo "$i 巡检工具正在安装"
    yum -y install $i  >/dev/null
    else
    echo -e "\033[32m巡检工具$i正常\033[0m"
    fi
    done 
    
    # 定义存放错误日志路径
    
    [ -d /var/log/monitor ]
    if [ $? -ne 0 ];then
    sudo mkdir /var/log/monitor &>/dev/null
    fi
    
    
    OS_SYSTEM_TIME () {
    echo "#########################巡检系统信息#########################"
    
    # 系统信息
    
    # 定义系统时间
    
    local_time=$(date +%F-%T)
    
    # 定义主机名
    
    OS_name=`hostname`
    
    # 本机公网IP地址
    
    local_wip=$(curl -s cip.cc | awk '/IP/{print $3}')
    
    # 本机私网IP地址
    
    local_sip=$(ifconfig eth0 | grep netmask | awk {'print $2'})
    
    # 服务器所在位置
    
    ip_place=$(curl -s cip.cc | awk '/数据二/{print $3,$5}')
    
    # 定义系统类型
    
    OS_type=`uname`
    
    # 定义系统版本
    
    OS_version=`cat /etc/redhat-release`
    
    # 定义系统内核
    
    OS_ker=`uname -r`
    
    # 定义系统运行时间
    
    OS_run_time=$(uptime |awk '{print $3,$4}' | awk -F, '{print $1}')
    
    # 定义系统最后运行时间
    
    OS_last_reboot_time=$(who -b | awk '{print $3,$4}')
    
    echo "当前时间:${local_time}"
    echo "本机名称:${OS_name}"
    echo "本机公网IP: ${local_wip}"
    echo "本机私网IP: ${local_sip}"
    echo "服务器所在位置: ${ip_place}"
    echo "系统版本类型:${OS_type}"
    echo "系统版本:${OS_version}"
    echo "系统内核:${OS_ker}"
    echo "系统运行时间:${OS_run_time}"
    echo "系统最后运行时间:${OS_last_reboot_time}"
    
    }
    OS_SYSTEM_TIME
    
    OS_SYSTEM_NETWORK () {
    echo "#########################巡检网络信息#########################"
    
    # 定义本机eth0网卡入站的流量
    
    net_in=$(ifconfig eth0 | awk '/RX p/{print $6,$7}' | sed -n "s/(//p" | sed -n "s/)//p")
    
    # 定义本机eh0网卡出站的流量
    
    net_out=$(ifconfig eth0 | awk '/TX p/{print $6,$7}' | sed -n "s/(//p" | sed -n "s/)//p")
    
    echo "入站网卡流量:${net_in}"
    echo "出站网卡流量:${net_out}"
    
    # 使用curl来判断网络是否能联网
    
    curl_http=$(curl -I -s https://www.baidu.com | awk '/^HTTP/{print $2}')
    if [ ${curl_http} -eq 200 ];then 
    echo -e "\033[32m巡检联网状态:正常\033[0m"
    else 
    echo -e "\033[31m巡检联网状态:异常\033[0m"
    fi
    }
    OS_SYSTEM_NETWORK
    
    OS_SYSTEM_HARDWARE () {
    echo "#########################巡检硬件信息#########################"
    
    # CPU 基本信息
    
    # 定义CPU型号
    
    local_model=$(lscpu | grep 'Model name' | awk '{print $3,$4,$5,$6,$7,$8,$9}')
    
    # 定义CPU个数
    
    loca_cpu=$(grep 'physical id' /proc/cpuinfo | sort -u | wc -l)
    
    # 定义CPU核数
    
    local_core=$(lscpu | grep -w  "^CPU(s)" | awk '{print $2}')
    
    # 定义CPU架构
    
    local_arch=$(lscpu | grep -w Architecture | awk '{print $2}')
    
    # 定义CPU操作模式
    
    local_opmode=$(lscpu | grep -w op-mode | awk '{print $3,$4}')
    
    # 定义CPU 空闲时间%分比
    
    local_idle=$(iostat -c |  awk 'NR==4{print $6}')
    
    # 定义CPU 等待I/O线程所占%分比
    
    local_steal=$(iostat -c |  awk 'NR==4{print $4}') 
    
    # 定义系统级别(kernel)运行所使用CPU的百分比
    
    local_system_kernel=$(iostat -c |  awk 'NR==4{print $3}')
    
    # 定义用户级别运行所使用CPU的百分比
    
    local_cpu_user=$(iostat -c |  awk 'NR==4{print $1}')
    
    # 定义系统CPU平均1分钟负载
    
    OS_system_1=$(uptime | awk -F[:,] '{print $8}')
    
    # 定义系统CPU平均5分钟负载
    
    OS_system_5=$(uptime | awk -F[:,] '{print $9}')
    
    # 定义系统CPU平均15分钟负载
    
    OS_system_15=$(uptime | awk  '{print $NF}')
    
    echo "CPU个数:${loca_cpu}"
    echo "CPU核数:${local_core}"
    echo "CPU架构:${local_arch}"
    echo "CPU操作模式:${local_opmode}"
    echo "CPU型号:${local_model}"
    
    echo "CPU空闲时间百分比:${local_idle}%"
    echo "CPU 等待I/O线程所占百分比:${local_steal}%"
    echo "CPU 系统级别(kernel)运行所使用CPU的百分比:${local_system_kernel}%"
    echo "CPU 用户级别运行所使用CPU的百分比:${local_cpu_user}%"
    
    echo "系统CPU平均1分钟负载:${OS_system_1}"
    echo "系统CPU平均5分钟负载:${OS_system_5}"
    echo "系统CPU平均15分钟负载:${OS_system_15}"
    
    if [[ "${OS_system_15}"  >  3  ]];then
    echo -e "\033[31m巡检CPU平均15分钟异常,请检查CPU负载\033[0m"
    else
    echo -e "\033[32m巡检CPU平均负载正常\033[0m"
    echo ""
    fi
    
    #------------------------------------------------------------------------------
    
    # 磁盘信息
    
    # 系统盘总容量
    
    xt_system_rl=$(lsblk | grep -w vda | awk '{print $4}' | awk -FG '{print $1}')
    
    # 业务盘总容量
    
    yw_system_rl=$(lsblk | grep -w vdb | awk '{print $4}' | awk -FG '{print $1}')
    
    # 定义磁盘总容量=系统盘+业务盘
    
    OS_system_df_total=$(( ${xt_system_rl}+${yw_system_rl} ))
    
    # 系统盘占用空间大小
    
    xt_system=$(`which df` -h | grep -w "/" | awk '{print $5}' | awk -F% '{print $1}')
    
    # 定义/dev/vda磁盘设备每秒I/O请求数
    
    vda_device_xt=$(iostat -d | awk 'NR==4{print $2}')
    
    # 定义/dev/vda磁盘每秒读取block数
    
    vda_device_read=$(iostat -d | awk 'NR==4{print $3}')
    
    # 定义/dev/vda磁盘每秒写入block数
    
    vda_device_writn=$(iostat -d | awk 'NR==4{print $4}')
    
    # 定义读入的block总数/M
    
    vda_read=$(iostat -d -m | awk 'NR==4{print $5}')
    
    # 定义写入的block总数/M
    
    vda_writn=$(iostat -d -m | awk 'NR==4{print $6}')
    
    # 业务盘占用空间大小
    
    yw_system=$(`which df` -h | grep -w "/www" | awk '{print $5}' | awk -F% '{print $1}')
    
    # 定义/dev/vdb磁盘设备每秒I/O请求数
    
    vdb_device_xt=$(iostat -d | awk 'NR==5{print $2}')
    
    # 定义/dev/vdb磁盘每秒读取block数
    
    vdb_device_read=$(iostat -d | awk 'NR==5{print $3}')
    
    # 定义/dev/vdb磁盘每秒写入block数
    
    vdb_device_writn=$(iostat -d | awk 'NR==5{print $4}')
    
    # 定义读入的block总数/M
    
    vdb_read=$(iostat -d -m | awk 'NR==5{print $5}')
    
    # 定义写入的block总数/M
    
    vdb_writn=$(iostat -d -m | awk 'NR==5{print $6}')
    
    echo "磁盘总容量:${OS_system_df_total}G"
    echo ""
    echo "系统盘的总容量:${xt_system_rl}G"
    echo "系统盘磁盘空间占用百分比:${xt_system}%"
    echo "vda磁盘设备每秒I/O请求数:${vda_device_xt}/s"
    echo "vda磁盘每秒读取block数:${vda_device_read}/s"
    echo "vda磁盘每秒写入block数:${vda_device_writn}/s"
    echo "vda磁盘读入的block总数/M:${vda_read}/M"
    echo "vda磁盘写入的block总数/M:${vda_writn}/M"
    
    if [ "${xt_system}" -gt "80" ];then
    echo -e "\033[31m系统磁盘巡检异常,超出80%请尽快清理磁盘空间或者扩容磁盘容量\033[0m"
    else
    echo -e "\033[32m巡检系统磁盘正常\033[0m"
    fi
    echo "                                                          "
    
    echo "业务盘的总容量:${yw_system_rl}G"
    echo "业务磁盘空间占用百分比:${yw_system}%"
    echo "vdb磁盘设备每秒I/O请求数:${vdb_device_xt}/s"
    echo "vdb磁盘每秒读取block数:${vdb_device_read}/s"
    echo "vdb磁盘每秒写入block数:${vdb_device_writn}/s"
    echo "vdb磁盘读入的block总数/M:${vdb_read}/M"
    echo "vdb磁盘写入的block总数/M:${vdb_writn}/M"
    
    if [ "${yw_system}" -gt "80" ];then
    echo -e "\033[31m业务磁盘巡检异常,超出80%请尽快清理磁盘空间或者扩容磁盘容量\033[0m"
    else
    echo -e "\033[32m巡检业务磁盘正常\033[0m"
    fi
    echo "                                                          "
    #--------------------------------------------------------
    
    # 内存信息
    
    # 定义内存总数/M
    
    Mem_tolal=$(free -m | awk '/Mem/{print $2}')
    
    # 定义已使用内存数/M
    
    Mem_used=$(free -m | awk '/Mem/{print $3}')
    
    # 定义空闲内存数/M
    
    Mem_free=$(free -m | awk '/Mem/{print $4}')
    
    # 定义多个进程共享的内存总额
    
    Mem_shared=$(free -m | awk '/Mem/{print $5}')
    
    # 定义缓存内存数
    
    Mem_cache=$(free -m | awk '/Mem/{print $6}')
    
    # 定义可用内存
    
    Mem_free_kb=$(cat /proc/meminfo | grep Avai | awk {'print $2'})
    
    echo "内存总数:${Mem_tolal}MB"
    echo "已使用内存:${Mem_used}MB"
    echo "多个进程共享内存总额:${Mem_shared}MB"
    echo "空闲内存:${Mem_cache}MB"
    echo "可用内存:$(( ${Mem_free_kb}/1024 ))MB"
    
    if [ "${Mem_free_kb}" -le "3145728" ];then
    echo -e "\033[31m巡检内存异常发出警告,请注意内存空闲空间低于内存总量30%\033[0m"
    else
    echo -e "\033[32m巡检内存正常\033[0m"
    fi
    
    }
    OS_SYSTEM_HARDWARE
    
    OS_SYSTEM_USER () {
    echo "############################巡检用户信息###############################"
    
    # 登录用户
    
    login_user=$(last | grep "still logged in" | awk '{print $1}' | sort | uniq)
    
    # 本机授权用户数量
    
    user_total=$(cat /etc/passwd | grep "/bin/bash" | wc -l)
    
    # 本机授权的用户
    
    username_total=$(cat /etc/passwd | grep "/bin/bash$" | awk -F:  '{print $1}' | xargs)
    
    # 当前登录本机的用户数量
    
    user_name_total=$(who | wc -l)
    
    echo "当前登录系统用户:${login_user}"
    echo "本机授权用户数量为:${user_total}"
    echo "本机授权的用户为:${username_total}"
    echo "当前登录本机的用户数量:${user_name_total}"
    
    if [[ ${user_name_total} -gt 3 ]];then
    echo -e "\033[31m巡检警告!当前登录用户数量超过3个,请检查登录用户是否正常\033[0m"
    else
    echo -e "\033[32m巡检登录用户正常\033[0m"
    fi
    
    }
    OS_SYSTEM_USER
    
    OS_SYSTEM_SERVICE () {
    echo "############################巡检服务信息###############################"
    
    # 定义小程序的端口
    
    dk_wnxcx=$(ss -utnlp | grep 18087 | awk -F: '{print $2}' | awk '{print $1}')
    
    # 定义小程序后台的端口
    
    dk_wnht=$(ss -utnlp | grep 18081 | awk -F: '{print $2}' | awk '{print $1}')
    
    # 定义物农食堂的端口
    
    dk_wnst=$(ss -utnlp | grep 8008 | awk '{print $5}' | awk -F: '{print $2}')
    
    # 检测ssh登录日志,如果远程登陆账号名错误3次,则统计数量
    
    ssh_mon=$(sudo awk '/Failed password/{print $11}' /var/log/secure  | awk '{ip[$1]++}END{for(i in ip){print ip[i],i}}' | awk '$1>3{print $2}' | wc -l)
    
    # 检测ssh登录日志,如果远程登陆密码错误3次,则统计数量
    
    ssh_passwd=$(sudo awk '/Invalid user/{print $10}' /var/log/secure  | awk '{ip[$1]++}END{for(i in ip){print ip[i],i}}' | awk '$1>3{print $2}' | wc -l)
    
    echo "远程登录账号名错误3次以上统计:${ssh_mon}"
    echo "远程登录密码错误3次以上统计:${ssh_passwd}"
    
    # 定义日志路径目录权限
    
    ml_qx=$(ls -ld /var/log/monitor/ | awk '{print $3}')
    if [ "${ml_qx}"  ==  "root" ];then
    sudo chown admin.admin /var/log/monitor
    fi
    
    # 小程序服务巡检 
    
    wnxcx () {
    if [ ${dk_wnxcx} == "" ];then
    echo -e "\033[31m巡检小程序异常,请检查服务是否启动\033[0m"
    else
    echo -e "\033[32m巡检小程序服务正常\033[0m"
    fi
    }
    
    # 后台服务巡检
    
    wnht () {
    if [ "${dk_wnht}" == "" ];then
    echo -e "\033[31m巡检后台异常,请检查服务是否启动\033[0m"
    else
    echo -e "\033[32m巡检后台服务正常\033[0m"
    fi
    }
    
    # 食堂服务巡检
    
    wnst () {
    if [ "${dk_wnst}" == "" ];then
    echo -e "\033[31m巡检物农食堂异常,请检查服务是否启动\033[0m"
    else
    echo -e "\033[32m巡检物农食堂服务正常\033[0m"
    fi
    }
    
    
    # 定义小程序日志路径
    
    xcx_app_log () {
    log_app_xcx=$(sudo find /www/service -name 18087* -type d)/webapps/ROOT/WEB-INF/logs/
    cd ${log_app_xcx}
    xcx_log=$(sudo egrep "有误|error"  info)
    if [ "${xcx_log}"  !=  "" ];then
    sudo egrep "有误|error"  info  >>/var/log/monitor/error87-`date +%F-%T` 
    echo -e "\033[031m巡检小程序日志有错误日志,已保存到/var/log/monitor\033[0m"
    else
    echo -e "\033[32m巡检小程序日志正常\033[0m"
    fi
    }
    
    # 定义后台日志路径
    
    ht_app_log () {
    log_app_ht=$(sudo find /www/service -name 18081* -type d)/webapps/ROOT/WEB-INF/logs/
    cd ${log_app_ht}
    ht_log=$(sudo egrep "有误|error"  info 2>&1)
    if [ "${ht_log}" !=  "" ];then
    sudo egrep "有误|error"  info >>/var/log/monitor/error81-`date +%F-%T`
    echo -e "\033[31m巡检后台日志有错误日志,已保存到/var/log/monitor\033[0m"
    else
    echo -e "\033[32m巡检后台日志正常\033[0m"
    fi
    }
    
    # 定义物农食堂的日志
    
    wnst_app_log () {
    wnst_log=$(sudo egrep  "error|ERROR|错误" /root/nohup.out | grep `date +%F` 2>&1)
    if [ "${wnst_log}" != "" ];then
    sudo egrep  "error|ERROR|错误" /root/nohup.out | grep `date +%F` >>/var/log/monitor/error-`date +%F-%T` 
    echo -e "\033[31m巡检物农食堂日志有错误日志,已保存到/var/log/monitor\033[0m"
    else
    echo -e "\033[32m巡检后台日志正常\033[0m"
    fi
    }
    
    SYSTEM_LOG() {
    
    # 因执行脚本就会产生一个新的错误日志,为了节约空间脚本当天只能有一个错误日志
    
    log_ql=$(ls /var/log/monitor/ | grep `date +%F` | wc -l)
    if [ "${log_ql}" -ne "0" ];then
    find /var/log/monitor/ -name "*-`date +%F`-*" -exec rm "{}" \;
    fi
    }
    
    if [ "`echo $HOSTNAME`" == "wnkj-test" ];then
    
    # 定义小程序的进程
    
    xcx_jc=$(sudo netstat -utnlp | grep 18087 | awk '{print $7}' | awk -F/ '{print $1}')
    
    # 定义小程序服务占用CPU百分比
    
    xcx_cpu=$(top -b -n 1 | grep ${xcx_jc} | awk '{print $9}' | xargs | awk '{print $1}')
    
    # 定义后台的进程
    
    xcx_ht=$(sudo netstat -utnlp | grep 18081 | awk '{print $7}' | awk -F/ '{print $1}')
    
    # 定义后台服务占用CPU百分比
    
    ht_cpu=$(top -b -n 1 | grep ${xcx_ht} | awk '{print $9}' | xargs | awk '{print $1}')
    
    # 定义小程序服务占用内存的百分比
    
    xcx_mem_tj=$(top -bn1 | grep ${xcx_jc} | awk '{print $10}')
    
    # 定义后台服务占用内存的百分比
    
    xcx_mem_ht=$(top -bn1 | grep ${xcx_ht} | awk '{print $10}')
    
    echo "小程序的端口:${dk_wnxcx}"
    echo "后台的端口:${dk_wnht}"
    echo "小程序的CPU占用率:${xcx_cpu}%"
    echo "后台的CPU占用率:${ht_cpu}%"
    echo "小程序的内存占用率:${xcx_mem_tj}%"
    echo "后台的内存占用率:${xcx_mem_ht}%"
    wnxcx
    wnht
    SYSTEM_LOG
    xcx_app_log
    ht_app_log
    elif [ "`echo $HOSTNAME`" == "wnkj-service" ];then
    
    # 定义小程序的进程
    
    xcx_jc=$(sudo netstat -utnlp | grep 18087 | awk '{print $7}' | awk -F/ '{print $1}')
    
    # 定义小程序服务占用CPU百分比
    
    xcx_cpu=$(top -b -n 1 | grep ${xcx_jc} | awk '{print $9}' | xargs | awk '{print $1}')
    
    # 定义小程序服务占用内存的百分比
    
    xcx_mem_tj=$(top -bn1 | grep ${xcx_jc} | awk '{print $10}')
    echo "小程序的端口:${dk_wnxcx}"
    echo "小程序的CPU占用率:${xcx_cpu}%"
    echo "小程序的内存占用率:${xcx_mem_tj}%"
    wnxcx
    SYSTEM_LOG
    xcx_app_log
    elif [ "`echo $HOSTNAME`" == "wnkj-web1" ];then
    
    # 定义小程序的进程
    
    xcx_ht=$(sudo netstat -utnlp | grep 18081 | awk '{print $7}' | awk -F/ '{print $1}')
    
    # 定义小程序服务占用CPU百分比
    
    ht_cpu=$(top -b -n 1 | grep ${xcx_ht} | awk '{print $9}' | xargs | awk '{print $1}')
    
    # 定义小程序服务占用内存的百分比
    
    xcx_mem_ht=$(top -bn1 | grep ${xcx_ht} | awk '{print $10}')
    echo "小程序的端口:${dk_wnht}"
    echo "小程序的CPU占用率:${ht_cpu}%"
    echo "小程序的内存占用率:${xcx_mem_ht}%"
    wnht
    SYSTEM_LOG
    ht_app_log
    elif [ "`echo $HOSTNAME`" == "wnkj-web2" ];then
    
    # 定义小程序的进程
    
    xcx_ht=$(sudo netstat -utnlp | grep 18081 | awk '{print $7}' | awk -F/ '{print $1}')
    
    # 定义小程序服务占用CPU百分比
    
    ht_cpu=$(top -b -n 1 | grep ${xcx_ht} | awk '{print $9}' | xargs | awk '{print $1}')
    
    # 定义小程序服务占用内存的百分比
    
    xcx_mem_ht=$(top -bn1 | grep ${xcx_ht} | awk '{print $10}')
    echo "小程序的端口:${dk_wnht}"
    echo "小程序的CPU占用率:${ht_cpu}%"
    echo "小程序的内存占用率:${xcx_mem_ht}%"
    wnht
    SYSTEM_LOG
    ht_app_log
    elif [ "`echo $HOSTNAME`" == "wnst" ];then
    
    # 定义物农食堂的进程
    
    wnst_jc=$(sudo netstat -utnlp | grep 8008 | awk '{print $7}' | awk -F/ '{print $1}')
    
    # 定义物农食堂服务占用CPU百分比
    
    wnst_cpu=$(top -b -n 1 | grep ${wnst_jc} | awk '{print $9}' | xargs | awk '{print $1}')
    wnst_mem_tj=$(top -bn1 | grep ${wnst_jc} | awk '{print $10}')
    echo "物农食堂的端口:${dk_wnst}"
    echo "物农食堂的CPU占用率:${wnst_cpu}%"
    echo "物农食堂的内存占用率:${wnst_mem_tj}%"
    wnst
    SYSTEM_LOG
    wnst_app_log
    else
    echo -e "\033[31m巡检不到这台主机的服务\033[0m"
    fi
    
    }
    OS_SYSTEM_SERVICE
    
    echo ""
    echo "##############################巡检结束############################"
    
    [admin@test ~]$ chmod +x monitor
    

    定义脚本为命令,以便快速执行脚本

    [admin@test ~]$ echo $PATH  # 查看环境变量
    /usr/local/node//bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/usr/java/jdk1.8.0_151/bin:/home/admin/.local/bin:/home/admin/bin
    
    [admin@test ~]$ sudo cp -p monitor /usr/bin/   #随便放进一个环境变量下,确保脚本有执行权限
    # 输入脚本名称即可执行脚本
    

    还可以使用ansible工具进行实现一键巡检

    # 随意一台主机实现5台服务器免密登录
    [admin@test ~]$ ssh-keygen 
    [admin@test ~]$ ssh-copy-id admin@IP地址 -p 端口
    
    # 因服务器是阿里云的,部署ansible如下
    [admin@test ~]$ sudo yum install ansible  
    [admin@test ~]$ ansible --version  # 查看版本
    [admin@test ~]$ sudo pip install ansible_alicloud # 安装阿里云模块
    [admin@test ~]$ sudo pip install footmark  # 升级阿里云模块版本
    [admin@test ~]$ sudo pip install ansible_alicloud 
    [admin@test ~]$ export ALICLOUD_ACCESS_KEY="your_accesskey" # 配置访问密钥来访问阿里云资源
    [admin@test ~]$ export ALICLOUD_SECRET_KEY="your_accesskey_secret" 
    
    # 进入ansible配置目录,配置hosts文件
    [admin@test ~]$ cd /etc/ansible/
    [admin@test ansible]$ ls
    ansible.cfg  ansible.cfg.rpmnew  hosts  roles
    [admin@test ansible]$ vim  hosts
    [all:vars]
    ansible_ssh_port=端口   # 如何不是默认的远程协议可以忽略
    
    [wnxcx]    # 定义主机分组,可以把所有主机都写在一个分组下,这边为了方便管理,选择分组
    IP地址
    IP地址
    IP地址
    
    [wnst]
    IP地址
    
    # 测试ansible是否连通其他服务器
    [admin@wnkj-test ansible]$ ansible wnxcx,wnst -m ping
    x.x.x.x (IP地址)| SUCCESS => {
        "ansible_facts": {
            "discovered_interpreter_python": "/usr/bin/python"
        }, 
        "changed": false, 
        "ping": "pong"   # 绿色代表正常,pong代表连通
    }
    x.x.x.x | SUCCESS => {
        "ansible_facts": {
            "discovered_interpreter_python": "/usr/bin/python"
        }, 
        "changed": false, 
        "ping": "pong"
    }
    x.x.x.x | SUCCESS => {
        "ansible_facts": {
            "discovered_interpreter_python": "/usr/bin/python"
        }, 
        "changed": false, 
        "ping": "pong"
    }
    x.x.x.x | SUCCESS => {
        "ansible_facts": {
            "discovered_interpreter_python": "/usr/bin/python"
        }, 
        "changed": false, 
        "ping": "pong"
    }
    x.x.x.x | SUCCESS => {
        "ansible_facts": {
            "discovered_interpreter_python": "/usr/bin/python"
        }, 
        "changed": false, 
        "ping": "pong"
    }
    
    # 编写yaml文件
    [admin@test ansible]$ vim monitor.yaml
    ---
    - hosts: wnst wnxcx
      tasks:
        - shell: xj-monitor
    
    # 测试ansible是否可以一键巡检服务器
    [admin@test ansible]$ ansible-playbook monitor.yaml 
    
    PLAY [wnst wnxcx] **************************************************************************************************************
    
    TASK [Gathering Facts] *********************************************************************************************************
    ok: [x.x.x.x]
    ok: [x.x.x.x]
    ok: [x.x.x.x]
    ok: [x.x.x.x]
    ok: [x.x.x.x]
    
    TASK [shell] *******************************************************************************************************************
    changed: [x.x.x.x]
    changed: [x.x.x.x]
    changed: [x.x.x.x]
    changed: [x.x.x.x]
    changed: [x.x.x.x]
    
    PLAY RECAP *********************************************************************************************************************
    x.x.x.x               : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
    x.x.x.x               : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
    x.x.x.x               : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
    x.x.x.x               : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
    x.x.x.x               : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
    
    # ok 代表执行成功,changed 代表已执行
    

    定义脚本自动执行,可以使用周期性计划任务

    # 根据公司情况,每天自动执行3次,更新错误日志,错误日志只保留一周
    [admin@test ~]$ crontab -l
    0  10  *  *  *  /usr/bin/ansible-playbook  /etc/ansible/monitor.yaml
    0  15  *  *  *  /usr/bin/ansible-playbook  /etc/ansible/monitor.yaml
    0  20  *  *  *  /usr/bin/ansible-playbook  /etc/ansible/monitor.yaml
    0  8   *  *  1  /usr/bin/rm  /var/log/monitor/*
    
    展开全文
  • 标准实用 Windows 系统健康检查报告 一 服务器巡检的重要性 windows 服务器是系统重要的业务运行平台对服务器进行巡检能够及时发现服务器 的隐患以便于改善和优化服务器的性能观察服务器的运行状况及时对设备进行...
  • 服务器巡检脚本 要求: 输出服务器CPU核心数 输出服务器内从总数和剩余内存 输出硬盘使用相关信息 输出网卡IP地址 创建脚本 脚本名称自定义 vim 1.sh 脚本内容 #!/bin/bash echo "服务器系统版本为: $(cat /etc/...

    **

    服务器巡检脚本

    要求:

    • 输出服务器CPU核心数
    • 输出服务器内从总数和剩余内存
    • 输出硬盘使用相关信息
    • 输出网卡IP地址

    创建脚本

    脚本名称自定义

    vim 1.sh
    

    脚本内容

    #!/bin/bash
    echo "服务器系统版本为: $(cat /etc/redhat-release)"
    echo "服务器CPU核心数为: $(grep -c processor /proc/cpuinfo)"
    echo "服务器内存总数为: $(free -h|awk '/Mem/{print $2}')"
    echo "剩余内存为: $(free -h|awk '/Mem/{print $4}')"
    echo "磁盘总大小为: $(lsblk |awk '/disk/{print $4}')"
    echo "磁盘使用率为: $(df -h|awk '/root/{print $(NF-1)}')"
    echo "网卡ip地址为: $(ifconfig |awk '/broadcast/{print $2}')"
    
    

    脚本执行结果

    服务器系统版本为: CentOS Linux release 7.5.1804 (Core) 
    服务器CPU核心数为: 1
    服务器内存总数为: 974M
    剩余内存为: 127M
    磁盘总大小为: 20G
    磁盘使用率为: 43%
    7
    网卡ip地址为: 192.168.111.128
    192.168.122.1
    
    展开全文
  • 服务器巡检工具(Xeej)

    万次阅读 2013-10-16 13:54:07
    服务器巡检工具用于系统各个服务器的实时监控,在系统出现异常时通知管理员. 本方案是针对gyb定义的,并未考虑对其它项目的适用性。(如机构ID概念,平台依赖性) 特性: .对需要巡检的服务器按照设置的时间策略进行...

    记录日期:2013-10-16


    1.概述

    服务器巡检工具用于系统各个服务器的实时监控,在系统出现异常时通知管理员.

    本方案是针对gyb定义的,并未考虑对其它项目的适用性。(如机构ID概念,平台依赖性)

    特性:
    .对需要巡检的服务器按照设置的时间策略进行巡检。
    .巡检内容预定义。
    .形成巡检报告,特别是针对异常情况。
    .发送巡检报告(邮件和短信方式)。
    .错误提醒:界面提示和声音告警。

    (巡检报告目前只是错误时的报警文本信息)


    巡检工具是一个客户端程序,实现为基于hotfox框架运行的插件。
    Xeej作为工具的名称,也是插件的名称.

    2.设计元素


    2.1 巡检服务器清单

    服务器作为巡检单元。

    需要巡检的服务器保存插件配置文件中(维护清单采用直接编辑配置文件,暂不提供插件内维护清单的功能)

    每个服务器选定一个机构和用户.作为巡检时的代理用户.
    服务器清单配置如下:
    <server_list>
    <item> <!-- 每个服务器一项-->
    <id>1</id> <!--服务器ID-->
    <enable>true</enable> <!—是否启用该项 默认:true-->
    <orgid>10009</orgid> <!-- 机构ID -->
    <user>liy</user> <!--用户帐号 -->
    <password></password> <!--用户密码:明文 -->
    </item>
    </server_list>
    ***利用平台信息对所有服务器进行巡检,可以省略配置,但依然要配置机构和用户信息。
    ***抽象:
       Xeej管理一群robot,为这些robot委派一些任务,派遣出去搜集信息.把搜集的信息反馈给Xeej.
       
    服务器的IP和端口通过平台获取。
    平台IP和端口在插件中配置。

    2.2 调度策略

    采用http://blog.csdn.net/wherwh/article/details/10562067的方式实现,可采用每天执行或指定间隔执行(如半小时)。
    ***可能需要扩展任务调度策略,以支持每天设定的几个时间点。

    2.3 巡检内容

    巡检内容包括
    。服务器是否响应:利用umx ping协议探测
    。能否用户成功登录:
    。用户登录消耗的时间:

    程序结构应考虑扩充巡检内容的支持。

    2.4 报警

    巡检发现问题时生成错误提示信息。
    报警信息可以通过邮件和短信方式发送给预先定义的接收者。
    支持声音报警。是否声音报警可配置。报警声音预定义,声音报警仅用于后台方式。


    2.5 维护管理员信息

    目的是维护报警信息接收人及接收方式信息。
    这些信息保存在数据库中,便于其它应用共享。

    维护管理员用户信息及报警接收设置。
    ---Email方式:邮件地址
    ---SMS:手机号

    2.6 如何使用

    使用者:运营人员,系统管理员
    提供手动执行和后台执行两种操作方式。

    手动操作场景:
    。启动程序
    。执行巡检
    。查看巡检结果
    手动操作方式不发送报警信息。

    自动操作场景:
    。启动程序
    。后台运行
    。使用者等待接收报警信息

    通常安排为自动后台执行方式。
    报警信息仅在错误或异常的情况下才产生。

    手动操作也可以在自动操作进行时执行。

    2.7 活动流程

    2.7.1 启动

    .加载配置:服务器清单,平台服务地址信息,调度策略
    .从平台获取各个服务器的服务地址信息,执行过程中检查无效服务器ID和机构的错误

    2.7.2 巡检

    并行对所有服务器进行巡检操作。
    对一个巡检单元的所有巡检操作顺序执行。
    巡检结果显示在界面上。
    后台方式时把巡检错误信息报告按照设定的方式给运营管理人员。

    3. 其它

    3.1 环境

    .需要SMS服务:在平台架设网关,Xeej把短信报警信息通过平台发送给网关

    3.2开发注意事项

    ---服务器证书命名和存放保持和gby客户端一致(便于集成)
    ---避免重复告警:如程序循环执行过程的错误不要多次报警。

    4.TODO

    .UI定义


    展开全文
  • linux服务器巡检脚本

    2018-07-03 17:02:34
    运维需要了解服务器的资源使用率可以通过脚本查看,多台可以通过配合ansible进行查看脚本内容:cat inspection.sh#!/bin/bashphy_cpu=$(cat /proc/cpuinfo | grep "physical id"|sort | uniq | wc -l)logic_cpu_num=...
  • 服务器日常巡检

    2020-11-11 15:45:36
    服务器日常巡检 一.先看内存 top :看内存占用分布情况,及占用较高的进程。 如果内存占用剧增总占用超过95%左右,这时服务器相对满载,会导致很多隐患。解决办法:在近期没有进行服务器变更的前提下,可以使用 ...
  • WEB服务器巡检脚本

    2014-08-19 13:33:00
    脚本功能:监控多台Web服务器状态,一旦发生问题就发送邮件运行环境:Python2.7/2.4皆可运行脚本使用方法:可利用Crontab或者计划任务来指定时间运行,例如:*/10 * * * * 脚本路径脚本运行效果如下:脚本内容如下:...
  •  工作需要,每天要对系统内的多台LINUX服务器巡检,主要检查的内容有CPU,内存,进程,硬盘空间等。  想来想去觉得还是用PYTHON来实现比较容易。平台移植性比较好。  查了很多关于PYTHON SSH联接的文档。需要...
  • 机房巡检

    2019-11-25 20:09:44
    机房巡检(1)机房巡检步骤及内容x86服务器巡检思科系交换机配置信息显示命令华为系交换机配置信息显示命令防火墙巡检查看信息 机房巡检步骤及内容 x86服务器巡检 1.巡检步骤: (1)服务器前机身查看: 查看...
  • 网络巡检计划表网络巡检计划表 服务器巡检报告 一、 服务器巡检的重要性 服务器是系统重要的业务运行平台,对服务器进行巡检能够及时发现服务器的隐患,以便于改善和优化服务器的性能;观察服务器的运行状况,及时对...
  • 接上一次实验的内容,输出相同格式的EXCEL巡检表格 https://blog.csdn.net/lsysafe/article/details/106927633 这次巡检服务器平台为WINDOWS的机器,从网络调用WMIC接口获取服务器的信息,代码如下: # -*- coding...
  • 输出信息内容调整。并且将单进程运行模式优化为多进程模式,提高了近一倍的运行效率。程序逻辑请见上一篇博文说明:http://zhangxingnan.blog.51cto.com/3241217/1215168更新的代码请见附件。 转载于:...
  • tomcat巡检脚本_new.zip

    2020-04-08 11:28:08
    linux系统下tomcat巡检脚本,适合多套系统每个跑很多tomcat的服务器巡检。如遇系统变量无法执行的,请自行在服务器上创建脚本,只粘贴内容。创建两个脚本,执行check_tomcat.sh即可。
  • 运维巡检规范及内容巡检流程规范,服务人员行为规范,巡检操作规范。中心机房、网络、服务器及存储系统巡检
  • 2、脚本只提供部分简单的巡检内容,如binlog信息、数据库运行信息,还有些mysql的一些重要参数配置,其他的巡检内容大家根据实际需要编辑修改,增加符合自己需求的巡检内容。 3、项目已经上传到我的github上 项目...
  • C001 Linux系统巡检脚本

    2018-07-04 02:16:26
    服务器达到一定数量级时,使用脚本巡检就显得非常必要! 脚本文件放在D:\OScheck目录下,截图如下: CRT是SecureCRT软件,LOGS存放生成的日志文件,ServerList是服务器列表 DAILYCheck.bat文件内容: REM...
  • 巡检服务器资源信息(如:CPU,硬盘,内存...) 作为一个技术人,起码的懒人意识应该要有,同样的也会提高自己的工作效率 # 技术栈 python # 思想 通过python命令获取服务器的资源信息,利用python中的itchat,...
  • 使用python + shell 编写,是一个简易solaris系统巡检程序 ...测试情况: 系统版本:solaris10 系统测试ok 测试服务器型号:sun 6900 6800 v445 v440 M3000 M5000内容:”’import timeimport sysimport osimport re# im
  • C003 数据库巡检脚本

    2018-07-04 02:38:24
    CRT是SecureCRT软件,LOGS存放生成的日志文件,ServerList是服务器列表 DAILYCheck.bat文件内容: REM DAILYCheck.bat @echo off Setlocal ENABLEDELAYEDEXPANSION Set strDate=%date:~0,4%%date:~5,...
  • 众所周知,服务器运营人员的工作内容,主要围绕着公司上下所有服务器、网络等硬件平台的运维工作,对每台服务器的状况,如磁盘、内存、网络、CPU等资源情况都要有明确的了解,还要定期对服务器进行巡检和修复,避免...
  • 众所周知,服务器运营人员的工作内容,主要围绕着公司上下所有服务器、网络等硬件平台的运维工作,对每台服务器的状况,如磁盘、内存、网络、CPU等资源情况都要有明确的了解,还要定期对服务器进行巡检和修复,避免...
  • 众所周知,服务器运营人员的工作内容,主要围绕着公司上下所有服务器、网络等硬件平台的运维工作,对每台服务器的状况,如磁盘、内存、网络、CPU等资源情况都要有明确的了解,还要定期对服务器进行巡检和修复,避免...
  • ansible fetch 批量下载服务器文件

    千次阅读 2018-01-17 02:29:10
    思路是写一个 Playbooks,将巡检脚本上传到所有服务器 /tmp 目录下,然后执行,并取回输出的文件。输出的文件路径为:/tmp/log/ip.txt 。ip 为本机 ip 。 Playbooks 内容如下: --- - hosts: test remote_user: ...
  • 一、机房日常巡检的主要内容都有哪些? 健康状态、机房环境(温度湿度)、物品摆放、机柜电量使用情况、其他   二、raid0,raid1,raid5,raid6的硬盘冗余量,假如有四块300G硬盘 raid0:无冗余 raid1:至少两...
  • 今天运维发邮件告知有台浪潮服务器硬盘有故障。但我们现场巡检没发现有问题,没有任何报错,状态灯正常。当时我想到的是可以硬盘有坏道,读写有延迟大,系统判断硬盘故障。根据邮件发来内容:某机房主机172.27.12.58...
  • 前几天进行服务器巡检,巡检的服务器安装的是Windows Server 2003,在检查组策略的过程中,发现主域和辅助域控间的GPO条目名称可以同步过来,可是策略里面的内容没法复制过来。 通过查找资料发现:每个组策略对象...
  • 简要列出服务器日常巡检主要工作内容 - 服务器物理硬件巡检 - 操作系统的磁盘,内存,cpu,硬盘读写情况的使用情况 - 服务器系统日志 - 运行和服务器上应用是否可用 - 应用系统日志检查 - 数据库运行状态,...

空空如也

空空如也

1 2 3
收藏数 56
精华内容 22
关键字:

服务器巡检内容