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

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介:

历史原因造成公司有很多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,如需转载请自行联系原作者

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
4月前
|
存储 Ubuntu Linux
VMware-安装CentOS系统教程及安装包
虚拟机相当于是一个独立于你电脑的环境,在这个环境上面,你可以安装Linux、Windows、Ubuntu等各个类型各个版本的系统,在这个系统里面你不用担心有病读等,不用担心文件误删导致系统崩溃。 虚拟机也和正常的电脑系统是一样的,也可以开关机,不用的时候,你关机就可以了,也不会占用你的系统资源,使用起来还是比较方便 这里也有已经做好的CentOS 7系统,下载下来解压后直接用VMware打开就可以使用
918 69
|
2月前
|
监控 关系型数据库 MySQL
在CentOS系统中,如何统计哪个进程打开了文件描述符?
利用上述方法,你可以有效地监控和统计CentOS系统中的进程打开的文件描述符数量,以帮助排查错误或优化系统配置。通过组合使用各种工具和命令,可以获得对系统状态和行为的深入了解,进而做出相应的调整和
159 5
|
4月前
|
Ubuntu Linux 索引
Centos 7、Debian及Ubuntu系统中安装和验证tree命令的指南。
通过上述步骤,我们可以在CentOS 7、Debian和Ubuntu系统中安装并验证 `tree`命令。在命令行界面中执行安装命令,然后通过版本检查确认安装成功。这保证了在多个平台上 `tree`命令的一致性和可用性,使得用户无论在哪种Linux发行版上都能使用此工具浏览目录结构。
427 78
|
5月前
|
缓存 NoSQL Linux
在CentOS 7系统中彻底移除MongoDB数据库的步骤
以上步骤完成后,MongoDB应该会从您的CentOS 7系统中被彻底移除。在执行上述操作前,请确保已经备份好所有重要数据以防丢失。这些步骤操作需要一些基本的Linux系统管理知识,若您对某一步骤不是非常清楚,请先进行必要的学习或咨询专业人士。在执行系统级操作时,推荐在实施前创建系统快照或备份,以便在出现问题时能够恢复到原先的状态。
489 79
|
4月前
|
缓存 监控 Linux
CentOS系统如何查看当前内存容量。
以上方法都不需要特殊软件或者复杂配置即可执行,在CentOS或其他Linux发行版中都适合运行,并且它们各自透露出不同角度对待问题解答方式:从简单快速到深入详尽;从用户态到核心态;从操作层数到硬件层数;满足不同用户需求与偏好。
364 8
|
6月前
|
机器人 Linux
CentOS 7系统中安装特定版本CMake 3.21.2的方法。
到这里,过程已经全部完成。如果你跟随上面的步骤来,那么你现在已经拥有了一个全新的CMake版本在你的CentOS 7系统上了。这个过程就像是你通过一系列仪式,唤醒了一个沉睡已久的古老机器人,它现在完全按照你的意愿来帮你构建和编译软件了。
550 18
|
4月前
|
存储 Linux 数据安全/隐私保护
确定CentOS系统分区表类型(MBR或GPT)
以上方法均能够帮助用户准确地识别出CentOS下连接硬件所应用得具体磁盘标准,并根据实际需求做进一步处理与管理工作。
530 0
|
4月前
|
Ubuntu Linux 云计算
CentOS与Ubuntu:Linux系统的双璧
选择Ubuntu还是CentOS,取决于用户的具体需求,如是否需要图形化界面、对稳定性的要求、软件包管理的偏好以及对商业支持的需求等。两者都是优秀的Linux发行版,只是在设计理念和目标用户群体上有所不同。#深度好文计划#
|
7月前
|
Unix Linux 程序员
在Centos系统上如何有效删除文件和目录的指令汇总
记住,有了这个指南,你就不再为删除文件和目录感到困扰。快去尝试一下,让你的CentOS更上一层楼吧!
505 24
|
6月前
|
安全 Linux 网络安全
在CentOS 7系统上创建SSL/TLS证书以启用HTTPS
请记住,这只是单枚勋章,在野外,CA签发的证书才是堂堂正正的金盾牌。如果您打算让这个小兵走得更远,考虑一下像Let's Encrypt这样的免费CA服务,它会给您的小兵颁发一个大家都认可的荣誉勋章。而且,千万不要忘了定期更新您的装备哦,毕竟,没有哪件盔甲是永远坚不可摧的。
384 4