ubuntu 16.04 安裝配置kdump


1. kdump簡介

    coredump為用戶態進程段錯誤等觸發的crash現場轉儲機制, 可利用gdb進行corefile的調試.

    kdump為kernel crash/panic等而觸發的轉儲機制, 一般使用crash工具進行調試.

 

2. kdump原理

     預留部分內存(如192MB) 供轉儲內核使用, 當panic/crash產生時 利用kexec系統調用直接拉起轉儲內核. 利用該內核進行crash現場的儲存dump.

 

3. kdump使用

     ubuntu配置的內核已使能kdump的支持, 故僅需要安裝linux-crashdump包即可,

     sudo apt-get install linux-crashdump

     該包包含crash, kdump-tools, grub等相關依賴.

     安裝過程中會修改kernel cmdline已預留kdump轉儲內核內存空間. 以及使能kdump.

      reboot重啟系統后,

 可用以下方式驗證:

       kdump-config show

 

 

 

4、安裝kdump
apt-get install linux-crashdump

根據提示操作

 

 

 

 

 



5. 調整crashkernel內存大小為768M(默認192M內存太小)
修改 /etc/defatul/grub.d/kdump-tools.cfg 中 crashkernel=512M-:768M
6. 重新生成grub.cfg
grub-mkconfig -o /boot/grub/grub.cfg
7. reboot 重啟生效


手動測試kdump能否正常工作:
echo 1 > /proc/sys/kernel/sysrq
echo c > /proc/sysrq-trigger
此時系統會觸發kdump,並重啟
重啟后,/var/crash會保存此次手動觸發生成的vmcore

檢查生產的文件:

 

 

 

 

kdump的高級配置

Centos系統和kdump相關的配置文件有兩個:一個是/etc/sysconfig/kdump,該文件內的內容一般無需修改 -- 網上一些技術站上在kdump服務啟動不成功時修改這里,這里提示下,如果是通過yum源正常安裝的,該文件無需修改;一個是/etc/kdump.conf 。這里指的高級配置主機是/etc/kdump.conf ,該配置文件的可配置選項可通過man 5 kdump.conf 獲取幫助,這里只列舉下常用到的部分:

 ubuntu 這里主要配置/etc/default/kdump-tools 和/etc/defatul/grub.d/kdump-tools.cfg。

下面先介紹Centos的配置

1、設置kdump文件成生的位置

控制路徑的主要有兩部分: 

  1. #raw /dev/sda5
  2. #ext4 /dev/sda3
  3. #ext4 LABEL=/boot
  4. #ext4 UUID=03138356-5e61-4ab3-b58e-27507ac41937
  5. #nfs my.server.com:/export/tmp
  6. #ssh user@my.server.com
  7. path /var/crash

前面的部分用於設置存儲的設備或分區位置--可以是raw裸設備、本地分區、網絡路徑在本地的掛載點或通過ssh傳輸,path則是相對的存儲路徑。如我們通過nfs 將遠程的一個分區掛載到本地的/mnt分區下,kdump文件就存儲在/mnt/var/crash/下。默認上面的部分不設置就是相對根分區的相對路徑,即/var/crash 。

需要特別指出的是,如果使用ssh進行傳輸,需要配置key認證,使用/etc/init.d/kdump propagate即可配置ssh認證傳輸,如下: 

  1. kdump.conf中指定ssh網絡傳輸
  2. ssh root@192.168.0.100/data/
  3. 執行下面的命令會配置本機到192.168.0.100主機的key認證傳輸
  4. # service kdump propagate
  5. Generating new ssh keys… done.
  6. The authenticity of host '192.168.0.100 (192.168.0.100)' can't be established.
  7. RSA key fingerprint is 31:c2:d8:b6:eb:2e:03:64:cd:ba:56:e9:49:6e:5d:6c.
  8. Are you sure you want to continue connecting (yes/no)? yes
  9. Warning: Permanently added '192.168.0.100' (RSA) to the list of known hosts.
  10. root@192.168.0.100's password:
  11. /root/.ssh/kdump_id_rsa.pub has been added to ~root/.ssh/authorized_keys2 on
  12. 192.168.0.100

