搜尋此網誌

2014年6月1日 星期日

整理一下這九個月裡所建的監控系統程式

以下系統皆採用Linux+Apache+PHP+MySQL+JavaScript+Shell Script程式組成
1. DB-Monitor(Database Server上的資源監控系統)
  1-1 [程式碼: 前人的舊PHP程式碼,改寫、改MVC架構、物件化,新增改進許多功能。]
  1-2 DB獨有事件部分: 含資料庫連線數、同步落後、無法連線、MySQL的Error訊息....等
      1-2-1 在監控機這端每分鐘主動連線至各Server的資料庫,取回Data並判斷事件,然後監控頁面發出各種的警告音效。


 1-3 通用的資源監控: CPU使用率、Memory使用率、Disk I/O以及Disk使用率...等
    1-3-1 在各Server用Shell Script語法取得Data,判斷後並依自訂的警示值來送回警告事件,然後監控頁面發出各種的警告音效。





2. Web-Monitor(Web Server資源監控系統)
 2-1 [程式碼:從無到有,全部自建]
 2-2 Web獨有事件 : 偵測Server的Web連線數
 2-3 通用的資源監控: CPU使用率、Memory使用率...等
        在各Server用Shell Script語法取得Data,判斷後並依自訂的警示值來送回警告事件。


3. A10-Monitor(A10裝置上的資源監控系統)
 3-1 [程式碼:從無到有,全部自建]
 3-2 通用的資源監控: CPU使用率、Memory使用率...等(介面類似上方)
 3-3 注: 初版採用Shell Script 語法去連線抓回資料作分析,完成後發現偶爾會卡使用者無法斷線,已廢棄停用,之後有時間會改以SNMP方式去連線。


4. 帳號權限控管系統: 以上3個系統都採用自己寫的帳號註冊、登入、管理功能。
  4-1 [程式碼:從無到有,全部自建]
  4-2 使用者須註冊登入才能使用以上系統。

   4-3 使用者註冊後被分到哪個單位群組下,那個使用者就僅有那個群組下的權限,只能閱覽有權限觀看的頁面,若用網址的方式嘗試去閱覽別的群組的頁面,則會被強制登出。

   4-4 當使用者在各功能頁面上新增刪除修改Server資料時,所有動作會另外寫Log記錄在帳號控管系統的資料庫中,並將被刪除的資料備份到另外別的資料表中,未來若有人出包則可以閱覽紀錄,確認是何時何人做的動作。在管理者頁面中可以勾選選項,將被刪除的重要資料做還原(從備份的資料表中提取Data)。

  4-5 使用者登入時,程式會記錄IP、時間、帳號到帳號控管系統的資料庫中。

5. PhpMyAdmin跳轉系統:  監控機上紀錄著幾百台DB Server的IP以及DB的Port號,管理者在操作查詢DB時有點不方便。於是在自己這台監控機中安裝PhpMyAdmin,寫一小段PHP程式碼並建立機制,當我在監控機頁面時點下某台Server資訊下的超連結網址,程式就會自動置換此台PhpMyAdmin的連線IP以及Port號,並跳轉到PhpMyAdmin的登入畫面,輸入帳密後就可以存取那台Server的資料庫。

6. 自動取得保固日期(限IBM)系統: 公司Server幾百台時時更新替換,沒時間用文字或手動的方式去查保固日期,於是寫了這個小系統,依附在上面的DB-Monitor、Web-Monitor之下。
    6-1 當上面的DB-Monitor或Web-Monitor在各台Server上運行監控程式時,順便下指令查詢Server的型號、序號,送回到監控機的資料庫中記錄,程式定時自動去IBM官網用型號序號查詢保固日期,紀錄回資料庫中。

2013年9月5日 星期四

PHP開啟錯誤提示、安裝Smarty(環境:CentOS 6.4 32位元)

##CentOS 6.4,PHP開啟錯誤提示:

1.開啟php.ini
# vi /etc/php.ini

2.搜尋下行,把Off值改成On
display_errors = Off

3.搜索下行
error_reporting = E_ALL & ~E_DEPRECATED
修改为
error_reporting = E_ALL | E_STRICT

4.修改httpd.conf,
# vi /etc/httpd/conf/httpd.conf

添加以下兩行:
php_flag display_errors on
php_value error_reporting 2039

5. 重新啟動Apache
# service httpd restart

///////////////////////////////////////////////
安裝Smarty在CentOS6.4上:

