Shell 抓取Linux 系统指标通过api 上报
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,背景(1).系统运维过程中会遇到 系统运行定制化跟多个人性配置,个性化配置属于私有配置不属于监控平台的监控范畴,且个性化指标出现异常问题会导致系统出现不可预期问题及程序运行风险; 针对这种场景 我们会
千家信息网最后更新 2026年11月01日Shell 抓取Linux 系统指标通过api 上报
背景
(1).系统运维过程中会遇到 系统运行定制化跟多个人性配置,个性化配置属于私有配置不属于监控平台的监控范畴,且个性化指标出现异常问题会导致系统出现不可预期问题及程序运行风险; 针对这种场景 我们会自己提供检查系统检查脚本或者agent 达到系统保障目的; 如下就是系统探测脚本;
2.系统收集实战脚本;
#!/bin/bash#系统信息抓取脚本function current_date(){start_current_date="`date "+%Y-%m-%d %H:%M:%S"`"echo ${start_current_date}} function init_logs(){log_dir="/chj/logs/"log_file="/chj/logs/pushData.log"if [ -f ${log_file} ]then echo ${log_file}else touch ${log_file} echo ${log_file}fi } #1.获取系统ip地址function getSysIp(){ipaddr=$(/bin/hostname -i)echo $ipaddr} #2.解析dns检查是否存在有效dns;function getSysDns(){ domain="do.chj.cloud" if dig @172.21.2.10 $domain +short |grep '[0-9]' >/dev/null;then echo "True" else echo "False" fi} #3.获取系统env环境变量function getSysEnv(){envfile=/etc/profile.d/chj-common.shif [ -f $envfile ] then env=$(grep "RUNTIME_ENV=" $envfile |awk -F "=" '{print $2}') echo $envelse echo "none"fi} #4.获取应用名称 function getJavaName(){appname=$(ps -ef |grep java |grep -v "grep"|head -1|awk -F "-D" '{print $2}'|awk -F "=" '{print $2}')echo $appname} #5.获取java应用jvm参数function getJavaInfo(){appinfo=$(ps -ef |grep java |grep -v "grep"|head -1|sed 's/[[:space:]]/-/g')echo "$appinfo"} #6.获取应用端口function getAppPort(){apppid=$(ps -ef |grep java |grep -v "grep" | /bin/awk '{print $2}' |head -1)if [ ! -z "$apppid" ]then appport=$(netstat -tulpn | grep "$apppid" | awk -F ":" '{print $2}'|/bin/awk -F " " '{print $1}') echo "$appport" else echo "none"fi} #7.获取当前连接tcpfunction getTcp(){tcp=$(netstat -anplt |grep -v tcp6 |grep -v "127.0.0.1"|grep "ESTABLISHED"|sort |awk '!a[$5]++{print}'|awk '{print $5,$7}'|sed 's/[[:space:]]/-/g'|sed 's/\///g'|sed 's/sshd:/sshd/'|sed s'/-.-//g')if [ ! -n "tcp" ]then echo "none"else echo $tcp|sed 's/[[:space:]]/,/g'fi} #8.检查是否存在nat;function sysNat(){ local timeout="1" local target="www.badu.com" local ret_code=`curl -I -s --connect-timeout ${timeout} ${target} -w %{http_code} | tail -n1` if [ "x$ret_code" = "x200" ]; then echo "1" else echo "0" fi} #9.调用动态上传接口发送请求数据function reqDynamicData(){sysipaddr=$1sysdns=$2sysenv=$3appName=$4appjvm=$5appPort=$6conntcp=$7nat=$8fetchUrl="http://ops.chj.cloud/dynamic/api/v1"/bin/curl "$fetchUrl" -X POST -H "Content-Type: application/json" -d "{\"instance_ip\": \"$sysipaddr\",\"env\":\"$sysenv\",\"dns\":\"$sysdns\",\"appname\":\"$ppName\",\"appjvm\":\"$appjvm\",\"appport\":\"$appPort\",\"apptcp\":\"$conntcp\",\"nat\":\"$nat\"}"} #10.发送数据function main(){ip=`getSysIp`dns=`getSysDns`env=`getSysEnv`name=`getJavaName`jvm=`getJavaInfo`port=`getAppPort`tcp=`getTcp`nat=`sysNat`reqDynamicData $ip $dns $env $name $jvm $port $tcp $natlog=`init_logs`runTime_date=`current_date`echo "上传数据时间:$runTime_date" >> $log }main3.数据库字段设计;
3.1 创建数据库sql; CREATE TABLE `dynamic_Check` ( `id` int(11) NOT NULL AUTO_INCREMENT, `ip` varchar(92) COLLATE utf8mb4_bin DEFAULT NULL, `dns` varchar(128) COLLATE utf8mb4_bin DEFAULT NULL, `env` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL, `appname` text COLLATE utf8mb4_bin, `appport` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL, `appjvm` text COLLATE utf8mb4_bin, `conn_tcp` text COLLATE utf8mb4_bin, `snat` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL, `run_time` datetime DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin 3.2.数据库表结构+----------+--------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+----------+--------------+------+-----+---------+----------------+| id | int(11) | NO | PRI | NULL | auto_increment || ip | varchar(92) | YES | | NULL | || dns | varchar(128) | YES | | NULL | || env | varchar(64) | YES | | NULL | || appname | text | YES | | NULL | || appport | varchar(32) | YES | | NULL | || appjvm | text | YES | | NULL | || conn_tcp | text | YES | | NULL | || snat | varchar(32) | YES | | NULL | || run_time | datetime | YES | | NULL | |+----------+--------------+------+-----+---------+----------------+
系统
数据
脚本
检查
数据库
应用
配置
个性
问题
监控
运行
指标
有效
人性
信息
动态
参数
变量
名称
地址
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技公司排名
伟宏互联网科技
互联网佳科技有限公司
科技互联网企业
互联网最新的科技
科技互联网项目
河南真二互联网科技有限公司
卓越科技(互联网 )
伴你行互联网科技有限公司
互联网科技股有哪些
厦门比较好的科技互联网公司
玉溪互联网科技怎么选
中国互联网有什么科技
美国互联网科技公司
本届互联网大会上的黑科技
吉林省码上互联网科技电话
江苏互联网智能科技产品出厂价
第三届互联网大会安防黑科技
保山浩联互联网科技有限公司
互联网 科技节活动 微视频大赛
互联网科技企业
有木互联网科技
宁波青枫互联网科技有限公司
阿里互联网科技公司
深圳互联网科技的发展
雨阳互联网卡科技有限公司
产业互联网科技服务公司
风投北京互联网科技
中国科技和美国互联网
网互联网络科技