运维工做笔记

1、logrotate日志切割

一、概要说明mysql

logrotate工具是为了方便进行日志管理而产生的一个工具,主要能够完成的工做包含:基于天、周、月、文件大小进行日志的滚动备份、压缩、删除甚至是发送邮件。linux

二、调用运行方式nginx

  •     天天晚上,cron daemon会自动执行/etc/cron.daily目录下的任务。它会触发/etc/cron.daily/logrotate文件,logrotate通常是随linux安装的。
  •     logrotate文件中定义了待执行命令:/usr/sbin/logrotate /etc/logrotate.conf
  •     /etc/logrotate.conf 文件定义包含了/etc/logrotate.d目录下的全部脚本(因此自定义脚本日志滚动脚本须要放置在此目录)。
  •     参考/etc/logrotate.d文件夹下的其余服务配置文件,建立须要切割日志的应用文件,放置到此目录下。
  •     使用logrotate /etc/logrotate.conf 命令手动执行,检查是否正常结果。

三、logrotate命令语法web

格式:logrotate [-dv][-f] [-s] config_file+sql

-v 显示详细信息centos

-d 开启调试模式,输出执行过程,可是不会对日志和logrotate的state文件产生操做后果安全

-f 忽略调用周期,强制执行logrotate服务器

-m 指定logrotate发送邮件的命令网络

-s 多个logrotate运行时,告知logrotate本身使用的state文件(/var/log/logrotate.status)工具

四、logrotate配置文件参数说明

daily 表示天天整理一次,其它可用值为‘weekly’、‘monthly’、‘yearly’

rotate 30 表示保留30份的备份文件

dateext 表示让旧日志文件以日期命名

compress\nocompress 表示使用压缩转储或不使用压缩转储,默认不适用

delaycompress 与compress一块儿使用,延时压缩,转储日志文件到下一次转储是才压缩

copytruncate 表示先复制log文件内容,而后在清空,用于无从新打开日志文件命令的状况。以Nginx为例,/usr/local/nginx/sbin/nginx -s reopen。可是其余的应用程序不必定遵循这样的约定,好比说MySQL是经过flush-logs来从新打开日志文件的。更有甚者,有些应用程序就压根没有提供相似的方法,此时若是想从新打开日志文件,就必须重启服务,但为了高可用性,这每每不能接受。还好Logrotate提供了一个名为copytruncate的指令,此方法采用的是先拷贝再清空的方式,整个过程当中日志文件的操做句柄没有发生改变,因此不须要通知应用程序从新打开日志文件,可是须要注意的是,在拷贝和清空之间有一个时间差,因此可能会丢失部分日志数据。

size 5M 日志文件大小增加到5MB再进行轮循。

notifempty 若是日志文件为空,轮循不会进行

missingok 在日志轮循期间,任何错误将被忽略,例如“文件没法找到”之类的错误。

postrotate\endscript 在转储之后执行命令,postrotate和endscript里面指定的命令将被执行。在这种状况下,rsyslogd 进程将当即再次读取其配置并继续运行。

五、nginx日志切割几个坑

  • /etc/logrotate.d/nginx自定义轮循配置,没有重写日志语句。

postrotate
/usr/local/nginx/sbin/nginx -s reopen >/dev/null 2>&1
endscript

  • 配置logrotate一段时间,发现本身配置的没有定时切割,系统的是正常的,检查了配置文件发现又是正确,强制切割(logrotate -f /etc/logrotate.conf)又能够,定时就是不正常,后来baidu,才知道是selinux的安全策略问题。

解决办法:给日志文件增长安全上下文 var_log_t:chcon -Rv --type=var_log_t /usr/local/nginx/logs/  #格式chcon -Rv --type=var_log_t 日志所在目录

 

 

2、vsphere下linux虚拟机扩展磁盘容量(lvm)

概念:

第一步:编辑虚拟机,扩大磁盘容量500G。(vsphere6.5)

第二步:新建磁盘分区

一、查看现虚拟机磁盘分区状况 

 二、使用fdisk命令,新建分区sda3,用n命令建立一个P类型分区(主分区),而后用t命令更改类型为8e。

[root@*****~]# fdisk /dev/sda The number of cylinders for this disk is set to 39162. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) #输入n,新建分区 Command (m for help):n #输入P,主分区 Command action e extended p primary partition (1-4) p #目前是sda第三个分区输入3 Partition number (1-4): 3 #敲回车,默认就好了(若是要分多个分区,这儿就制定数值) First cylinder (39163-110960, default 39163): Using default value 39163 Last cylinder or +size or +sizeM or +sizeK (39163-110960, default 110960): Using default value 110960 #这里输入t Command (m for help): t #这里选择第三个分区 Partition number (1-4): 3 #指定分区的格式为8e (LVM) Hex code (type L to list codes): 8e Changed system type of partition 3 to 8e (Linux LVM) #输入p查看一下 Command (m for help): p Disk /dev/sda: 912.6 GB, 912680550400 bytes 255 heads, 63 sectors/track, 110960 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1   *           1          13      104391   83 Linux /dev/sda2              14       39162   314464342+ 8e Linux LVM /dev/sda3           39163      110960   576717435 8e Linux LVM #这里输入w,保存退出 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: (这里有个小报错,不用管它). The kernel still uses the old table. The new table will be used at the next reboot. Syncing disks. #重启使其生效 [root@***** ~]# reboot Broadcast message from root (pts/1) (Tue May 15 12:12:27 2012): The system is going down for reboot NOW! [root@***** ~]#

