Archive

‘IT 雜工日誌’ 分類過的Archive

修復 Oracle VM Manager DB 錯誤

2017年1月4日 尚無評論

如果你的 Oracle VM Manager 控制中心檢視 Jobs List 時都出現空的畫面,或者是升級 Oracle VM Manager 時出現 “GEN_000000:An exception occurred during processing: No such object (level 1)” 錯誤訊息,那麼這可能告訴你目前的 MySQL Database 已經出錯了。Oracle VM Manager 有提供一個修復工具,讓你簡易的排除 ( 雖然是簡易,但實際上操作前最好記得備份 ),操作步驟如下所示 :

  1. 關閉你的 OVMM 服務 :  service ovmm stop
  2. 切換路徑到 /u01/app/oracle/ovm-manager-3/bin
  3. 執行下列修復語法 :  ./ovm_upgrade.sh –fixup –dbuser=ovs –dbpass=XXXXX –dbhost=localhost –dbsid=ovs –dbport=49500 –fromversion=3.4.1 –toversion=3.4.1
  4. 重新啟動 OVMM 服務 : service ovmm start
  5. 再次登入你的 Oracle VM Manager 控制中心檢查 Jobs List 是否正常,也可以再次執行升級作業看是否會有其他錯誤

升級 Oracle VM 3.3.3 到 3.4.1

2016年6月27日 尚無評論