按照上面的配置,當有kdump生成時,會通過scp傳輸存儲在192.168.0.100主機的/data/var/crash 目錄下。

 

2、core_collector控制 (dump保存內存的數據太大,這里配置下可以減少很多數據)

該處是信息收集大小的關鍵,主要用到makedumpfile命令,centos 上的默認配置如下: 

  1. core_collector makedumpfile -c --message-level 1 -d 31

-c 表示啟動zlib進行數據壓縮 

--message-level  指定了信息收集的級別,1為只打印process indicator 日志信息,默認值為7,具體見下表 

  1. Message | progress common error debug report
  2. Level | indicator message message message message
  3. ---------+------------------------------------------------------
  4. 0 |
  5. 1 | X
  6. 2 | X
  7. 4 | X
  8. * 7 | X X X
  9. 8 | X
  10. 16 | X
  11. 31 | X X X X X

-d 指定了kdump的過濾級別,具體見下表 

  1. | cache cache
  2. Dump | zero without with user free
  3. Level | page private private data page
  4. -------+---------------------------------------
  5. 0 |
  6. 1 | X
  7. 2 | X
  8. 4 | X X
  9. 8 | X
  10. 16 | X
  11. 31 | X X X X X 

31表示過濾掉以上五種全部信息,這樣kdump生成的速度就會更快,生成的vmcore文件也會較小。如果此處使用值0 ,表示不過濾任何信息,在kdump生成時,會記錄主機當前的所有信息。這就是為什么在kdump生成時,有些主機只有幾十M大小生成,有些主機確有幾十 G大小的原因。更多用法可以查看makedumpfile命令的幫助文檔。

3、指定default配置

該處的配置,參考了網上的一些配置,一些技術文檔上使用的是defult  reboot選項,而默認的是defult  shell  ,兩者之間的區別是:

  1. reboot: If the default action is reboot simply reboot the system and loose the core that you are trying to retrieve.
  2. shell: If the default action is shell, then drop to an hush session inside the initramfs from where you can try to record the core manually.Exiting this shell reboots the system.

在查看/usr/share/doc/kexec-tools-2.0.0/kexec-kdump-howto.txt幫助手冊中的解釋更容易理解一些,如下:

  1. reboot --> reboot the system.
  2. shell --> drop to a shell with-in initrd. A user can try to capture the
  3. vmcore manually.

從這個解釋可以看到選擇shell 可以手工的DIY一些東西,而選擇reboot 會在kdump生成后簡單直接的reboot 系統。除了上在兩個選項,還會poweroff 、halt 可選,如果不是技術研究的目錄,在生產環境上我想誰不會選擇kdump生成后讓系統掛起吧。

除上面三處之外,還有其他配置部分,如debug_mem 的配置等。具體可以看kdump.conf 的man 結果。

下面介紹ubuntu16.04的配置

ubuntu 16.04 沒有kdump.conf ,主要配置/etc/default/kdump-tools文件

 #MAKEDUMP_ARGS="-c -d 31"    默認是注釋的,可以修改

改成 MAKEDUMP_ARGS="-c -d 31 --dump-dmesg"  這樣觸發kdump的時候保存的日志會小很多,以免時間久了日志占滿系統盤。

 

 

 

 

ubuntu apt-get 比較快的國內源

方法:
1、修改源地址:
cp /etc/apt/sources.list /etc/apt/sources.list.bak
vim /etc/apt/sources.list
#添加阿里源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse


##清華源
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
更新看看速度:
sudo apt-get update
sudo apt-get upgrade


鏈接:https://www.jianshu.com/p/c3f001d6b765

 

 

參考;

https://www.cnblogs.com/zhangmingda/p/12566534.html

https://www.jianshu.com/p/c3f001d6b765?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

 

 

無法聯網的情況下手動下載:

總共需要下面幾個包:

 

下載完成之后執行

dpkg -i *.deb 可安裝 

 

所有包都可以在下面的網站下載安裝:

https://packages.ubuntu.com/xenial/linux-crashdump

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM