2016年4月30日 星期六

dstat 監控你的 Linux 系統效能

前陣子在爬文看到一個好用的系統監視工具 dstat,實際使用過後根本超級好用,號稱可取代 vmstat , iostat .. 等效能監視工具

 

dstat 是基於 python 開發並且提供原始碼,提供各式各樣的監視訊息,並且擁有顏色顯示不同的單位,還可以 out file 之後再查看

 

在 CentOS 你可以直接 yum 安裝
$ yum install dstat

Nginx 優化你的網站文章編輯效能

若是網站是部落格類型的 CMS 或是維基百科等需要大量編輯文章的網站,在你進行編輯大量的頁面時應該會時常遭遇 client body buffer 或是 Connection timed out 的問題

 
Error Log: 

upstream response is buffered to a temporary file "xxx" while reading upstream
client request body is buffered to a temporary file "xxx"
Upstream timed out (110: Connection timed out) while reading response header from upstream

2016年4月25日 星期一

php-fpm 善用 slow log 找到效能瓶頸

前幾天在替一個客戶進行系統分析,剛好想到之前常使用的 slow log,slow log 可以幫你記錄執行超過時間的工作,這對於檢視效能記錄有非常大的幫助

 

在 php-fpm 的設定有一項 request_slowlog_timeout 是用來記錄 php 執行後成功 request 的 timeout 時間,只要超過設定值就會記錄在 slow log 上

2016年4月24日 星期日

Mediawiki 1.26.0 安裝可視化編輯器 Visual Editor

由於 Mediawiki 預設的原始碼編輯器 WikiEditor 並不符合一般使用者進行編輯,所以為了可以推廣大家對於 Wiki 撰寫的熱情,特別安裝了 Visual Editor 這個可視化編輯器

 

安裝環境:

  • CentOS 6.7

  • Mediawiki 1.26.0


2016年4月22日 星期五

解決方法:PHP APC warn: Unable to allocate memory for pool

APC 是 php 中用來加速效能的,原理是 cache,其這篇是出現了 log 的錯誤訊息,針對出現的狀況進行解決

 
$ less /var/log/nginx/error.log 

PHP message: PHP Warning: require(): Unable to allocate memory for pool. in dir"
while reading response header from upstream

Mediawiki 修改頁面字首小寫

Mediawiki 預設在頁面的字首都是大寫,如果是以設定檔,或是程式檔名為主的話,大小寫的差異就會出現問題

 

在預設 includes/DefaultSettings.php 中是開啟 $wgCapitalLinks = true ,只要關閉 wgCapitalLinks 功能就行

 

修改 DefaultSettings.php 或是 LocalSettings.php 都可以
$ vim LocalSettings.php 

$wgCapitalLinks = false;

2016年4月12日 星期二

凱撒密碼;變換式加密

前兩天在課程中談到這一個加密法,覺得很有趣,這是一個在密碼學中被廣為人知的加密技術,一個非常古老的加密技術是在明文中依字母表向前(或向後) 偏移被替換成密文,如果單獨使用容易被頻率分析暴力破解攻擊,但時常拿來搭配和其他的加密法使用

 

Example:
text:ABCDEFGHIJKLMNOPQRSTUVWXYZ 
encrypt:DEFGHIJKLMNOPQRSTUVWXYZABC
key:3

2016年4月8日 星期五

CentOS 7 sshd 啟動警告『Could not load host key』

今天在檢查某一台 CentOS 7 主機的 message log,發現 sshd 在啟動的時候出現錯誤訊息
error: Could not load host key: /etc/ssh/ssh_host_dsa_key

 

不知為何莫名少了 dsa key

在 CentOS 7 下的 ssh-keygen 支援 -A 來自動建立缺少的 key type
$ ssh-keygen -A 

ssh-keygen: generating new host keys: DSA

$ systemctl restart sshd
$ systemctl status sshd

Apr 08 16:13:15 localhost.localdomain systemd[1]: Started OpenSSH server daemon.
Apr 08 16:13:15 localhost.localdomain systemd[1]: Starting OpenSSH server daemon...
Apr 08 16:13:15 localhost.localdomain sshd[2767]: Server listening on 0.0.0.0 port 22.
Apr 08 16:13:15 localhost.localdomain sshd[2767]: Server listening on :: port 22.

 

搞定!

Orignal From: CentOS 7 sshd 啟動警告『Could not load host key』

萬用的 curl 模擬各種訪問狀況、檢測訪問速度

curl 在我的工作上幫助了非常大,同時他也是資安測試的好工具,在這邊專門介紹我使用 curl 時會使用到的檢測方式

 

  • -w 檢測網站回應速度

    • 一行指令




curl -o /dev/null -s -w "%{time_namelookup},%{time_connect},%{time_starttransfer},%{time_total}" http://www.google.com



    • Script



$ vim curl-speed.sh 
#!/bin/bash
URL=$1

curl -o /dev/null -s -w \
"DNS Resolve: %{time_namelookup}\n\
Client -> Server: %{time_connect}\n\
Server Respon: %{time_starttransfer}\n\
Total time: %{time_total}\n" \
"${URL}"

$ ./curl-speed.sh www.google.com
Client -> Server: 0.040
Server Respon: 0.069
Total time: 0.069

time_namelookup = DNS 解析時間
time_connect = 建立伺服器 TCP 所花的時間
time_starttransfer = 伺服器 return 的第一個字節
time_total = 整個請求的花費時間

 

2016年4月6日 星期三

CentOS 6.7 編譯 php 5.2.17 with php-fpm

今天收到一個特殊需求,需要建立一個和客戶一模一樣的開發環境,仔細查看了一下,使用的是 php 5.2.17

在目前的 CentOS 6.7,yum最低都是 5.3.3 版本了,使用 rpm 安裝 5.2.17 的話 atomic 已經不支援下載了,最好的方式還是採用 compiler 的方式來安裝

 

本篇是記錄 nginx + php5.2.17 + php-fpm5.2.17 的安裝方式

 

由於在嘗試測試需要的相關套件,索性寫成 script 來進行編譯,免得需要加載其他套件時的作業麻煩

2016年4月4日 星期一

WordPress 自動排程發文失效『錯失排程』解決

最近剛好用到 WordPress 的一向自動排程發文的功能,等到時間過了才發現出現錯誤『錯失排程』

 

ScreenShot 2016-04-04 03.16.06

好吧,在預設的 wp-config.php 並沒有加入範例的 cron 設定值參考