Oracle VM 在 3 月左右釋放出新版的 3.4.1 更新版本,這個版本修正與強化許多功能,有興趣的朋友可以參考 Oracle VM 3.4 正式釋出了 這篇文章,接著,我將說明怎樣從舊版的 3.3.3 升級到最新版的 3.4.1  ( 升級前,請各位先前往 edelivery.oracle.com 下載最新版的 OVM-Manager 與 OVM-Server ISO 光碟 )

  1.  首先你可以將 Oracle VM Manager 3.4.1 的 ISO 光碟放置到 Oracle VM Manager 主機中,並且透過 mount 指令工具將 ISO 光碟檔案掛載起來
    [root@OracleVM-Mgmt1 ~]# mkdir /mnt/OVM
    [root@OracleVM-Mgmt1 ~]# mount -o loop OVM-3.4.1.iso /mnt/OVM/
  2. 接著,切換路徑到 /mnt/OVM 中,執行 ./runInstaller.sh 腳本程式
    [root@OracleVM-Mgmt1 ~]# cd /mnt/OVM/
    [root@OracleVM-Mgmt1 OVM]# ./runInstaller.shOracle VM Manager Release 3.4.1 Installer

    Oracle VM Manager Installer log file:
    /var/log/ovmm/ovm-manager-3-install-2016-06-27-002357.log

    Please select an installation type:
    1: Install
    2: Upgrade
    3: Uninstall
    4: Help

    Select Number (1-4):  請選擇 2: Upgrade

  3. 升級過程會需要一些時間,因此務必要有耐心,相關過程如下:
    Verifying upgrading prerequisites …
    *** WARNING: Ensure that each Oracle VM Server for x86 has at least 200MB of available space for the /boot partition and 3GB of available space for the / partition.Starting Upgrade …

    Reading database parameters from config …

    ==========================
    Typically the current Oracle VM Manager database password will be the same as the Oracle VM Manager application password.

    ==========================
    Database Repository
    ==========================
    Please enter the current Oracle VM Manager database password for user ovs: 輸入目前 OVM 的資料庫管理密碼

    Oracle VM Manager application
    =============================
    Please enter the current Oracle VM Manager application password for user admin:輸入目前 OVM 的管理者密碼

    Oracle Weblogic Server 12c
    ==========================
    Please enter the current password for the WebLogic domain administrator: 輸入目前 WebLogic 的管理者密碼

    Please enter your fully qualified domain name, e.g. ovs123.us.oracle.com, (or IP address) of your management server for SSL certification generation, more than one IP address are detected: 192.168.1.100  [OracleVM-Mgmt1.server]: 敲下 Enter 直接使用偵測到的主機名稱

    Verifying configuration …
    Verifying 3.3.3 meets the minimum version for upgrade …

    Upgrading from version 3.3.3.1085 to version 3.4.1.1369

    Start upgrading Oracle VM Manager:
    1: Continue
    2: Abort

    Select Number (1-2): 輸入 1 進行升級作業

    接著系統便會開始進行升級作業, 這個升級作業會需要 10 – 20 分鐘, 請耐心等候

  4. 升級完畢後,系統會自動重新啟動 OVM Manager 相關服務,接著我們需要進行 Oracle VM Server 的升級,這個升級過程需要將運轉中的 VM 停止,操作方式如下:
    [root@OracleVM-Mgmt1 OVM]# mkdir /mnt/OVM-Server
    [root@OracleVM-Mgmt1 ~]# mount -o loop OVM-Server341.iso /mnt/OVM-Server/
    [root@OracleVM-Mgmt1 ~]# mkdir -p /var/www/repos
    [root@OracleVM-Mgmt1 ~]# cp -rp /mnt/OVM-Server/* /var/www/repos/上面的動作是將 OracleVM Server ISO 內容複製到一個 /var/www/repos 目錄內,當作 Local Repos 使用

    [root@OracleVM-Mgmt1 ~]# cd /var/www/
    [root@OracleVM-Mgmt1 www]# python -m SimpleHTTPServer 80
    Serving HTTP on 0.0.0.0 port 80 …

    接著,切換到這個目錄內透過 python 啟動一個 SimpleHTTPServer服務

  5. 接著,請用 admin 帳號登入到 Oracle VM Manager 介面,如下圖所示,切換到 Reports and Resources 分頁中OVM-1
  6. 切換到 Server Update Groups 項目內OVM-2
  7. 接著在 GlobalX86ServerUpdateConfiguration 建立一個新的更新套件庫 ( Repository ),內容如下:

    URL : http://IP/repos/Server  ( 放置剛才啟動 SimpleHTTPServer 的 IP 位址 )
    Enabled : 打勾
    Package Signature Type : 選擇 GPG
    Package Signature Key : http://IP/repos/RPM-GPG-KEY-oracle

    OVM-3

  8. 設定完畢後返回 Server and VMs 分頁, 你會發現每一台 Oracle VM Server 都會變成驚嘆號,直接在 Server 上按下滑鼠右鍵,選擇 Update,系統便會開始進行更新
    OVM-4

    更新時要注意,由於 Oracle VM Server 在更新完畢後會自動重新啟動,因此執行中的 VM 要記得先關閉喔。

  9. 最後,每一台更新好的 Oracle VM Server 你會發現原本的 Console 資訊不見了,這時候你可以到 /etc/sysconfig/init,找到 ACTIVE_CONSOLES=/dev/tty[1-6] 這行,將值改為/dev/tty[2-6],重新開機便可以恢復原本的 Console 資訊。
Categories: IT 雜工日誌, Oracle, Oracle_VM Tags: ,

Mantis 統計圖表無法顯示排除

2016年6月27日 尚無評論

