IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 每日监控日志生成功能实现 -> 正文阅读

[系统运维]每日监控日志生成功能实现

每日监控日志生成功能实现

一、目的

为了实现全自动化数据采集到大数据平台上,需要生成每天的监控日志方便运维人员进行查看。

二、课题

? 每日监控日志文件生成

三、过程与方法

[任务一]

任务说明:编写shell脚本,实现每日自动生成监控日志

实现效果:

1)执行自动化采集数据的脚本,会生成以下数据【每次执行日期会进行更新】

2021-09-24 20:56:16 INFO >> json文件的日期由20200901替换成20200902成功!

2021-09-24 20:56:56 INFO >> 数据从mysql采集到hive成功!采集成功的数据有62条

日志文件内容截图

在这里插入图片描述

四、仪器设备和工具

设备仪器机房
操作系统Windows操作系统
工具连接工具:sqlyog、navicat
网络环境能够联网

五、思考题

1)$?在linux中有什么作用,除了这个符号还有哪些特殊符号?

0 : 就 是 该 b a s h 文 件 名 , 个 位 数 的 , 可 直 接 使 用 数 字 , 但 两 位 数 以 上 , 则 必 须 使 用 符 号 来 括 住 , 如 0:就是该bash文件名,个位数的,可直接使用数字,但两位数以上,则必须使用 {} 符号来括住,如 0bash,使使{10}.

$?:是上一指令的返回值,成功是0,不成功是1。一般来说,UNIX(linux) 系统的进程以执行系统调用exit() 来结束的。这个回传值就是status值。回传给父进程,用来检查子进程的执行状态。一般指令程序倘若执行成功,其回传值为 0;失败为 1。

$*:所有脚本参数的内容:就是调用调用本bash shell的参数。

@ : 基 本 上 与 上 面 相 同 。 只 不 过 是 “ @:基本上与上面相同。只不过是“ @*”返回的是一个字符串,字符串中存在多外空格。 “$@”返回多个字符串。

$#:返回所有脚本参数的个数。

$$ :Shell本身的PID(ProcessID),即当前进程的PID。

$! :Shell最后运行的后台Process的PID

$- :使用Set命令设定的Flag一览

六、实现过程

开启hadoop1,hadoop2,hadoop3

连接hadoop1的数据库

在这里插入图片描述

导入三张表

在这里插入图片描述

开启集群

进入hive创建test表,创建四张表

create database test;

use test;

create table `order_status_log20200901`(`id` string,`order_id` string,`order_status` string,`operate_time` string) row format delimited fields terminated by ',';

create table `order_status_log20200902`(`id` string,`order_id` string,`order_status` string,`operate_time` string) row format delimited fields terminated by ',';

create table `order_status_log20200903`(`id` string,`order_id` string,`order_status` string,`operate_time` string) row format delimited fields terminated by ',';

create table `order_status_log20200904`(`id` string,`order_id` string,`order_status` string,`operate_time` string) row format delimited fields terminated by ','; 

使用winscp将log.json文件上传到/root/datax/job目录下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sn3oFl8m-1633013998378)(C:\Users\wang\AppData\Roaming\Typora\typora-user-images\image-20210930205633657.png)]

log.json加权限

chmod +x log.json

接着修改log.json

{
    "job": {
        "setting": {
            "speed": {
                 "channel": 3
            },
            "errorLimit": {
                "record": 0,
                "percentage": 0.02
            }
        },
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "username": "root",
                        "password": "123456",
                        "column": [
                            "id",
                            "order_id",
                            "order_status",
                            "operate_time"
                        ],
                        "splitPk": "id",
                        "connection": [
                            {
                                "table": [
                                    "order_status_log20200901"
                                ],
                                "jdbcUrl": [
     "jdbc:mysql://192.168.174.10:3306/test"
                                ]
                            }
                        ]
                    }
                },
               "writer": {
                    "name": "hdfswriter",
                    "parameter": {
                        "defaultFS": "hdfs://192.168.174.11:8020",
                        "fileType": "text",
                        "path": "/user/hive/warehouse/test.db/order_status_log20200901",
                        "fileName": "order_status_log20200901",
                        "column": [
                            {
                                "name": "id",
                                "type": "STRING"
                            },
                            {
                                "name": "order_id",
                                "type": "STRING"
                            },
                            {
                                "name": "order_status",
                                "type": "STRING"
                            },
                            {
                                "name": "operate_time",
                                "type": "STRING"
                            }
                        ],
                        "writeMode": "append",
                        "fieldDelimiter": ",",
                        "compress":"GZIP"
                    }
                }
            }
        ]
    }
}

使用winscp将auto1.sh文件上传到/root/sh目录下

加权限

chmod +x auto2.sh

编写auto2.sh

#!/bin/bash
log_dir=/root/log
log_prefix=order_status
function write_log(){
  log_format=`date '+%Y-%m-%d %H:%M:%S'`
  echo "${log_format} $1 >> ${2}" >> ${log_dir}/${log_prefix}.`date '+%Y-%m-%d'`.log
  [ $1 == "ERROR" ] && exit 1
}
date=`cat /root/sh/date`
afterday_timestamp=$[`date -d "${date}" +%s`+86400]
afterday=`date -d @${afterday_timestamp} +%Y%m%d`
sed -i "s/order_status_log${date}/order_status_log${afterday}/g" /root/datax/job/log.json
write_log INFO "log.json文件的日期由${date}成功替换成${afterday}!!!"
sed -i "s/${date}/${afterday}/g" /root/sh/date
python /root/datax/bin/datax.py /root/datax/job/log.json

if [ $? -eq 0 ];then
  result=`hive -e "use test;select count(id) from order_status_log${afterday}"`
  write_log INFO "数据从mysql中采集成功!!!采集的数据有${result}条"
else
  write_log ERROR "数据采集失败!!!,请立即检查"
fi

在sh下创建date

touch date
#并设置20200901

在root目录下创建文件夹log存日志文件

mkdir /root/log

最后执行

sh auto2.sh
cat /root/log/order_status.2021-09-30.log
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-01 17:15:45  更:2021-10-01 17:16:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 16:28:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码