Archive for the 'server' Category

Cacti: Utilisasi E1 Channel Cisco AS5300

Setelah mata dan jemari terpaku di thread jadul forums..net yang ngebahas utilisasi channel e1 di Cisco , hati ini tergerak buat nyobain. Berhubung ada /AS5350 yang masih nganggur kurang diperhatiin.

Dari informasi thread tadi, template bisa diunduh dari url ini, atau dari template yg diattach di thread tersebut. Setelah diimport di Cacti, template berjalan baik di salah satu AS5300. Tapi saat dicoba di AS5350 grafiknya koq kosongan ya… :bingungs. Cek log file cacti, ternyata fail.

Usut punya usut, card E1 di AS5350 dipasang di slot 1, jadi OID bawaan template tersebut diatas perlu diedit.

.1.3.6.1.4.1.9.10.19.1.1.9.1.3.0.0

Dua digit paling belakang di OID tersebut adalah slot dan port E1 yang akan dicapture. Jadi kalo slot 1, OID menjadi: .1.3.6.1.4.1.9.10.19.1.1.9.1.3.1.0

Untuk menghargai pembuat template sebelumnya, saya tinggal edit aja template yang sudah ada :p Berhubung template eksisting terpakai buat AS5300 yang lain, harus dibuat template terpisah. Jadi template eksisting harus diduplikat baru diedit:

1. Masuk Data Templates di console Cacti, duplikat semuanya..
2. Edit nama dan OID buat masing2 port E1
3. Masuk Graph Templates di console Cacti, duplikat
4. Edit nama graph, edit graph item ganti data source dengan data template yang sudah dibikin sebelumnya
5. Sudah siap pakai

Oia, jangan coba edit lewat file template .xml. Kalo sekedar ganti nama2 graph, data dan oid, hanya akan numpukin template eksisting. Gak masalah kalo template eksisting gak kepake.

Template langsung jalan di AS5300

cacti cisco as5300 channel in use

Template setelah diedit untuk AS5350

cacti cisco as5350 channel in use

Template dari kontributor lain di thread, setelah disesuaikan OIDnya dan diedit menjadi 4E1

 cacti cisco as5350-2 channel in use

catatan: Cacti yang saya pake masih versi 0.8.7d

Bacaan lain:
http://forums.cacti.net/viewtopic.?t=20443
http://www.barryodonovan.com/index.php/2007/03/31/cacti-as5300-e1-use
http://umbl.blogspot.com/2010/01/cacti-graph-for-e1s-on-cisco-as5350.html

Fungsi String: Split Berdasarkan Karakter

Basic SQL, pada , untuk memisahkan menjadi dua. Untuk memecah menjadi dua baris data bisa menggunakan fungsi regexp_split_to_table.

Misal saya mau memisahkan “kaskus/detik” pada field KOLOM berdasarkan karakter “/”

regexp_split_to_table(KOLOM, E'\\/+')

Hasil (2 baris):

kaskus

detik

——————————————-

Menggunakan fungsi . Merupakan fungsi dari , create dulu di postgres.

Mengambil string di depan “/” :

SUBSTR(KOLOM, 1 ,INSTR(KOLOM, '/', 1, 1)-1)

Mengambil string di belakang “/”

SELECT SUBSTR(KOLOM,INSTR(KOLOM, '/', 1, 1)+1)

Porting Fungsi INSTR Oracle ke Postgres

This is just a note on the blog… numpang catatan :p

PORTING FUNGSI INSTR ORACLE KE POSTGRES
 
-------------------
This section contains the code for a set of Oracle-compatible instr functions that you can use to simplify your porting efforts.
 
--
-- instr functions that mimic Oracle's counterpart
-- Syntax: instr(string1, string2, [n], [m]) where [] denotes optional parameters.
--
-- Searches string1 beginning at the nth character for the mth occurrence
-- of string2.  If n is negative, search backwards.  If m is not passed,
-- assume 1 (search starts at first character).
--
 
CREATE FUNCTION instr(varchar, varchar) RETURNS integer AS $$
DECLARE
    pos integer;
