顯示具有 Linux 標籤的文章。 顯示所有文章
顯示具有 Linux 標籤的文章。 顯示所有文章

2015年7月3日 星期五

monitorix圖形化監控軟體 - 修改圖像顯示從1天(1day)至1小時(1hour)

monitorix 是採用 rrdtool 圖像顯示模組來產生報表。
如果套用的模組是經過壓密後,或非文字模式顯示,那麼要修改其資料結構或是資料庫是有困難的。
但 monitorix 有一個很奇妙的地方。預設的顯示是1day, 1month, 1year,也就是
使用者能選擇要顯示的報表模式可以是 1天,1個月,1年為基準。但是往往我們在看 performance效能圖,都需要看到 每1秒、每1分鐘、每1小時,那要怎麼改?

monitorix 目前只支援到 1hour,而且需要為 v2.4.1 版本後才能支援。

接著,如果你有注意看monitorix網址的內容,你會發現已下內容
http://IP地址/monitorix-cgi/monitorix.cgi?mode=localhost&graph=all&when=1day&color=black

沒錯,如果要用hour的方式顯示,此時不是改成 when=1hour 喔,是改成 when=hour
http://IP地址/monitorix-cgi/monitorix.cgi?mode=localhost&graph=all&when=hour&color=black

那麼就會得到以下內容,看到沒?單位變成 hour 顯示了。
那可不可以修改首頁內容,方便直接選 hour 的選項?

答案是:可以,但是有限制
為何可以但是又有限制?因為當 monitorix 重啟後,或是系統重新開機,你會發現 index.html 被重新覆蓋掉了

那如何修改 index.html?
修改:
vi /var/lib/monitorix/www/index.html

找到 input type="radio" checked 這字串,複製 <td></td>內的整串內容。
把 value="xxx" 換成 value="hour"
如果要讓預設就直接選取到,請加入 checked 在 name="when"之前。checked請不要重複在1day, 1week, 1year的input內,切記!
示範圖,如下:
修改完成後,重新讀取網頁就會看到 Hourly 的選項了。
點擊OK就可以看到,監控變成每小時顯示模式。



再來,驗證 index.html 是否會因為重啟而回歸原始設定內容。(如果有修改,請先備份 index.html 吧!)

service monitorix restart

再次reload網頁,發現真的會被回歸設定。

其實,也有應對方法。可以透過 crontab 進行每日排程比對檔案大小 ( du )。
只要檔案大小不對,就 cp 之前修改的檔案至 /var/lib/monitorix/www/index.html 進行覆蓋。
如果之後有發現更好的方法,日後會再提供嚕。

2015年7月2日 星期四

monitorix圖形化監控軟體 - 設定監控項目

在安裝完畢後,有些預設的項目可能不是我們所需要的。 此時可以透過修改 monitorix設定檔,來達到我們所需要被監控的裝置或是系統狀態。例如我要顯示特定掛載磁碟的IO狀態。

1. 先查看掛載的磁碟

df
假設要監控 /dev/sda1 的硬碟,查詢 官方文件 的 Filesystem usage and I/O activity 說明,那麼我們需要更動一些設定。

這是預設監控硬碟的內容。


首先,至 monitorix 設定檔案: (預設在  /etc/monitorix/monitorix.conf )

找到 <fs> 設定區域。

<list></list> 之間,有沒有發現為  0 =/, swap, /boot
這就是預先設定監控的項目。此時我們可以加入所要監控的磁區。

加入完成後,重新啟動服務。

service monitorix restart

這時候再回去看看 Filesystem usage and I/O activity,就會出現你所設定的項目在監控中。如圖:

其他設定及修改都大同小異。當然如果覺得圖片格式太小,也可以修改pixel尺寸,但是修改的內容要對應RRDtool設定,避免修改後會出現圖像錯亂的問題。有關rrdtool,可以參考 這裡

(備註: monitorix的預設顯示單位是 1 day,如果要讓它計量單位為 每小時, 每x小時,那麼就要自行修改)。如何修改,請參考這篇,monitorix圖形化監控軟體 - 修改圖像顯示從1天(1day)至1小時(1hour)

2015年7月1日 星期三

monitorix圖形化監控軟體 - 安裝篇

測試人員在撰寫測試報告時候,通常會提供一連串數據資料。
但是如果能用圖片說明,再把data當成reference,那麼就會使報告看起來簡單許多,而不會太多繁瑣文字敘述。

