วันจันทร์ที่ 25 มิถุนายน พ.ศ. 2550
วิธีติดตั้ง OpenLDAP บน OpenBSD 4.1
1.) Download OpenLDAPจาก site : ftp://ftp.dti.ad.jp/pub/net/OpenLDAP/openldap-stable/openldap-stable-20070110.tgz
ผมดาวน์โหลดไปไว้ใน /root/Download
2.) tar zxvf openldap-stable-20070110.tgz
3.) cd openldap-2.3.32
4.) ./configure --prefix=/usr/local/openldap
เจอปัญหา
checking for Berkeley DB link (default)... yes
checking for Berkeley DB version match... yes
checking for Berkeley DB thread support... no
checking Berkeley DB version for BDB backend... no
configure: error: BDB/HDB: BerkeleyDB version incompatible
error นิดหน่อยไป search จึงได้คำตอบว่าต้องกำหนดตัวแปรนิดหน่อย
export CPPFLAGS="-I/usr/local/include/db4" LDFLAGS="-L/usr/local/lib/db4"
5.) กลับมา ./configure --prefix=/usr/local/openldap ใหม่อีกรอบผ่านหมดครับ
6.) make ก็ผ่านหมดรับ
7.) make depend ก็ผ่านเช่นกัน
8.) make install จบแบบ happy ending
ทุกอย่างผ่านหมดแล้ว ที่เหลือคือใช้ยังไงหง่ะ ใครช่วยตอบผมที T_T
วันจันทร์ที่ 11 มิถุนายน พ.ศ. 2550
การ Search หาชื่อโปรแกรมที่ต้องการใน Ports
เคยกันบ้างไหมครับ บางทีคิดจะติดตั้งโปรแกรมสักตัวจาก ports แต่ไม่รู้ว่ามันหลบซ่อนอยู่ที่ไหนเพราะ ports มี category เยอะมากเดาใจกันไม่ถูกวันนี้เลยเอาวิธีง่ายสำหรับ search หาโปรแกรมที่ต้องการ
สำหรับคำสั่งก็สั้นๆ ง่ายๆ ครับบรรทัดเดียวเอง
1. ขั้นแรกเราต้องเข้าไปใน /usr/ports ก่อน
2. คำสั่งสำหรับ search คือ
#make search key="packages_name"
ตัวอย่างเช่น ผมต้องการติดตั้ง mrtg ผมก็สั่ง
#make search key="mrtg"
Port: mrtg-2.13.2,1
Path: /usr/ports/net-mgmt/mrtg
Info: The multi-router traffic grapher
Maint: demon@FreeBSD.org
B-deps: freetype2-2.1.10_3 gd-2.0.33_4,1 jpeg-6b_4 perl-5.8.8 pkgconfig-0.20 png-1.2.8_3
R-deps: freetype2-2.1.10_3 gd-2.0.33_4,1 jpeg-6b_4 p5-PathTools-3.16 p5-Pod-Parser-1.34 p5-SNMP_Session-1.08 p5-Scalar-List-Utils-1.18,1 perl-5.8.8 pkgconfig-0.20 png-1.2.8_3
WWW: http://www.mrtg.org/
ซึ่งผลที่ได้จริงๆ อาจมีเยอะหน่อย ก็ต้องมานั่งไล่ดูกันนิดนึงน่ะครับ
เท่านี้ผมก็รู้แล้วว่า mrtg อยู่ที่
/usr/ports/net-mgmt/mrtg
ที่นี้ผมก็เข้าไปใน /usr/ports/net-mgmt/mrtg แล้ว make install clean เพื่อติดตั้งได้แล้ว
ติดตั้ง apt-get บน Fedora Core 6
การติดตั้ง apt
1. ติดตั้ง apt ด้วย yum
#yum install apt
2. เมื่อติดตั้งเสร็จแล้วให้สั่ง update
#apt-get update
มันจะทำการติดต่อกับ server และดาวน์โหลดรายการ update มาไว้ในเครื่อง
3. เมื่อสั่ง update ไปแล้วก็มา upgrade กันเลย
#apt-get upgrade
ถ้าหากการ update มีรายการ packages ที่ update version หรือมี patch แก้ไข การ upgrade จะดาวน์โหลด packages ใหม่ๆ มาติดตั้งให้เรา
4. การค้นหาชื่อ packages ที่ต้องการ เช่น ผมต้องการติดตั้ง Webalizer
# apt-cache search webalizer
webalizer - A flexible Web server log file analysis program.
มันก็จะไปหาชื่อ packages ที่เราต้องและแสดงเป็น list ให้เรา
5. การติดตั้ง packages เช่น
#apt-get install webalizer
6. การถอนการติดตั้ง packages เช่น
#apt-get remove webalizer
ง่ายดีใช่ไหมครับ ลองทำกันดูครับ
วันอาทิตย์ที่ 10 มิถุนายน พ.ศ. 2550
การ Configure MRTG (Multi Router Traffic Grapher)
ก่อนการติดตั้ง mrtg ต้องติดตั้ง service snmp ก่อน
การติดตั้ง SNMP
1. ติดตั้ง snmp
yum install net-snmp net-snmp-utils net-snmp-devel
2. เมื่อติดตั้ง snmp ได้แล้วจะได้ไฟล์ /etc/snmp/snmpd.conf ให้ทำการเพิ่มบรรทัดด่อไปนี้เข้าไป
view systemview included .1
ตัวอย่าง
# Make at least snmpwalk -v 1 localhost -c public system fast again.
# name incl/excl subtree mask(optional)
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1
view systemview included .1 #เพิ่มบรรทัดนี้เข้าไป
3. สั่งให้ snmpd ทำงานทุกครั้งเมื่อเปิดเครื่องด้วยคำสั่ง
chkconfig snmpd on
4. เช็คว่า snmpd ทำงานอยู่หรือเปล่าด้วยคำสั่ง
/etc/init.d/snmpd status #เช็คสถานะของ snmpd
/etc/init.d/snmpd start # start snmpd
/etc/init.d/snmpd restart # restart snmpd
5. ทดสอบ snmpd ด้วยคำสั่ง snmpwalk
snmpwalk -v 1 localhost -c public system
จะมี responds กลับมาประมาณด้านล่าง
[root@eng ~]# snmpwalk -v 1 localhost -c public system
SNMPv2-MIB::sysDescr.0 = STRING: Linux eng.ru.ac.th 2.6.9-55.ELsmp #1 SMP Wed May 2 14:28:44 EDT 2007 i686
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (960677) 2:40:06.77
SNMPv2-MIB::sysContact.0 = STRING: Mr.Montree Phomkam
SNMPv2-MIB::sysName.0 = STRING: eng.ru.ac.th
SNMPv2-MIB::sysLocation.0 = STRING: Faculty Of Engineering,Ramkhamhaeng University
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (6) 0:00:00.06
.....................
จบ snmpd
การติดตั้ง MRTG
1. ติดตั้ง mrtg ด้วยคำสั่ง
yum install mrtg
หรือ
apt-get install mrtg
จะได้
/var/www/mrtg และ /etc/mrtg
2. แก้ไขไฟล์ /etc/httpd/conf.d/mrtg.conf
Deny from all
#Allow from 127.0.0.1 #ใส่ comment หน้าบรรทัดนี้
Allow from all
# Allow from .example.com
</Location>
3. สั่ง restart httpd
/etc/init.d/httpd restart
เปิด browser แล้วลองเข้า http://192.168.200.210/mrtg
4.มาเริ่มสร้างไฟล์ config โดยในตัวอย่างจะเป็นการจับ Traffic ของ Server ที่เป็น localhost สั่ง
ตั้งค่า locale ไม่ให้เป็น utf-8 ด้วยคำสั่ง
export LANG=en_US <<สำคัญมากอย่าลืมพิมพ์
echo "export LANG=en_US" >> /etc/rc.local
ให้ทุกครั้งที่เปิดเครื่องจะได้ export LANG=en_US ทุกครั้ง สร้าง directory สำหรับเก็บไฟล์ของ
mrtg mkdir /var/www/mrtg/traffic
สั่งสร้างไฟล์ config ด้วยคำสั่ง
cfgmaker -global "options[_]:bits,growright" --global "workdir: /var/www/mrtg/traffic" public@localhost > /etc/mrtg/traffic.cfg
*****มาเข้าใจโครงสร้างของ cfgmaker
"options[_]:bits,growright" << ส่วนนี้โดยปกติถ้าไม่กำหนดจะมันจะสร้างกราฟจากซ้ายไปขวาซึ่งทำให้ดูยาก จึงกำหนด growright เพื่อให้สร้างกราฟจากด้านขวาไปซ้าย ซึ่งแทน
"workdir: /var/www/mrtg/traffic" << ตรงส่วนนี้หมายถึงตำแหน่งที่เราต้องการจะเก็บไฟล์ .html กับกราฟที่เป็น .png ซึ่งก็คือ Directory ที่เราต้องการจะเก็บเว็ป mrtg นั้นเอง
"public@localhost" <<ส่วนนี้หมายถึง service name ของ snmp โดยปกติจะเป็น public ส่วน localhost หมายถึงกำหนดให้เป็นเครื่องตัวเองหรืออาจใส่ 127.0.0.1 ก็ได้
"> /etc/mrtg/traffic.cfg" << ตรงส่วนนี้เป็นการ redirection output เพื่อไปเขียนไฟล์ config ซึ่งระบบเป็น /etc/mrtg/traffic.cfg ก็หมายถึงให้สร้างไฟล์ชื่อ traffic.cfg ใน /etc/mrtg นั้นเอง
เมื่อสั่งคำสั่งด้านบนไปแล้วเราจะได้ไฟล์ /etc/mrtg/traffic.cfg มา
cat /etc/mrtg/traffic.cfg ก็จะแสดงรายละเอียดของไฟล์ออกมา
5. สั่งให้ mrtg สร้าง html และ graph มีโครงสร้างดังนี้
/usr/bin/mrtg /where/your/config/file << ตามด้วยที่อยู่ของไฟล์ config ตัวอย่าง
/usr/bin/mrtg /etc/mrtg/traffic.cfg
เมื่อสั่งไปแล้วจะมีข้อความแจ้ง warning นิดหน่อเพราะมันไม่สามารถเขียนทับไฟล์เก่าได้เนื่องจากเราสั่งเป็นครั้งแรก สั่งคำสั่งเดิมซ้ำอีก 2 รอบ warning ก็จะหายไป
ซึ่งตอนเราสร้างไฟล์ config เราได้กำหนด workdir เป็น /var/www/mrtg/traffic หลังจากสั่ง /usr/bin/mrtg /etc/mrtg/traffic.cfg ไปแล้วมันก็จะสร้างไฟล์ .html กับ .png ให้ซึ่งอยู่ใน /var/www/mrtg/traffic
ls -al /var/www/mrtg/traffic
-rw-r--r-- 1 root root 1592 Feb 15 21:15 localhost_2-day.png
-rw-r--r-- 1 root root 6546 Feb 15 21:15 localhost_2.html
-rw-r--r-- 1 root root 48211 Feb 15 21:15 localhost_2.log
ทดลองเรียก
http://202.41.164.210/mrtg/traffic/localhost_2.html
ก็จะแสดงกราฟออกมา ซึ่งจะยังไม่มีเส้นเพราะเพิ่งสร้างเป็นครั้งแรก การเรียก url แบบนี้หลายๆ ครั้งคงจำกันลำบาก ต่อไปเรามาสร้าง index ไฟล์เพื่อให้เรียกดูง่ายๆ กันโดยสั่ง
indexmaker --column=1 --output=/var/www/mrtg/traffic/index.html /etc/mrtg/traffic.cfg
มาเข้าใจโครงสร้างของ indexmaker กัน
"--column=1 " << ส่วนนี้คือจำนวนคอลัมน์ของกราฟที่ต้องการแสดง
"--output=/var/www/mrtg/traffic/index.html" << "/var/www/mrtg/traffic/" คือตำแหน่งที่เราจำสร้าง index.html นั้นเอง
"/etc/mrtg/traffic.cfg" <<คือตำแหน่งที่อยู่ของไฟล์ config ทีนี้ลองเปิดดูกราฟใหม่โดยเรียก
http://192.168.200.210/mrtg/traffic
มันจะ index หน้ากราฟมาให้เราดูโดยที่เราไม่ต้องกรอกชื่อเต็มๆ ของกราฟตัวนั้น ซึ่งเรามาสามารถคลิกที่รูปกราฟเพื่อดูรายละเอียดได้ สังเกตได้ว่ากราฟที่เราเปิดดูจะยังไม่มีเส้นแสดงรายละเอียดนั้นเป็นเพราะเราเพิ่งสร้างกราฟนั้นเป็นครั้งแรก
ต่อไปก็มาตั้งเวลาให้ mrtg สร้างกราฟให้เราทุกๆ 5 นาทีโดยใช้ crontab เข้ามาช่วยซึ่งโดยปกติ crond จะเป็น service ที่ start เองเมื่อเราเปิดเครื่องอยู่แล้วแต่เพื่อกันความผิดพลาดก่อนอื่นลองมาตรวจสอบว่า crond ได้ทำงานอยู่หรือไม่
/etc/init.d/crond status
ถ้าหากมันรายงาน pid ก็แสดงว่า crond ทำงานอยู่ ต่อไปมาสร้างตารางเวลาให้ mrtg ทำงานทุกๆ 5 นาที
crontab -e
มันจะเปิดหน้าจอ vi มาให้เรากด i แล้วพิมพ์บรรทัดต่อไปนี้เข้าไป
*/5 * * * * /usr/bin/mrtg /etc/mrtg/traffic.cfg
พิมพ์เสร็จแล้วกด esc ตามด้วย :wq เพื่อ save และออกจาก cronedit ดูรายละเอียดที่เราพิมพ์ไปเมื่อกี้ด้วยคำสั่ง
crontab -l
จะแสดงรายละเอียดของงานทั้งหมดที่ตั้งไว้ใน crontab สั่งให้ crond เริ่มทำงานใหม่ด้วย
/etc/init.d/crond restart
ดังนั้นทุกๆ 5 นาที mrtg จะสร้างกราฟให้เราใหม่ซึ่งก็จะทำให้กราฟมีเส้นที่แสดงอย่างต่อเนื่อง เปิด
browser : http://192.168.200.210/mrtg/traffic/index.html มันจะ refresh ตัวเองทุกๆ 5 นาที
#################################################################
ให้สร้างไฟล์ /etc/mrtg/cpu.cfg โดยมีรายละเอียดดังนี้
WorkDir: /var/www/mrtg/traffic
LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt
Target[myhost-cpu]:ssCpuIdle.0&laLoadInt.1:public@localhost
RouterUptime[myhost-cpu]: public@localhost
MaxBytes[myhost-cpu]: 10000
Title[myhost-cpu]: Idle CPU and Load average
PageTop[myhost-cpu]: <H1>Idle CPU and Load average</H1>
ShortLegend[myhost-cpu]: %
YLegend[myhost-cpu]: CPU and Load Utilization
Legend1[myhost-cpu]: Idle CPU
Legend2[myhost-cpu]: Load average
LegendI[myhost-cpu]: Idle
LegendO[myhost-cpu]: Load
Options[myhost-cpu]: gauge, nopercent, growright
ตัวอย่างการใช้ mrtg ตรวจสอบการใช้งาน memory
ให้สร้างไฟล์ /etc/mrtg/mem.cfg โดยมีรายละเอียดดังนี้
LoadMIBs: /usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt
Target[localhost.mem]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.6.0:public@localhost
PageTop[localhost.mem]:<H1>Memory</H1>
WorkDir: /var/www/mrtg/traffic/
Options[localhost.mem]: nopercent,growright,gauge,noinfo
Title[localhost.mem]: Free Memory
MaxBytes[localhost.mem]: 1000000
KMG[localhost.mem]: k,M,G,T,P,X
YLegend[localhost.mem]: bytes
ShortLegend[localhost.mem]: bytes
LegendI[localhost.mem]: Free Memory:
LegendO[localhost.mem]:
Legend1[localhost.mem]: Free memory, not including swap, in bytes
ตัวอย่างการใช้ mrtg ตรวจสอบ tcp connection
ให้สร้างไฟล์ /etc/mrtg/tcp.cfg โดยมีรายละเอียดดังนี้
WorkDir: /var/www/mrtg/traffic/
LoadMIBs: /usr/share/snmp/mibs/TCP-MIB.txt
Target[myhost-tcpestab]: tcpCurrEstab.0&tcpCurrEstab.0:public@localhost
RouterUptime[myhost-tcpestab]: public@localhost
MaxBytes[myhost-tcpestab]: 1000000
Title[myhost-tcpestab]: TCP Current Establish
PageTop[myhost-tcpestab]: <H1>TCP Current Establish </H1>
ShortLegend[myhost-tcpestab]: conns
YLegend[myhost-tcpestab]: conns
LegendI[myhost-tcpestab]: Current:
LegendO[myhost-tcpestab]:
Legend1[myhost-tcpestab]: Current, numbers of connections
Legend2[myhost-tcpestab]:
Options[myhost-tcpestab]: nopercent, growright, gauge
ตัวอย่างการใช้ mrtg ตรวจสอบ uptime
ให้สร้างไฟล์ /etc/mrtg/uptime.cfg โดยมีรายละเอียดดังนี้
WorkDir: /var/www/mrtg/traffic/
Target[server-uptime]: `/etc/mrtg/mrtg_uptime.pl`
Colours[server-uptime]: LIGHT BLUE#7AAFFF,BLUE#1000FF,DARK GREEN#006000,VIOLET#FF00FF
Options[server-uptime]: gauge,noinfo, nopercent, growright, unknaszero
MaxBytes[server-uptime]: 200
Title[server-uptime]: server uptime
YLegend[server-uptime]: Days
ShortLegend[server-uptime]: Days
Legend1[server-uptime]: Uptime
Legend2[server-uptime]:
LegendI[server-uptime]:
LegendO[server-uptime]: uptime :
PageTop[server-uptime]:<H1>Uptime in days</H1>
และสร้างไฟล์ /etc/mrtg/mrtg_uptime.pl โดยมีรายละเอียดดังนี้
#!/usr/bin/perl
#Affichage de l'uptime en nombre de jours pour MRTG
$uptime = `uptime`;
$uptime =~ /up (.*?) day/;
$up = int($1);
print "$up\n";
print "$up\n";
จากนั้น chmod 7777 /etc/mrtg/mrtg_uptime.pl
อย่าลืมเพิ่มคำสั่งใน crontab ด้วย
crontab -e
*/5 * * * * /usr/bin/mrtg /etc/mrtg/traffic.cfg
*/5 * * * * /usr/bin/mrtg /etc/mrtg/cpu.cfg
*/5 * * * * /usr/bin/mrtg /etc/mrtg/mem.cfg
*/5 * * * * /usr/bin/mrtg /etc/mrtg/tcp.cfg
*/5 * * * * /usr/bin/mrtg /etc/mrtg/uptime.cfg
การสั่งให้สร้างหน้า index ให้มีกราฟหลายๆ รูปทำได้ดังนี้
indexmaker --column=2 --output=/var/www/mrtg/traffic/index.html /etc/mrtg/traffic.cfg /etc/mrtg/cpu.cfg /etc/mrtg/mem.cfg /etc/mrtg/tcp.cfg /etc/mrtg/uptime.cfg
วันศุกร์ที่ 8 มิถุนายน พ.ศ. 2550
การติดตั้ง Java SDK 1.6 และ Apache Ant 1.7 บน CentOS 4,Fedora Core (4-6)
การติดตั้ง Java
1. ขั้นแรกเราต้องดาวน์โหลด Java SDK มาจากเว็ปไซต์http://java.sun.com/javase/downloads/index.jsp ผมดาวน์โหลดเป็น .bin มาน่ะครับ
2. upload .bin ที่ดาวน์โหลดมาไปไว้ใน /usr/lib/jvm เมื่อ upload เสร็จจะได้ /usr/lib/jvm/jdk-6u1-linux-i586.bin
3. extract ไฟล์ /usr/lib/jvm/jdk-6u1-linux-i586.bin
#cd /usr/lib/jvm
#chmod +x jdk-6u1-linux-i586.bin
#./jdk-6u1-linux-i586.bin
#rm -rf jdk-6u1-linux-i586.bin
4. เราก็จะได้ /usr/lib/jvm/jdk1.6.0_01/
5. ทำการสร้าง symbolic link ไว้ที่ /etc/alternatives
#ln -s /usr/lib/jvm/jdk1.6.0_01/bin/java /etc/alternatives/java
ln: `/etc/alternatives/java': File exists << แสดงว่าเครื่องเรามี java ติดตั้งอยู่
วิธีแก้ปัญหานี้ให้ลบ symbolic link เก่าออกก็ใช้ได้แล้วครับ
#rm -rf /etc/alternatives/java
แล้วสั่งสร้าง symbolic link ใหม่อีกที
#ln -s /usr/lib/jvm/jdk1.6.0_01/bin/java /etc/alternatives/java
6. สร้าง symbolic link ไว้ใน /usr/bin/java เพื่อสะดวกในการใช้งาน
#ln -s /etc/alternatives/java /usr/bin/java
ถ้ามันมี error แสดงขึ้นมาว่า
ln: `/usr/bin/java': File exists ก็ไม่ต้องสนใจมันครับแสดงว่ามีการทำ link ไว้แล้ว
ทดลองสั่ง
#java -version
java version "1.6.0_01"
Java(TM) SE Runtime Environment (build 1.6.0_01-b06)
Java HotSpot(TM) Client VM (build 1.6.0_01-b06, mixed mode, sharing)
ติดตั้ง Java SDK 1.6 สำเร็จแล้ว
การ Setup JAVA_HOME
1. สร้าง symbolic link ที่ใช้ไปยังไดเร็กทอรีที่ติดตั้ง Java ให้กับ JAVA_HOME
#ln -s /usr/lib/jvm/jdk1.6.0_01 /etc/alternatives/jdk
ทดสอบ
#ls -al จะแสดงรายละเอียดเหมือนกับ /usr/lib/jvm/jdk1.6.0_01
2. กำหนดตัวแปรโกลบอล JAVA_HOME
#nano /etc/profile
เพิ่ม 2 บรรทัดต่อไปนี้เข้าไปไว้บรรทัดสุดท้าย
export JAVA_HOME="/etc/alternatives/jdk"
export PATH="$PATH:$JAVA_HOME/bin"
3. logout ออกจากระบบ แล้วลอง login เข้ามาในระบบใหม่ จากนั้นสั่ง
#echo $JAVA_HOME จะได้
/etc/alternatives/jdk
เป็นอันเสร็จการตั้งค่า JAVA_HOME
การติดตั้ง Apache Ant
1. ดาวน์โหลด Apache Ant ได้จาก http://ant.apache.org/bindownload.cgi
#cd /usr/local
#wget http://mirror.in.th/apache/ant/binaries/apache-ant-1.7.0-bin.tar.gz
2. แตกไฟล์ apache-ant-1.7.0-bin.tar.gz
#tar zxvf apache-ant-1.7.0-bin.tar.gz
#rm -rf apache-ant-1.7.0-bin.tar.gz
3. สร้าง symbolic link ให้กับ ant
#ln -s /usr/local/apache-ant-1.7.0/bin/ant /etc/alternatives/ant
#ln -s /usr/local/apache-ant-1.7.0 /etc/alternatives/anthome
#ln -s /etc/alternatives/ant /usr/bin/ant
4. กำหนดตัวแปรโกลบอล ANT_HOME เหมือนกับ Java ด้านบน
#nano /etc/profile
เพิ่มบรรทัดต่อไปนี้เข้าไว้ด้านล่าง JAVA_HOME
export ANT_HOME="/etc/alternatives/anthome"
และเพิ่ม ANT_HOME เข้าไปไว้ใน PATH โดยแก้ไข
export PATH="$PATH:$JAVA_HOME/bin:$ANT_HOME"
5. logout และเข้าระบบใหม่
ตรวจสอบ ant
#ant -version
Apache Ant version 1.7.0 compiled on December 13 2006
ตรวจสอบ ANT_HOME
#echo $ANT_HOME
/etc/alternatives/anthome
เสร็จเรียบร้อยแล้วครับ ไม่ยากเลยใช่ไหมครับ