運維工做筆記

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源爲阿里雲源,以下圖:

相關文章
相關標籤/搜索