Linux有許多圖形化監控軟體,如 Monitorix、OpenNMP、Observium、Zabbix、Cacti、Collectd、MRTG等。市面上大多免費軟體都是透過 SNMP 方式去監控、也有部分是使用 client agent 然後需要安裝一套 centralize / consolidation 軟體套件去做管理。

首先,先把所需套件安裝起來。
yum install rrdtool rrdtool-perl perl-libwww-perl perl-MailTools perl-MIME-Lite perl-CGI perl-DBI perl-XML-Simple perl-Config-General perl-HTTP-Server-Simple perl-IO-Socket-SSL
這是從官網上的截圖,所需要的套件如下:
說明: 這裡注意一下,有些套件是在DVD2裡。如果出現這個錯誤,可能是你沒有把套件丟去PXE server或是你只有把DVD1的檔案copy到系統,而在做yum install時候找不到。



↓ 下載並且直接進行安裝。
rpm -ivh http://www.monitorix.org/monitorix-3.7.0-1.noarch.rpm

↓ 編輯 httpd 並新增virtualhost。

vim /etc/httpd/conf/httpd.conf
↓ 加入

重新啟動 httpd 與 monitorix 服務
service httpd restart 

service monitorix restart
使用 IE、Firefox、Chrome等,網路閱覽器進行登入。
IP: http://IP_ADDR:8080/monitorix


2015年6月28日 星期日

使用Linux,並啟動SOL(Serial Over LAN)管理伺服器

管理者因為要一次多台管理,因此在管理server多半都採用command line (CLI)的方式做操作。
如果使用GUI,那麼畫面通常沒辦法把完整訊息傳至terminal。而當管理者要登入,只能透過iKVM或是至機房實機操作。但這不但耗費時間,且如果要對數百台做韌體、軟體更新,那一台一台操作會曠日廢時。

因此很多網管在針對伺服器管理都會透過IPMI方式,把畫面redirect到putty或是secureCRT這類軟體上進行操作。 要如何實現? 


  • 首先,IPMI在v2.0的spec有定義SOL的支援。因此,要使用SOL,必須為IPMI 2.0支援的伺服器(現在伺服器只要有IPMI的,理論都有v2.0的支援才是!) 
  • 再者,BIOS及IPMI韌體需支援。 
  • 其次,配備基礎網路設備,能讓管理者access被管理伺服器的IPMI (這個有點廢話,但是不說怕有人誤會是在機器前操作......)
操作:
  1. 先至BIOS啟動SOL設定。
  2. 接著,確定Console redirection設定
  3. 如果使用Microsoft console,請把Outband Management的功能打開。

  4. 到這步驟,已經完成BIOS設定。接著要去Linux內設定讓OS能redirect terminal至IPMI。

  5. /boot/grub/grub.conf 尋找 "splashimage=(hd0,0)/grub/splash.xpm.gz",並把它用 "#" 符號給屏蔽掉。
  6. 在splahimage下方,輸入這2行。
  7. serial --unit=1 --speed=115200 --word=8 --parity=no --stop=1
    
    terminal --timeout=10 serial console
  8. 同時,在相同檔案內grub.conf找到kernel,並且在其字串最後面輸入COM port設定。

  9. 完成圖如下:
  10. 最後,在 /etc/inittab 內,輸入:
  11. s0:2345:respawn:/sbin/agetty ttyS1 115200

    說明: ttyS1 會根據你設定的COM port# 而有所不同。如果是COM1,那麼就是ttyS0。請注意這點有所不同。
    到這裡,Linux的設定就結束了。現在要啟動SOL服務。

  12. 請先下載 ipmitool 或是 SMCIPMITool。執行指令進入 shell 模式
  13. SMCIPMITool IP_ADDR USERNAME PASSWORD shell
    IP_ADDR: IPMI的IP地址
    USERNAME: IPMI的登入使用者帳號
    PASSWORD: IPMI的登入使用者密碼

  14. 輸入指令,啟動SOL Windows
  15. sol window

    系統重啟後,就可以看到BIOS畫面。當進入Linux後,terminal也會打在sol window上。這樣就能透過指令方式,輕鬆管理伺服器了。





2018/6/22更新:
如果採用RHEL/CentOS 7版本,那麼可以按照以下方式做。

  1. Fedora有講到這個項目設定,參閱 這裡
  2. 修改 /etc/default/grub
    #vim /etc/default/grub
    Add
    GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8"
    GRUB_TERMINAL="serial"
    GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
  3. 更新開機grub
    #grub2-mkconfig -o /boot/grub2/grub.cfg

2015年6月21日 星期日

測試Nvidia/ATI/Intel Xeon PHI GPGPU卡,先卸載onboard VGA

