การติดตั้งและการตั้งค่าเบื้องต้น Nagios บน Ubuntu 14.04 LTS

มาเริ่มขั้นตอนการติดตั้งกันเลยครับ โดยก่อนจะติดตั้ง Nagios ต้องทำการติดตั้ง Apache2 ก่อนนะครับ วิธีการติดตั้ง Apache2 Web Server 1) ทำการติดตั้ง Apache ผ่าน apt-get ดังนี้ครับ sudo apt-get install -y apache2 2) ติดตั้ง SSL ให้พิมพ์คำสั่งเพื่อเปิด site ดังนี้ sudo a2enmod ssl sudo a2ensite default-ssl 3) จากนั้นให้สั่ง Restart Apache ตามปกติ sudo service apache2 restart วิธีการติดตั้ง Nagios 1) ติดตั้ง Nagios ดังนี้ sudo apt-get -y install nagios3 2) จะปรากฎหน้าต่างถามเกี่ยวกับการตั้งค่าส่งเมล์ให้เลือกใช้เป็น Internet with smarthost เพื่อส่งเมล์ผ่าน mail relay ดังรูป 3) จะปรากฎหน้าต่างถามว่าจะใส่ email ผู้ส่งว่าอะไรก็ให้ใส่ไปครับ ไม่ต้องมีอยู่จริงก็ได้ครับ 4) ในหน้าต่างต่อไปจะให้ใส่ว่าจะให้ Relay ไปยัง Mail Server ใดให้ใส่ mail server ที่ต้องการ relay 5) จากนั้นจะให้ตั้งรหัสผ่าน ทำการตั้งรหัสผ่านตามที่ต้องการ (User ตั้งต้นชื่อ nagiosadmin) 6) ทำการตั้งรหัสผ่านเพิ่มเติมได้ที่ไฟล์ /etc/nagios3/htpasswd.users ยกตัวอย่างการเพิ่ม  User ชื่อ workshop (ไม่เกี่ยวข้องกับ user ของระบบใช้เข้า web nagios เท่านั้น) ดังนี้ sudo htpasswd /etc/nagios3/htpasswd.users workshop จะปรากฎข้อความให้ใส่รหัสผ่านดังนี้ New password: Re-type new password: Adding password for user workshop 7) สามารถตรวจสอบไฟล์ได้โดยคำสั่ง sudo cat /etc/nagios3/htpasswd.users 8) ทดสอบเปิด Website ดูดังนี้ http://localhost/nagios3 9) จะปรากฎหน้าต่างให้กรอก username และ password ให้กรอกไปตามที่ตั้งไว้ วิธีการ Logout คือปิด browser เท่านั้น 10) จะปรากฎหน้าแรกของ Nagios วิธีการให้ Redirect ไปยัง SSL อัตโนมัติเพื่อความปลอดภัยของรหัสผ่าน 1) ทำเปลี่ยนชื่อไฟล์ หน้า default เก่าของ apache จาก index.html เป็น index.html.ori ดังนี้ sudo mv /var/www/html/index.html /var/www/html/index.html.ori 2) สร้างไฟล์ /var/www/html/index.html ใหม่ ดังนี้ sudo nano /var/www/html/index.html 3) เพิ่มข้อความในไฟล์ดังนี้ (วิธีการ save ให้กด Ctrl-X แล้วกด y แล้ว enter) โดยการใช้งานจริงให้แทนที่ localhost ด้วยชื่อเครื่องจริง <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN”> <html> <head> <title>Auto Redirect to nagios</title> <meta http-equiv=”REFRESH” content=”0;url=https://localhost/nagios3″></HEAD> <BODY> Please Wait….. </BODY> </HTML> 4) ทดสอบเปิด Website อีกรอบดังนี้ จะเห็นได้ว่าระบบจะ redirect

Read More »

WorkShop : Server Monitoring

“อาว Server ตายตอนไหนไม่เห็นจะรู้เลย โหลดเยอะละม้าง หรือไม่ก็แรมหมด เสถียรไหมไม่รู้สิ อาวเมื่อคืน disk หมดหรอกเหรอ สงสัย Backup อยู่ม้าง” ถ้าเรามีระบบ Monitor ที่ดีพบคงสามารถตอบคำถามเหล่านี้ได้ง่ายขึ้น และไม่ต้องเจอเหตุการณ์เดิม ๆ ซ้ำ ๆ อีกต่อไป มาถึงอีก 1 workshop เคยเขียนไปแล้วรอบหนึ่ง แต่ตอนนั้นสอนแค่ครึ่งวัน ได้แค่ลง Nagiosql ยังไม่ได้ทำอะไรเป็นชิ้นเป็นอันสักเท่าไหร่ รอบนี้เลยจัดเต็ม 2 วัน ถ้ามีเนื้อหาผิดพลาดประการใดแจ้งได้เลยครับ เดี๋ยวจะแก้ไขให้ครับ (งานร้อน ^.^) Workshop Outline ftp://ftp.psu.ac.th/pub/psu-monitor/workshop-outline.pdf VirtualBox Installation เครื่องที่ใช้ในการทดสอบ (Oracle VM VirtualBox) *แนะนำให้เปิดกับโปรแกรม version ล่าสุด Monitor ** User : workshop , Password : 123456 Linux-Server ** User : monitor , Password : 123456 MS-Server ** User : administrator, Password : 123456 รายละเอียด URL Monitor Linux-Server MS-Server http://ftp.psu.ac.th/pub/psu-monitor/workshop.ova โดยจะแบ่งเป็น 11 ตอนโดยแยกเป็น 11 Blog ดังนี้ ตอนที่ ชื่อตอน ตอนที่ 1 การติดตั้งและการตั้งค่าเบื้องต้น Nagios บน Ubuntu 14.04 LTS ตอนที่ 2 การติดตั้ง NagiosQL บน Ubuntu 14.04 LTS ตอนที่ 3 วิธีการตั้งค่าและการใช้งาน NagiosQL บน Ubuntu 14.04 LTS ตอนที่ 4 การติดตั้งและการตั้งค่าเบื้องต้น NagiosGraph บน Ubuntu 14.04 LTS ตอนที่ 5 วิธีการตั้งค่า NRPE เพื่อใช้งานกับ NagiosQL บน Ubuntu 14.04 LTS ตอนที่ 6 การติดตั้ง NRPE บน Ubuntu 14.04 ตอนที่ 7 การติดตั้ง NRPE บน Windows 2012 R2 ตอนที่ 8 การติดตั้งโปรแกรมและการตั้งค่าเบื้องต้น Cacti บน Ubuntu 14.04 LTS ตอนที่ 9 การติดตั้ง snmpd และการตั้งค่า shorewall บน Ubuntu 14.04 LTS ตอนที่ 10 การติดตั้ง snmp service และการตั้งค่า firewall บน Windows 2012 R2 ตอนที่ 11 เรียนรู้วิธีการใช้งาน Cacti เพื่อ Monitor Server บทความเพิ่มเติม ยังไม่มี  