第三步,把新增分区加入到lvm卷组中

1. 查看卷组状况,能够看到当前只有一个卷组VolGroup00(此名称因系统而异);
[root@*****~]# vgs
/dev/hdc: open failed: 找不到介质
VG #PV #LV #SN Attr VSize VFree
VolGroup00 1 2 0 wz--n- 299.88G 0

2. 建立物理卷(LVM分区),并将物理卷加入到组里(VolGroup00);
[root@*****~]# mkfs.ext3 /dev/sda3 # 首先进行格式化,不然建立lvm分区会报错
[root@*****~]# lvm
lvm>pvcreate /dev/sda3 ##建立一个LVM硬分区
Physical volume "/dev/sda3" successfully created
lvm> vgextend VolGroup00 /dev/sda3 ##把此分区加入到与/根目录同一个LVM卷组
Volume group "VolGroup00" successfully extended

3.最后查看下当前卷组的各分区容量大小

第四步,扩展已有卷容量(挂载到"/"根目录)

1.扩容(#LogVol00是LV名称,可使用lvs命令查看)

 

2从新识别磁盘容量

[root@*****~]# resize2fs /dev/VolGroup00/LogVol00   #LogVol00是LV名称,可使用lvs命令查看

 3.确认最终结果

[root@*****~]# fdisk -l

3、vsphere下linux虚拟机扩容磁盘(实操)

(新增一个磁盘添扩容到虚拟分区中,全程无需重启虚拟机)

一、vsphereWeb端,编辑虚拟机,新增磁盘设备。

二、登录虚拟机,刷新文件系统,更新新添加的硬盘信息。

此时查询并没有显示新添加的硬盘信息。

执行刷新操做 echo "- - -" > /sys/class/scsi_host/host2/scan

三、扩容逻辑卷vg和逻辑分区lv

直接写108.99是指直接扩容到108.99G,若是是+10G为添加10G。(本实践中方法一失败,因此使用的方法二)

刷新文件系统时,ext4文件系统使用resize2fs命令,xfs文件系统使用xfs_growfs命令

 

4、asterisk 经常使用命令总结

一、CLI控制台外经常使用维护命令
重启asterisk: service asterisk restart
重启服务器(或服务): reboot
进入asteriskCLI控制台: asterisk -r
进入asteriskCLI控制台而且显示更多调试信息: asterisk -rvvvv
不进入CLI控制台直接在linux下执行CLI控制台命令:asterisk -rx "sip show channels"

经常使用例子:# asterisk -rx "sip show peers like 507935"

二、CLI控制台经常使用命令
core restart gracefully #优雅重启
core restart now #当即重启

core show calls #显示当前通话统计,活跃数量和已处理数量

database show CF #查看无条件转移
database show CFB #查看忙转移
database show CFU #查看无应答转移
database show DND #查看免打扰的分机

三、手动释放吊死的通道
使用core show channels 找到疑似故障或有问题的号码通道

channel request hangup SIP/6001-00000001 挂断指定通道(SIP/6001-00000001)。

四、asterisk长时间运行日志清理(FreePBX 2.11.0.43)
大文件存在于如下两个文件夹里:
/var/lib/mysql/asteriskcdrdb #一些呼叫信令日志文件
/var/log/asterisk

5、CentOS启动失败,提示 "/dev/xxxx: UNEXPECTED INCONSISTENCY;RUN fsck MANUALLY"的解决方法

1.背景
公司虚拟机运行环境为vsphere6.5平台,其中VSAN集群中一台HP服务器异常报错(后检查确认为磁盘阵列卡异常),致使虚拟机自动迁移.以下图:

故障解除后虚拟机迁移完成后开机,报错(推测是迁移时有文件损坏)如图:

2.解决方案
按照系统提示,输入root用户的密码,进入命令行 

(1) 输入命令,查找root所在分区是多少(若是使用虚拟分区的话,我这个没有虚拟分区,直接就用/dev/sda2):
mount | grep “on /”
根据结果找到错误文件所在分区,根据错误显示个人是/dev/sda2

备注:root分区只是其中一个,有时候,咱们对Linux系统进行了多个分区,好比home在一个单独的分区,也要对其进行修复

(2)而后用命令fsck修复
fsck -y /dev/XXX
注:-y 选项指定检测每一个文件是自动输入yes,xxx表示root分区的路径
我上面是/dev/sda2 .  执行后结尾显示

(3)reboot重启ok

6、zabbix安装升级时,使用官方源网络异常问题

一、问题背景,公司zabbix3.4升级至4.4,根据官方手册步骤,首先安装官方yun源。而后使用yum upgrade,两条命令详情以下:
# rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
# yum upgrade zabbix-server-mysql zabbix-web-mysql zabbix-agent
二、使用yum upgrade命令更新时提示网络错误,以下图所示:

 

 

三、解决方法
此问题缘由为国外网址被拦截,或网络震荡引发

(1)更换主yum源为阿里源,centos7使用命令:wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo ;或下载后替换

(2)更换zabbix源为阿里云源,以下图:

相关文章
相关标签/搜索