在測試比較舊的Linux版本時,執行可能會遇到效能或是出現error code。
此時請先把onboard VGA的驅動程式給卸載,再進行測試,否則容易出現錯誤導致測試failed.
要如何卸除或是解決此問題?

nVidia:
關閉aspm  (pcie_aspm=off 加入至grub),且使用 Supermicro X8/X9 主板,請這樣做:

/etc/modprobe.d/blacklist.conf
最末行,加入
blacklist nouveau
關閉aspm  (pcie_aspm=off 加入至grub),且使用 Supermicro X10/X11 主板,請這樣做:

vi /etc/modprobe.d/blacklist.conf
最末行,加入
blacklist ast




Intel Xeon PHI:
關閉aspm (pcie_aspm=off加入至grub),如果出現錯誤,請這樣做: 編輯:
vi /etc/grub.conf
找到 kernel 在最末端,加入:
intel_iommu=off




Reference: blacklist 的 driver_name 名稱及其對應裝置
"ark" - Ark Logic
"ast" - ASPEED Technology
"cirrus" - Cirrus Logic
"dummy" - Virtual/Offscreen Framebuffer
"fbdev" - Linux FrameBuffer Device
"glint" - 3DLabs
"i128" - Number Nine
"i740" - Intel 740
"intel" - Intel Integrated Graphics Processor
"mach64" - ATI Mach64
"mga" - Matrox
"modesetting" - Modesetting VESA driver
"neomagic" - NeoMagic
"nouveau" - Nvidia open-source 2D/3D driver*
"nv" - Old Nvidia VESA 2D driver
"openchrome" - VIA/S3 Chrome Graphics
"r128" - ATI Rage 128
"radeon" - ATi/AMD Radeon/FireGL*
"s3virge" - S3 Virge
"savage" - S3 Savage
"siliconmotion" - Silicon Motion
"sis" - SiS
"tdfx" - 3Dfx Voodoo Banshee/3/4/5
"tga" - DEC TGA
"trident" - Trident
"v4l" - Video 4 Linux
"vesa" - VESA
"vmware" - VMware Guest OS
"voodoo" - 3Dfx Voodoo 1/2/Rush

2015年6月18日 星期四

CentOS/RHEL 安裝Nagios

Nagios提供非常多完整的plugin套件。
如果是網管人員,Nagios整合了許多軟硬體上的監控功能,只要透過導入plugin的方式就能實現。

如何安裝?
先至 Nagios 官網下載。(有分 XI 版跟Nagios 2.x/3.x版本),這裡就先介紹 XI 版本安裝模式。


↓ 進入官網後,點擊 Download Free Trial 連結。
↓ 如果不想填寫資料,可以直接點 Skip to Download
↓ 選取軟體要安裝在哪個作業系統
下載完畢後,透過 WinSCP 這類SSH檔案上傳軟體,傳至伺服器主機。

↓ 接著,解壓縮
tar zxvf ./xi-2014r2.7.tar.gz

↓ 進入解壓縮目錄
cd nagiosxi

↓ 執行完整安裝 (如果不想回答問題,都採預設值,可以接 -n 指令,如 ./fullinstall -n)
./fullinstall

軟體會檢查所需的套件是否有安裝。沒有安裝也會幫你預先裝上,相當方便。 大約等待數分鐘後,系統會顯示安裝好的IP位置路徑。
第一次登入會要求輸入管理密碼。輸入完成後,就可以採用 nagiosadmin 及 所設定的密碼登入了。


Nagios XI並不是免費的喔,XI有60天試用的限制。喜歡Nagios XI可以至他們官網購買License。

另外,如果採用Supermicro主機板或是系統,這裡 可以下載套件。

2015年6月15日 星期一

wget下載目錄內所有檔案

wget用man指令去查看是這樣寫的,
Wget - The non-interactive network downloader.
顧名思義就是文字介面下載器。它並非像Windows介面那樣,用拖拉方式就可以下載,而是需要透過文字指令。這裡不介紹每個參數使用,如果想查詢每個參數的使用方式,可以用 man wget 查看。

常常會看到目錄下有一堆檔案連結,如果一個一個點擊下載,那要花很久時間且費力。
可以透過以下方法來實現這個需求。


wget -r -np -nH http://FILE_ADDR