Mantis 可以透過統計資訊繪製一些圖表讓專案成員知道目前的修復狀態與變化,如果你在執行時出現 “unable to read/find font” 或者是 X燒包 時可以透過下列方式修復:

  • X燒包修復方式:主要是缺少 php-dom 套件,可以透過 yum -y install php-dom將套件安裝後,重啟 httpd 服務
  • unable to read/find font:這個主要是缺少 truetype 字型,你可以安裝 msttcorefonts ( http://corefonts.sourceforge.net/ ) 套件後,執行
    ln -s /usr/share/fonts/msttcorefonts /usr/share/fonts/truetype
    便可以解決

Win 9X 存取 Samba 問題

2016年6月16日 尚無評論

Win9X 在存取 Samba Service 時若有出現要輸入 IPC$ 的密碼時, 如

ipc_dollar

解決方式如下 :

  1. 編輯 /etc/samba/smb.conf , 添加下列描述到 [Global] 內

    lanman auth = Yes
    client lanman auth = Yes
    client plaintext auth = Yes
    client ntlmv2 auth = no

  2. 確認你 Win9X 登入的使用者帳號在 Samba 上面也有一樣的帳號名稱
  3. 重新啟動你的 Samba 服務

 

GitLab 重設系統管理員 root 密碼

2016年6月13日 尚無評論

GitLab 如果忘掉了系統管理員 root 密碼時, 可以透過下列方式進行重建 :

  • sudo gitlab-rails console production
    irb(main):001:0>
  • 接著在 irb(main):002:0 > 後方輸入 u = User.where(id:1).first
    底下會撈出這個使用者帳號的資訊
  • irb(main):002:0> u.password=’Password’ 輸入新的密碼
  • irb(main):003:0> u.password_confirmation=’Password’ 再一次輸入新的密碼
  • 最後儲存剛才的設定 irb(main):004:0> u.save!
Categories: IT 雜工日誌 Tags: ,

Windows 檔案/目錄 權限消失解決方式

2016年6月7日 尚無評論

Windows 系統中的檔案與目錄有時候會突然發生連 Administrator 都沒有存取權限, 要刪除也不是, 放著也不是, 底下為簡易排除方式:

  1. 以系統管理員身分開啟 命令提示字元 視窗
  2. 透過下列指令將檔案或目錄改變擁有者為 Administrator
    takeown /f “檔案或者是目錄的位置” /r /d y
  3. 最後再透過 icacls 指令將檔案或者是目錄賦予 Administrator 權限, 這時候你的檔案圖案上會出現一個鎖頭符號
    icacls “檔案或者是目錄的位置” /grant administrators:F /t
  4. 此時你已經重新拿回檔案擁有權限, 可以刪除或者是搬移檔案
Categories: IT 雜工日誌 Tags: ,

Linux 下的 RDP 連線工具

2015年9月29日 尚無評論

一直以來在 Linux 底下我在使用 RDP 連線的工具通常是透過 Terminal Server Client,但詭異的是今天要嘗試透過 Terminal Server Client 連線到 Windows Server 2012 的 RDP 時卻發現一直無法連線,原本以為是主機掛點,後來才發現似乎是 Client 工具支援的問題。

於是改用 rdesktop 這個計畫所分支出來的另外一個軟體 Remmina 來進行 RDP 連線的管理,安裝方式十分簡單:

# zypper in remmina remmina-plugin*

要注意,預設若是直接安裝 remmina 套件是不支援除了 SSH/SFTP 以後的協定,所以要記得將 Plugin 套件安裝起來才可以在協定選擇中使用其他連線協定

查詢最近下過的 MS SQL 語法紀錄

2015年8月13日 尚無評論

由於當我們透過程式去呼叫 SQL 語法執行作業時,若是不知道所下達的語法為何時,我們可以透過下列語法在 SQL Server Management Studio 中執行,可以查詢出相關紀錄:

SELECT  SUBSTRING(qt.TEXT, (qs.statement_start_offset/2)+1,
((CASE qs.statement_end_offset
WHEN -1 THEN DATALENGTH(qt.TEXT)
ELSE qs.statement_end_offset
END – qs.statement_start_offset)/2)+1),
qs.execution_count,
qs.total_logical_reads, qs.last_logical_reads,
qs.total_logical_writes, qs.last_logical_writes,
qs.total_worker_time,
qs.last_worker_time,
qs.total_elapsed_time/1000000 total_elapsed_time_in_S,
qs.last_elapsed_time/1000000 last_elapsed_time_in_S,
qs.last_execution_time,
qp.query_plan
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp
ORDER BY qs.last_execution_time DESC

Bugzilla 透過 Gmail 發送信件

2015年7月29日 2 則評論

當你建制好 Bugzilla 這個 Bug tracker 平台之後,如果你希望他可以透過 Gmail 來發送 Bug 信件,我們可以透過下列方式進行配置來達成這個目的:

  1. 首先你得先看一下 Google 對於 Gmail 當作 SMTP Relay 的相關限制 https://support.google.com/a/answer/176600?hl=zh-Hant
  2. 雖然 Bugzilla 已經有內建幾個 Mail Delivery Method 可以使用,但不管怎樣配置似乎都無法順利透過 Gmail 幫我們寄送 Bug 信件,因此我們可以額外安裝ㄧ個 Perl Module來幫助我們,操作方式如下所示:

    [root@bugzilla ~]# cd /var/www/html/bugzilla/
    [root@bugzilla bugzilla]# perl install-module.pl Email::Send::Gmail

    通常安裝完這類的 Perl Module後,都會被乖乖放置在 /usr/lib64/perl5/vendor_perl/ 路徑內,但這個Module卻是直接放在 /root 目錄下,因此我們得手動複製到 /usr/lib64/perl5/vendor_perl/ 路徑內:

    [root@bugzilla bugzilla]# cp -ra /root/perl5/lib/perl5/Email  /usr/lib64/perl5/vendor_perl/

  3. 完成模組的安裝之後,接著請以管理員身份登入 Bugzilla 平台,你可以在 管理者介面 –> 參數設定 中的 電子郵件 項目內的 Mail Delivery Method 中挑選 Gmail 模式:

    擷取選取區域_007

  4. 最後,我們只要將 Gmail 的 SMTP位址與登入帳號密碼輸入後便可以完成相關配置

建立 Ntopng 來作為收集與分析 SFlow 訊息

2015年7月1日 2 則評論

為了在內部網路統計監控封包流竄與流量狀態,我們可以透過 Cacti、MRTG、PRTG之類的軟體來收集這些訊息封包,如果你的交換機有支援 SFlow 或是 NetFlow 協定運作,我們也可以透過相關方式將這類的訊息拋給服務來進行統計與分析。在這篇文章我要介紹如何透過簡單的 Ntopng 來作為 SFlow 訊息的收集與分析作業:

  1. 筆者環境是使用 Extreme Switch,基本上大部分網管型 Switch 都有支援 SFlow 或是 Netflow 模式,讀者可以自行參考交換機的說明書,底下是針對Extreme Switch開啟 SFlow功能的步驟
    • enable sflow
    • configure sflow agent 192.168.1.254 (指定你交換機的 IP 位址 )
    • configure sflow collector 192.168.1.20 port 6343 vr “VR-Default” ( 指定接收 SFlow 訊息的主機 IP 與 Port,並且指定 Virtual Route 名稱是 VR-Default,這邊記得不要用 VR-Mgmt,不然你會收不到任何訊息)
    • configure sflow sample-rate 512
    • configure sflow poll-interval 30
    • enable sflow ports all
  2. 上面參數執行完畢後,你可以透過 show sflow statistics 來看一下有沒有在運作:
    • * Slot-1 Stack.9 # show sflow statistics

      SFLOW Statistics

      Received frames : 1294263515652
      Sampled Frames : 39020
      Transmitted Frames : 32236
      Broadcast Frames : 7092901550
      Multicast Frames : 1462448108
      Packet Drops : 0

  3. 接著,我們必須在 Linux 主機中安裝 Ntopng,在這邊筆者是用 Oracle Linux Server 7.1 來作為預設的安裝環境,請讀者安裝完畢後先透過 yum -y update 將套件更新到最新版本狀態
  4. 由於這台主機我只用來作為 Collector 使用,所以我將 SELinux 與 Firewalld 關閉
  5. 因為待會會需要一些相依性套件,因此我們得先將 EPEL 的套件庫裝上,安裝方式如下:
    • yum -y install http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
  6. 接著,我們在將 ntop 的套件庫添加到 /etc/yum.repos.d 目錄內
    • cat << EOT > /etc/yum.repos.d/ntop.repo
      [ntop]
      name=ntop packages
      baseurl=http://www.nmon.net/centos-stable/\$releasever/\$basearch/
      enabled=1
      gpgcheck=1
      gpgkey=http://www.nmon.net/centos-stable/RPM-GPG-KEY-deri
      [ntop-noarch]
      name=ntop packages
      baseurl=http://www.nmon.net/centos-stable/\$releasever/noarch/
      enabled=1
      gpgcheck=1
      gpgkey=http://www.nmon.net/centos-stable/RPM-GPG-KEY-deri
      EOT
  7. 最後我們將 ntopng、ntopng-data等套件安裝到系統中:
    • yum remove mysql-community-libs mysql-community-common postfix ( 由於在 OEL 預設的 SQL 是使用 Mariadb,因此等等我們在安裝 nprobe 時會有相依性套件問題,所以安裝前先將 mysql 一些函數庫套件移除)
    • yum -y install ntopng ntopng-data tcpdump postfix nprobe (這邊多安裝 tcpdump 主要是待會筆者要透過他來測試訊息傳遞的狀態使用,不裝也可以)

完成上述步驟的安裝,此時我們已經擁有一個具備 ntopng 的作業環境,接下來的步驟我們將進行 SFlow 訊息的接收配置,操作方式如下所示:

  1. 首先,我們可以先透過 tcpdump 來測試一下目前 SFlow 訊息是否已經乖乖的會拋到這台主機的 UDP 6343 Port:
    • tcpdump -i ens32 udp port 6343
      tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
      listening on ens32, link-type EN10MB (Ethernet), capture size 65535 bytes
      21:16:06.002473 IP 192.168.1.254.43373 > Intranet-Netflow.localdomain.sflow: sFlowv5, IPv4 agent 192.168.1.254, agent-id 0, length 1284
      21:16:06.002826 IP 192.168.1.254.43373 > Intranet-Netflow.localdomain.sflow: sFlowv5, IPv4 agent 192.168.1.254, agent-id 0, length 1208
      21:16:06.003107 IP 192.168.1.254.43373 > Intranet-Netflow.localdomain.sflow: sFlowv5, IPv4 agent 192.168.1.254, agent-id 0, length 1244
    • 如果你可以順利看到上面的類似訊息就表示目前 SFlow 訊息的傳遞沒有太大問題
  2. 接著我們必須將系統上的 Redis 服務啟動起來,並設定為預設開啟:
    • [root@localhost ~]# systemctl enable redis.service
      [root@localhost ~]# systemctl start redis.service
      [root@localhost ~]# systemctl status redis.service
      redis.service – Redis persistent key-value database
      Loaded: loaded (/usr/lib/systemd/system/redis.service; enabled)
      Drop-In: /etc/systemd/system/redis.service.d
      └─limit.conf
      Active: active (running) since 三 2015-07-01 21:18:13 CST; 51s ago
      Main PID: 11736 (redis-server)
      CGroup: /system.slice/redis.service
      └─11736 /usr/bin/redis-server 127.0.0.1:6379

      7月 01 21:18:13 Intranet-Netflow.localdomain systemd[1]: Starting Redis per…
      7月 01 21:18:13 Intranet-Netflow.localdomain systemd[1]: Started Redis pers…
      Hint: Some lines were ellipsized, use -l to show in full.

  3. 最後我們要開啟 Ntopng 與 Nprobe 來接收交換機所拋過來的 SFlow 訊息:
    • mkdir /ntopng && chown -R nobody.nobody /ntopng
    • ntopng -i tcp://127.0.0.1:5556 -d /ntopng -w 3000 -v >> /var/log/ntopng.log &
    • nprobe –collector-port 6343 –zmq tcp://127.0.0.1:5556 >> /var/log/nprobe.log &

完成相關配置之後,接著我們可以透過瀏覽器連線到 Ntopng 的網頁,http://IP:3000 (預設使用 admin/admin 登入),如下所示:

ntop01

 

順利的話你應該可以在登入後看到相關數據的呈現:

ntop02