ประมวลภาพงานอบรม Zabbix training for beginners ครั้งที่ 3
@Too Fast To Sleep at KU
12,19 May 2019
by Zabbix in Thailand
กลุ่มชุมชนแลกเปลี่ยนความรู้แบ่งปั่น และช่วยเหลือ ต่อการใช้งาน OpenSource Zabbix เพราะการแบ่งปัน นั้นยิ่งใหญ่กว่า.
ประมวลภาพงานอบรม Zabbix training for beginnersครั้งที่ 3 จัดโดยกลุ่ม Zabbix in Thailand 12,19 May 2019
ประมวลภาพงานอบรม Zabbix training for beginnersครั้งที่ 3 จัดโดยกลุ่ม Zabbix in Thailand 12,19 May 2019
ประมวลภาพงานอบรม Zabbix training for beginnersครั้งที่ 3 จัดโดยกลุ่ม Zabbix in Thailand 12,19 May 2019
ประมวลภาพงานอบรม Zabbix training for beginnersครั้งที่ 3 จัดโดยกลุ่ม Zabbix in Thailand 12,19 May 2019
ประมวลภาพงานอบรม Zabbix training for beginners ครั้งที่ 3 จัดโดยกลุ่ม Zabbix in Thailand 12,19 May 2019
#!/usr/bin/pythonimport pymssql #import module pymssql เพื่อ connection ไปยังฐานข้อมูล
import sys #import module sys เพื่อรับ parameter จาก command line
import time #import module time เพื่อใช้จับเวลาtry: #ขึ้นตอนคำสั่ง exceptstart = int(round(time.time() * 1000)) #ดูเวลาเริ่ม scriptdb = pymssql.connect(sys.argv[1], sys.argv[3], sys.argv[4], sys.argv[1]) #connection to databasecursor = db.cursor()sql = sys.argv[2] #คำสั่ง SQLcursor.execute(sql) #ทำการ Query databaseresults = cursor.fetchall()db.close()end = int(round(time.time() * 1000)) #ดูเวลาจบการรัน scripttime = end-start #ให้ time=end-start แล้วส่งเป็นค่า time เวลาหน่วยเป็น msprint int(time)except pymssql.OperationalError: #ถ้าเกิด Error หรือรัน Script ไม่ผ่านให้ส่ง -1print int(-1)
#!/usr/bin/python
import sys #import module sys เพื่อใช้รับข้อมูลจาก Parameter
import time #import module time เพื่อใช้นับเวลา
import urllib2 #import module urllib2 ใช้ในการเรียกค่าจากหน้าเว็บ
try: #ขึ้นตอนคำสั่ง except
s = int(round(time.time() * 1000)) #ดูเวลาเริ่ม script
url = sys.argv[1] #รับค่าจาก parameter ที่1 เข้าตัวแปร url
response = urllib2.urlopen(url) #เปิดหน้าเว็บ
webContent = response.read() #อ่านค่าจะหน้าเว็บ
e = int(round(time.time() * 1000)) #ดูเวลาจบการรัน script
find = webContent.find(sys.argv[2]) #ค้นหา คำตาม Key ที่ใส่มาใน Parameter ที่ 2
if find < 0: #ถ้าคนหาได้ น้อยกว่า 0 คำ ให้ส่งเป็น -1
t = -1
print int(t)
else: #นอกนั้นให้ t=e-s แล้วส่งเป็นค่า t เวลาหน่วยเป็น ms
t = e-s
print int(t)
except urllib2.URLError: #ถ้าเกิด Error หรือรัน Script ไม่ผ่านให้ส่ง -1
print int(-1)
#!/usr/bin/python
import time #import module time เพื่อใช้นับเวลา
import sys
import socket #import module socket ตรวจสอบ DNS
start = int(round(time.time()*1000)) #ดูเวลาเริ่ม script
name = sys.argv[1] #ชื่อ DNS
try: #ขึ้นตอนคำสั่ง except
host = socket.gethostbyname(name) #ตรวจสอบชื่อ DNS ว่าเป็น IP อะไรถ้า DNS ทราบถือว่าใช้ได้
end = int(round(time.time()*1000)) #ดูเวลาจบ script
time = end-start #ให้ time=end-start แล้วส่งเป็นค่า time เวลาหน่วยเป็น ms
print int(time)
except socket.gaierror, err: #ถ้าไม่สามารถถาม IP จาก DNS ได้จะเกิด socket.gaierror จะส่งค่าเป็น -1
print int(-1)
#!/usr/bin/python
import cx_Oracle #import module cx_Oracle เพื่อ connection ไปหา database
import sys
import time #import module time เพื่อใช้นับเวลา
try: #ขึ้นตอนคำสั่ง except
start = int(round(time.time() * 1000)) #ดูเวลาเริ่ม script
connection = cx_Oracle.connect(sys.argv[1]) #connection string to database
cursor = connection.cursor()
sql = sys.argv[2] #คำสั่ง SQL
cursor.execute(sql) #ทำการ Query database
count = cursor.fetchall()
connection.close()
end = int(round(time.time() * 1000)) #ดูเวลาจบการรัน script
time = end-start #ให้ time=end-start แล้วส่งเป็นค่า time เวลาหน่วยเป็น ms
print int(time)
except pymssql.OperationalError: #ถ้าเกิด Error หรือรัน Script ไม่ผ่านให้ส่ง -1
print int(-1)
#!/usr/bin/perl
use Net::LDAP;
use Time::HiRes qw( gettimeofday tv_interval );
my $chkSuccess = 0;
my $ldapserver = "LDAPSERVERIP";
my $ldapversion = 2;
my $ldapuser = "cn=ldadm,o=test";
my $ldapbase = "uniqueId=lduser1,ou=local,deptName=it,o=users,o=TESTER";
my $ldappass = "pass123";
my $searchstring = "objectclass=*";
my @attribs = ('uniqueID');
sub LDAPsearch {
my ($ldap,$searchString,$attrs,$base) = @_;
my $result = $ldap->search ( base => "$base",
scope => "base",
filter => "$searchString",
attrs => $attrs
);
}
my $t0 = [gettimeofday];
my $ldap = Net::LDAP->new ($ldapserver) or die ("-1\n");
$ldap->bind ($ldapuser, password => $ldappass, version => $ldapversion) or die ("-1\n");
my $search = LDAPsearch ($ldap, $searchstring, \@attribs, $ldapbase ) or die ("-1\n");
my @entries = $search->entries;
my ($uniqueID);
if (@entries) {
$uniqueID=$entries[0]->get_value('uniqueID');
if ($uniqueID=="lduser1") {
$chkSuccess = 1;
} else {
$chkSuccess = 0;
} } else {
$chkSuccess = 0;
}
$ldap->unbind;
my $elapsed = tv_interval ($t0, [gettimeofday]);
if($chkSuccess==1) {
print $elapsed;
} else {
print "-1";
}
#!/usr/bin/perl
use Net::TacacsPlus::Client;
use Net::TacacsPlus::Constants;
use Time::HiRes qw( gettimeofday tv_interval );
my $chkSuccess = 0;
my $tac = new Net::TacacsPlus::Client(
host => 'TACACSSERVERIP',
key => 'tacacskey');
my $t0 = [gettimeofday];
if ($tac->authenticate('tuser1', 'tuser1passwd', TAC_PLUS_AUTHEN_TYPE_PAP)){
#print "Authentication successful.\n";
$chkSuccess = 1;
} else {
#print "Authentication failed: ".$tac->errmsg()."\n";
$chkSuccess = 0;
}
my @args = ('service=junos-exec', 'local-user-name=staff');
my @args_response;
if($tac->authorize('tuser1', \@args, \@args_response))
{
#print "Authorization successful.\n";
#print "Arguments received from server:\n";
#print join("\n", @args_response);
$chkSuccess = 1;
} else {
#print "Authorization failed: " . $tac->errmsg() . "\n";
$chkSuccess = 0;
}
my $elapsed = tv_interval ($t0, [gettimeofday]);
if($chkSuccess==1) {
print $elapsed;
} else {
print "-1";
}
#!/usr/bin/perl
use Authen::Radius;
use Time::HiRes qw( gettimeofday tv_interval );
my $chkSuccess = 0;
my $host = "RADUISSERVERIP";
my $port = 1812;
my $username = "ruser1";
my $password = "ruser1passwd";
my $secret = "secret";
my $nas = "192.168.99.100";
my $timeout = 5;
my $t0 = [gettimeofday];
$host = "$host:$port" if $port;
if (!(my $radius = Authen::Radius->new(Host => $host, Secret => $secret, TimeOut => $timeout))){
my $err = "Could not connect to $host";
$err .= ": " . Authen::Radius::strerror if (Authen::Radius::strerror);
print $err, "\n";
$status = &set_status(0);
}else{
my $answer = $radius->check_pwd($username, $password, $nas);
$status = &set_status($answer);
print $status;
}
my $elapsed = tv_interval ($t0, [gettimeofday]);
if($chkSuccess==1) {
print $elapsed;
} else {
print "-1";
}
sub set_status {
my $res = shift;
my $status;
if ($res) {
$status = "OK";
}else {
$status = "CRITICAL";
}
print "$status\n";
return($status);
}