例如在hinet idc上抓CentOS套件資料:


  • -r   在下載端的目錄,建立所有經過的目錄結構。
  • 也就是說,在系統下,你會看到 CentOS/6.6/os/x86_64/Packages/ 這個結構出現。
  • -np 不下載指定目錄的上一層資料。
  • 用上一個例子來說明,也就是說不會到x86_64下抓檔案。如果下這個參數,有時候會抓到index.html或是其他不相關的檔案。
  • -nH 關閉產生目錄結構連結至遠端伺服器。
  • -R   規避指定檔案
當下載完成,發現會出現一些 index.html

不想這些檔案出現,可以加入 -R 參數,例如:

wget -r -np -nH -R index.html* http://mirror01.idc.hinet.net/CentOS/6.6/os/x86_64/Packages/

* 符號表是index.html後面所有形式的內容都不下載。





2015年6月8日 星期一

查驗Linux是否啟動ASPM

ASPM關閉可以透過BIOS作用,但在Linux下,其設定往往會被overwrite掉。
當ASPM開啟後,系統的PCIe (尤其是網卡network Adapter),在進入省電模式下,要立即馬上再恢復工作,極可能產生網路斷線問題。

解決方法,除了在grub裡面加入 pcie_aspm=off 外,還有一項可以確認是否為開啟狀態。


  1. 透過指令lspci找尋裝置 (example, 查看 i350 network adapter)
  2.  lspci -vv |grep -i i350
  3. 例如查看i350網卡的第一個port,其Bus及device raw data
  4. 查閱i350規格書,並找 Link Control Register位置。
  5. 查看 0xB0 及 0xB1 位置,對照第2點的register raw data。0x40為8bits+8bits組合,00也為相同模式,可以解析成以下圖:
    0x40 為 1000 0000 拆解,對應Intel規格書,第1+2bit的值(看上圖黑色數字),可以是以下組合:

  6. 00b = PM disabled.
    01b = L0s entry supported.
    10b = L1 Entry Enabled.
    11b = L0s and L1 supported.
    也就是說,目前為00L0s及L1全部關閉狀態
    如果有出現0x41 (1000 0001),那麼L0s就為開啟。
    反之,出現0x42 (1000 0010),為L1開啟,L0s關閉。
    如果是0x43 (1000 0011),那麼就是L0s及L1全部開啟(enabled)。








2015年5月13日 星期三

Linux Bash 輸出檔案去首行去尾行

在區網內,要找有哪些IPMI裝置,可以採用SMCIPMITool工具抓取。
寫script自動化的過程,常會遇到要如何去頭去尾。
這裡可以使用以下指令:

sed -i '$ d' detsys.txt && sed '1d' detsys.txt
說明:  detsys.txt 是檔案名稱

去首行是:
sed -i '$ d' detsys.txt

去尾行是:
sed '1d' detsys.txt

當然也可以直接從SMCIPMITool著手,使用found list可以把抓到的IPMI裝置儲存成一個檔案。

例如執行前,執行後的圖樣:






2015年5月4日 星期一

Redhat/CentOS下,獲得MAC的方式

在Redhat/CentOS下,能抓到MAC的方式很多。
這裡就列出幾個方法能實現此功能的指令。

  1. 最簡單的:
    ifconfig
  2. 查看某個網路PORT的MAC (x就是eth port的ID, 例如 eth0, eth1..等)
    cat /sys/class/net/ethx/address
  3. 這個可以看所有系統網卡設備資訊:
    cat /etc/udev/rules.d/70-persistent-net.rules
  4. 顯示所有可用的網路PORT資訊:
    ip link show
  5. 使用指令將IP及MAC對應:
    cat dhcpd.leases | egrep 'lease|hardware ethernet' | sed -e '1,2d' -e 's/lease/\ /g' -e 's/hardware/\ /g' -e 's/ethernet/\ /g' -e 's/ //g' -e 's/\x3B/\x00/g' -e 's/\x7B/\x00/g'

2014年12月1日 星期一

LiveDVD下無法使用putty登入

使用USB建置 CentOS 6.5 LIVEDVD後,本來想說透過putty方式登入系統。
IP有看到,結果發現無法登入的。出現Connection refused的錯誤,如下圖










之後發現,原來是LiveCD預設的SSH,不讓root登入。需要修改sshd_config後,root才能登入。(note: 因為root的權限實在太強大阿....)
  1. 至本機,編輯sshd_config設定
  2. vi /etc/ssh/sshd_config
  3. 在sshd_config檔案內容裡找到一行(約莫在第42行吧)  #PermitRootLogin yes 把#給拿掉,讓root能允許登入
  4. 儲存編輯內容
  5. 重新啟動sshd服務
    service sshd restart

重新啟動後,即可用putty等ssh工具做管理嚕。