### 以下共3行終端機指令
su
tar zxvf Smarty-3.1.14.tar.gz
cp -r Smarty-3.1.14/libs/* /usr/lib/php/smarty
###

新建Smarty所需的相關目錄:
### 以下共8行終端機指令
cd /var/www/html
mkdir smarty
mkdir smarty/templates
mkdir smarty/templates_c
mkdir smarty/cache
mkdir smarty/configs
chmod 777 smarty/templates_c
chmod 777 smarty/cache
###

新建一个PHP檔:
# vi /var/www/html/index.php
---新增以下內容
<?php
require('/usr/lib/php/smarty/Smarty.class.php');
$smarty = new Smarty();

$smarty->template_dir = '/var/www/html/smarty/templates';
$smarty->compile_dir = '/var/www/html/smarty/templates_c';
$smarty->cache_dir = '/var/www/html/smarty/cache';
$smarty->config_dir = '/var/www/html/smarty/configs';

$smarty->assign('name', 'Ned');
$smarty->display('index.tpl');
?>
---

新建模板檔:
vi /var/www/html/smarty/templates/index.tpl
---新增以下內容
<html>
  <head>
    <title>Smarty</title>
  </head>
  <body>
      Hello, {$name}!
  </body>
</html>
---

打開瀏覽器看看 ->  http://localhost/

2013年9月2日 星期一

CentOS 6.4 上快速安裝LAMP環境+phpmyadmin

切換成root管理員
# su

設置LAMP環境(安裝php MySQL httpd):
# yum  -y  install  httpd  php  php-mysql  mysql  mysql-server

(非必須) 安裝記事本(圖形介面可以比較直覺編輯文檔,非圖形介面請勿安裝)
# yum -y install gedit

開機自動啟動MySQL
# chkconfig mysqld on

現在啟動MySQL
# /etc/init.d/mysqld start

開機自動啟動Web Server
# chkconfig httpd on

現在啟動Web Server
# /etc/init.d/httpd start

修改MySQL的root密碼
# mysqladmin -u root password '123456'

以下是安裝phpmyadmin:
# rpm -ivh http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/6/i386/epel-release-6-8.noarch.rpm

# yum install phpmyadmin

重啟Web Server:
# service httpd restart


Web Server ->  http://localhost/

MySQL on phpMyAdmin -> http://localhost/phpmyadmin/

2013年6月25日 星期二

替代役時期: Unity3D Web小遊戲-PacMan (2013/6/24完成第一版)

   前陣子在2013/6/10開始自學Unity3D,邊學邊實作一個PacMan小遊戲,遊戲概念大多來自"大學畢業專題程式",有部分素材、script來自網路上的資源,遊戲採用二維陣列的概念來產生隨機地圖,新增可採第一人稱視角玩遊戲,大幅修正網路上提供的Ghost移動AI,目前於2013/6/24完成第一版。
  這支小遊戲的產生原因是我在五月底得知台中某家博弈遊戲公司在招收軟體工程師,需要的條件有C/C++以及Unity3D,於是我就花了一點時間學習Unity3D並實作一個作品,方便之後投履歷面試;還有一個原因就是我覺得Unity3D看起來很有趣、蠻好玩的,學習的過程中也玩得很愉快。

小遊戲網址:http://ppt.cc/C8bj  


隨機地圖的概念圖(二維陣列20X20,1表示牆,0表示路)
隨機創四種方向的障礙牆(紅色),再隨機挑選幾個關鍵點堵住(綠色)



第一人稱視角



第三人稱視角

第三人稱視角(角色死亡)



替代役時期: PHP書籍管理程式 (2013/5/6 完成第一版)

列出所有書籍的頁面

搜尋書籍的頁面

新增書籍的頁面


作品簡易說明:
這是一個用PHP語言搭配MySQL資料庫建置起來的書籍管理程式(網站),這支程式的產生起因是我在五月初要面試某家台中公司的PHP研發工程師時,第一次面試完後要考個程式題,題目是書籍管理程式,限制時間一周內完成,還需建置在網路上可供主管評審操作,之前沒有做過一個完整的PHP網站,趁此機會也學習怎麼採用MVC架構去撰寫程式。

線上執行的程式建置在Amazon EC2(曾建置在HiCloud)雲運算虛擬主機中,使用最小的微運算型Linux虛擬主機(Micro型),程式透過使用Zend-Framework套件來建構MVC架構,本程式主要有首頁(index)、新增書籍頁(add)、搜尋書籍頁(Search)、編輯書籍頁(edit)、刪除書籍頁(delete),各頁面使用了少許jQuery的效果。

作業系統: ubuntu12.04(32bit)

使用的工具、語言或架構: Amazon EC2、apache2、PHP語言、MySQL 5.5、phpmyadmin、Zend-Framework、jQuery、MVC架構。

替代役時期:分析今日BingoBingo開獎號碼的WebApp(2012/11/3 完成第一版)

WebApp顯示頁面

台灣彩券3/27當天BingoBingo開獎號碼頁面
作品簡易說明:

        我發覺BingoBingo每幾小時裡某些號碼會很熱門,所以如果只看奧索樂透網的統計今日熱門號碼的網頁會有些不夠準確,因為前幾小時的熱門號碼現在不一定熱門了,於是我便做了這一個Webapps,從表格中可以看到每段時間的熱門號很多,在近20期中出現7次到10次的熱門號碼起碼有八到九個,表示當前熱門號碼幾乎每兩到三次就開出一次,過了一陣子後這些號碼開始退出熱門,又換其他號碼開始逐漸熱門。這支程式就是為了統計熱門號碼,讓使用者可以更輕易地分析開獎資訊。

  現行服替代役期間,我花時間研讀Python程式語言和Google App Engine(GAE)相關知識,邊學邊撰寫WebApp上傳至GAE,這個WebApp去抓取台灣彩券的BingoBingo開獎號碼存到Google的資料庫,藉由Google雲的資料庫以及分散運算功能,快速幫我運算出冷熱門號碼結果並顯示在GAE提供的WebApp網頁。使用技術或工具:GAE、NoSQL(Google  BigTable)、GQL語言、Python語言。  

研究所學習的領域之一:雲端計算、虛擬化技術的伺服器建置或運用。


在研究所求學期間擔任教學助理:
  •     99學年度第一學期:    車輛定位與電子地圖整合應用
  •  99學年度第二學期:    虛擬化技術
  •  100學年度暑期課程:  虛擬化技術
  •  100學年度第一學期:  雲端計算程式設計
  •  100學年度第二學期:  虛擬化技術

在求學過程中學習了常見的幾種虛擬化技術知識,以及虛擬機伺服器或叢集系統的架設以及維護,例如:
  I.    VMware    vSphere    ESXi.
VMware    vSphere    ESXi.(Server安裝畫面)

VMware    vSphere    ESXi.(Server安裝完成畫面)
VMware    vSphere    ESXi.(Client連線至Server畫面)

  II.   Proxmox  Virtual  Environment.
Proxmox  Virtual  Environment(Server端安裝畫面)

Proxmox  Virtual  Environment(Server端安裝完成畫面)

Proxmox  Virtual  Environment(Client端瀏覽器控管Server端)

Proxmox  Virtual  Environment(Client端瀏覽器開啟虛擬機)

  III.  Ubuntu  Enterprise  Cloud.
Ubuntu  Enterprise  Cloud(安裝畫面)
Ubuntu  Enterprise  Cloud(Cluster端主機安裝畫面)

Ubuntu  Enterprise  Cloud(Node端安裝畫面)
Ubuntu  Enterprise  Cloud(安裝完成的畫面)
Ubuntu  Enterprise  Cloud(Client端使用瀏覽器檢視Cluster端狀態)

  IV.  Citrix  XenServer.(目前無照片,後續再補)

  V.   Hyper-V  Server  2008  R2.
Hyper-V  Server  2008  R2.(安裝畫面)

Hyper-V  Server  2008  R2.(安裝完成畫面)
Hyper-V  Server  2008  R2.(Client端安裝Hyper-V管理員)

Hyper-V  Server  2008  R2.(Client端啟動Hyper-V管理員)
Hyper-V  Server  2008  R2.(Hyper-V管理員介面)


  VI.  Xen  or  KVM  搭配OpenNebula建置虛擬機叢集.(建置過程未留紀錄照片。)
  VII. 使用Amazon  EC2(或中華電信HiCloud)的instance來建置伺服器。
    已建置的伺服器範例: http://ppt.cc/KBRo

孰悉了以下的雲端運算伺服器與了解如何實際架設或操作,例如:
  I.     Google  App  Engine.
    已在GAE上建置的WebApp: http://ppt.cc/vgw4
  II.    Hadoop.(建置過程未留紀錄照片。)

研究所期間相關的國科會專題研究計畫:
█ 發展私有小雲計算之具網路安全性高效能異質伺服系統
  論文產出I: 虛擬機效能評估及雲端伺服合併率計算。


  論文產出II: 雲端伺服存取區網共享儲存之效能評估。