zabbix企业应用之从数据库提取centos 6.2系统在线天数

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

历史原因造成公司有很多centos 6.2的系统,从某天6.2系统突然自动重启,排查半天发现是6.2的内核bug(超过208天后可能自动重启,可以参考https://access.redhat.com/site/solutions/68466),所以为了不影响业务,在发现6.2系统在线超过180天后就安排重启工作,下面是介绍如何使用zabbix来从数据库里获取6.2系统服务器的在线天数,然后通知业务重启,避免意外重启导致业务受到影响。

1、脚本内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/bash
#script name check_6.2_uptime.sh 
/etc/profile
logdir= '/tmp/zabbix_log'
mysql_host= 'localhost'
mysql_user= 'zabbix'
mysql_passwd= 'zabbix'
mysql_database= 'zabbix'
year=` date  +%Y`
month=` date  +%m-%d`
next_month=` date  +%m-%d -d  "1 days" `
if  [ ! -d $logdir ]; then
     mkdir  $logdir
fi
##zabbix get centos 6.2 uptime
#select os system version
mysql -h $mysql_host  -u $mysql_user -p$mysql_passwd $mysql_database >$logdir /mysql_zabbix_os_system .txt<<EOF
set  names utf8;
select  from_unixtime(hi.clock) as Date,g.name as Group_Name,h.host as Host, hi.value as System_version  from hosts_groups hg  join  groups  g on g.groupid = hg.groupid  join  items i on hg.hostid = i.hostid  join  hosts h on h.hostid=i.hostid  join  history_str hi on  i.itemid = hi.itemid  where  i.key_= 'system.sw.os[name]'  and hi.value like  '%6.2%'  and g.name <>  '所有Mysql主机组'  and  hi.clock >= UNIX_TIMESTAMP( '${year}-${month} 00:00:00' ) and  hi.clock <= UNIX_TIMESTAMP( '${year}-${next_month} 00:00:00' ) group by h.host;
EOF
#select uptime
mysql -h $mysql_host  -u $mysql_user -p$mysql_passwd $mysql_database >$logdir /mysql_zabbix_os_uptime .txt<<EOF
set  names utf8;
select  from_unixtime(hi.clock) as Date,g.name as Group_Name,h.host as Host, round(max(hi.value_max) /86400 ,0) as System_Uptime  from hosts_groups hg  join  groups  g on g.groupid = hg.groupid  join  items i on hg.hostid = i.hostid  join  hosts h on h.hostid=i.hostid  join  trends_uint hi on  i.itemid = hi.itemid  where  i.key_= 'system.uptime'  and  hi.clock >= UNIX_TIMESTAMP( '${year}-${month} 00:00:00' ) and  hi.clock <= UNIX_TIMESTAMP( '${year}-${next_month} 00:00:00' ) group by h.host;
EOF
sed  -i  '/Date*/d'  $logdir /mysql_zabbix_os_system .txt
sed  -i  '/Date*/d'  $logdir /mysql_zabbix_os_uptime .txt
awk  '{print $1"\t"$3"\t"$4"\t6.2"}'  $logdir /mysql_zabbix_os_system .txt > $logdir /mysql_zabbix_os_system_version .txt
awk  '{print $1"\t"$3"\t"$4"\t"$5}'  $logdir /mysql_zabbix_os_uptime .txt > $logdir /mysql_zabbix_os_uptime_new .txt
awk  'NR==FNR{a[$1,$2,$3]=$4;next}{print $0,a[$1,$2,$3]}'  $logdir /mysql_zabbix_os_uptime_new .txt $logdir /mysql_zabbix_os_system_version .txt| awk  '{if($5 >150) {print $0}}' | sort  -k2nr > $logdir /zabbix_os_uptime_result .txt
sed  -i  '1i 查询日期\t所属组\t主机ip\t系统版本\t在线天数'  $logdir /zabbix_os_uptime_result .txt

默认结果在/tmp/zabbix_log/zabbix_os_uptime_result.txt,请自行根据自己的环境来修改脚本的数据库信息。

2、使用

直接使用下面命令

1
/bin/bash  check_6.2_uptime.sh

3、结果内容(部分展示,主机组信息屏蔽了)

1
2
3
4
5
6
[root@puppet zabbix_log] # cat zabbix_os_uptime_result.txt 
查询日期    所属组 主机ip    系统版本    在线天数
2014-07-23  xxx机房--自研项目--xx 10.10.10.46 6.2 218
2014-07-23  xxx机房--自研项目--xxx    10.10.10.47 6.2 218
2014-07-23  xxx机房--自研项目--xxx    192.168.10.153  6.2 202
2014-07-23  xxx机房--自研项目--xxx    192.168.10.154  6.2 202

4、txt转成excel格式

请参看“http://jingyan.baidu.com/article/359911f5108f3757fe0306fb.html”,我就不介绍了,很简单。

如果大家想使用我的脚本,可以从附件里下载,认为本文对你有益,请给个好评与赞,谢谢。





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

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
13天前
|
存储 安全 搜索推荐
酒店管理系统的数据库的应用以及选择
酒店管理系统数据库关乎运营效率和服务质量。数据库用于数据存储、管理、分析及客户关系管理,确保房态与预订精准。选择时重视性能稳定性、数据安全、易用性、可扩展性和成本效益。合适的数据库能提升酒店运营效率并优化客户体验。
21 2
|
21天前
|
存储 关系型数据库 MySQL
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
|
24天前
|
安全 网络安全 数据库
数据安全之认识数据库漏洞扫描系统
数据库漏洞扫描系统是一种专业的数据库安全产品,它基于对数据库访问控制、数据库审计、资源管理、数据库加密以及数据库系统本身安全机制的深入分析,深入研究和发现数据库系统本身存在的BUG以及数据库管理、使用中存在的问题。
37 4
|
1月前
|
SQL 监控 安全
数据安全之认识数据库审计系统
随着企业业务数据量的不断增长和数据存储的集中化,数据库成为企业的核心资产之一。然而,数据库面临着各种安全威胁,如SQL注入、权限滥用、数据泄露等。为了保障数据库的安全性和完整性,企业需要采取有效的审计措施来监控和记录数据库的操作行为。本文让我们一起来认识数据库审计系统。
32 1
|
13天前
|
存储 NoSQL 安全
物流系统数据库的应该以及选择
物流系统数据库在信息化建设中扮演关键角色,用于数据存储、管理和共享,支持决策,并优化资源配置。选择数据库时要考虑类型(如关系型或NoSQL)、性能稳定性、成本易用性、安全性和未来发展需求。完善数据管理与安全措施,确保数据准确性和系统扩展性,是提升物流效率和企业竞争力的关键。
16 3
|
30天前
|
SQL 存储 安全
【软件设计师备考 专题 】数据库管理系统的功能和特征
【软件设计师备考 专题 】数据库管理系统的功能和特征
73 0
|
1月前
|
SQL 编解码 数据库
MyKtv点歌系统前台主要功能实现,内附数据库脚本,可以直接运行
MyKtv点歌系统前台主要功能实现,内附数据库脚本,可以直接运行
14 1
MyKtv点歌系统前台主要功能实现,内附数据库脚本,可以直接运行
|
1月前
|
存储 分布式计算 大数据
现代化数据库技术——面向大数据的分布式存储系统
传统的关系型数据库在面对大规模数据处理时遇到了诸多挑战,而面向大数据的分布式存储系统应运而生。本文将深入探讨现代化数据库技术中的分布式存储系统,包括其优势、工作原理以及在大数据领域的应用。
|
1月前
|
关系型数据库 MySQL 数据库
虚拟机Linux-Centos系统网络配置常用命令+Docker 的常用命令
虚拟机Linux-Centos系统网络配置常用命令+Docker 的常用命令
41 0
|
1月前
|
关系型数据库 MySQL Linux
【VMware安装+centos 7Linux系统+MySQL安装】——在Linux系统中安装MySQL步骤,以及遇见的各种问题(如:vm两个虚拟网卡消失、vm网络适配器有感叹号等等)
【VMware安装+centos 7Linux系统+MySQL安装】——在Linux系统中安装MySQL步骤,以及遇见的各种问题(如:vm两个虚拟网卡消失、vm网络适配器有感叹号等等)
182 0