Read More »

c# string concatenations

การต่อ String ใน C# ทำได้  4 แบบดังนี้ ใช้เครื่องหมาย plus (+) แบบยอดนิยมใช้งานกันบ่อยๆ. string txt = “aaa”+”bbb”+”ccc”; ใช้ string.Concat() สะดวกับการต่อ list หรือ array มาก. string [] s = { “ManU”, “Liverpool”, “Asenal” }; Console.WriteLine(string.Concat(s)); ใช้ string.Format() เหมาะสำหรับต่อ string และจัดการรูปแบบการแสดงผลด้วยไปในคราวเดียวกันเลย. string value1 = “Hello World!”; int value2 = 2557; DateTime value3 = DateTime.Now(); string result = string.Format(“{0}: {1:0.0} – {2:dd-mm-yyyy}”, value1, value2, value3); ใช้ stringBuilder เหมาะสำหรับการต่อ sting ที่มีปริมาณมากๆจะทำงานได้เร็วประมาณ 1000 ขึ้นไป. StringBuilder returnNumber = new StringBuilder(1500); for(int i = 0; i<1500; i++) { returnNumber.Append(i.ToString()); } ถ้ามีเวลาจะมาขยายเรื่องนี้ในหัวข้อการทดสอบ Performance จะมาลองดูว่าแบบไหนเร็วกว่ากันไปซักเท่าไร ตอนนี้เอาเท่านี้ไปก่อนแล้วกันครับ

Read More »

วิธีการเขียน Script ตรวจสอบ Server Performance สำหรับเครื่อง Windows 2008 R2

ขอนำเสนอ Powershell Script สำหรับใช้ Monitor Server Performance สำหรับเครื่อง Windows 2008 R2 ขึ้นไปดังนี้ การติดตั้ง PowerShell Editor และ วิธีใช้งานบน Windows 2008 1. ติดตั้งโดยไปที่ Server Manager -> Features -> Add Features 2. เลือกหัวข้อ Windows PowerShell Integrated Script Environment (ISE) 3. ให้เลือกใช้งาน Version X86 ซึ่งเมื่อลงแล้ว Icon จะอยู่ที่ Accessories -> Windows PowerShell -> Windows PowerShell ISE (x86) คำสั่งในการเปิด Execution Policy Set-ExecutionPolicyUnrestricted -Force การสร้าง Loop เพื่อให้สามารถรันได้ตลอดเวลา While($true){ …..[Monitor Script]….. } คำสั่งตรวจหา IP ของ Server Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object { $_.Description -eq “Intel(R) Dual Band Wireless-N 7260” } | ForEach-Object { $ipaddr = $_.IPAddress } $ip = $ipaddr[0] คำสั่งตรวจสอบ Max CPU Clock Speed Get-WmiObject-class win32_processor -Property  “maxclockspeed” | ForEach-Object {$clockspeed = $_.maxclockspeed } Get-WmiObject-class win32_computersystem -Property “NumberOfLogicalProcessors” | ForEach-Object { $lprocessor = $_.NumberOfLogicalProcessors } $sumclockspeed = $clockspeed*$lprocessor คำสั่งตรวจสอบ Current CPU (Get-Counter “\Processor(_Total)\% Processor Time”).CounterSamples | ForEach-Object {$cpuuse = $_.CookedValue}     $cpuuse = [math]::round($cpuuse,0)     $clockspeed = ($cpuuse*$sumclockspeed)/100     $clockspeed = [math]::round($clockspeed,0)     $pcpuuse = $clockspeed/$sumclockspeed     $pcpuuse = [math]::round($pcpuuse,0) คำสั่งตรวจสอบ Maximum Memory $sumram = 0 Get-WMIObject-class win32_physicalmemory -Property “Capacity”  | ForEach-Object { $sumram = $sumram + $_.Capacity} $sumram = $sumram/(1024*1024) คำสั่งตรวจสอบ Current Memory (Get-Counter “\Memory\Available MBytes”).CounterSamples | ForEach-Object {$memfree = $_.CookedValue}     $memuse = $sumram-$memfree;     $pmemuse = ($memuse/$sumram)*100     $pmemuse = [math]::round($pmemuse,0) คำสั่งตรวจสอบ Connection  $netstat = “netstat

Read More »