BEGIN
    pos:= instr($1, $2, 1);
    RETURN pos;
END;
$$ LANGUAGE plpgsql STRICT IMMUTABLE;
 
CREATE FUNCTION instr(string varchar, string_to_search varchar, beg_index integer)
RETURNS integer AS $$
DECLARE
    pos integer NOT NULL DEFAULT 0;
    temp_str varchar;
    beg integer;
    length integer;
    ss_length integer;
BEGIN
    IF beg_index > 0 THEN
        temp_str := substring(string FROM beg_index);
        pos := position(string_to_search IN temp_str);
 
        IF pos = 0 THEN
            RETURN 0;
        ELSE
            RETURN pos + beg_index - 1;
        END IF;
    ELSE
        ss_length := char_length(string_to_search);
        length := char_length(string);
        beg := length + beg_index - ss_length + 2;
 
        WHILE beg > 0 LOOP
            temp_str := substring(string FROM beg FOR ss_length);
            pos := position(string_to_search IN temp_str);
 
            IF pos > 0 THEN
                RETURN beg;
            END IF;
 
            beg := beg - 1;
        END LOOP;
 
        RETURN 0;
    END IF;
END;
$$ LANGUAGE plpgsql STRICT IMMUTABLE;
 
CREATE FUNCTION instr(string varchar, string_to_search varchar,
                      beg_index integer, occur_index integer)
RETURNS integer AS $$
DECLARE
    pos integer NOT NULL DEFAULT 0;
    occur_number integer NOT NULL DEFAULT 0;
    temp_str varchar;
    beg integer;
    i integer;
    length integer;
    ss_length integer;
BEGIN
    IF beg_index > 0 THEN
        beg := beg_index;
        temp_str := substring(string FROM beg_index);
 
        FOR i IN 1..occur_index LOOP
            pos := position(string_to_search IN temp_str);
 
            IF i = 1 THEN
                beg := beg + pos - 1;
            ELSE
                beg := beg + pos;
            END IF;
 
            temp_str := substring(string FROM beg + 1);
        END LOOP;
 
        IF pos = 0 THEN
            RETURN 0;
        ELSE
            RETURN beg;
        END IF;
    ELSE
        ss_length := char_length(string_to_search);
        length := char_length(string);
        beg := length + beg_index - ss_length + 2;
 
        WHILE beg > 0 LOOP
            temp_str := substring(string FROM beg FOR ss_length);
            pos := position(string_to_search IN temp_str);
 
            IF pos > 0 THEN
                occur_number := occur_number + 1;
 
                IF occur_number = occur_index THEN
                    RETURN beg;
                END IF;
            END IF;
 
            beg := beg - 1;
        END LOOP;
 
        RETURN 0;
    END IF;
END;
$$ LANGUAGE plpgsql STRICT IMMUTABLE;

Microsoft Exchange Server Error Code

Copas aja, biar gampang nyarinya kalo temen ada yang nyari

Continue reading ‘Microsoft Exchange Server Error Code’

Remote PC di Rumah dengan VNC

Langsung aja.. jika ada koneksi ip public, bisa memanfaatkan untuk meremote PC dari mana aja. Kebetulan di rumah memanfaatkan akses internet dengan ip public. Kira-kira seperti ini gambarannya:

PC A (ip lokal) —- (ip lokal) (ip public) —- ISP (INTENET CLOUD) —- PC B

Maap lagi males nggambar, pake text kayak diatas dah cukup jelas kan? Penjelasannya begini:

  • PC A adalah komputer yg dirumah, terhubung lewat jaringan lokal (LAN) ke modem
  • Modem mendapatkan ip public dari ISP (walaupun dynamic, its ok lah…). Saya mendapatkan modem ADSL Router merk TP-. Alhamdulillah selama ini ngga ada masalah walopun on terus.
  • PC B adalah PC yang saya pake buat ngeremot PC A. bisa menggunakan akses apa aja dimana aja.

Pertanyaannya: Gimana PC dengan ip lokal bisa diakses lewat internet?

Continue reading ‘Remote PC di Rumah dengan VNC’