2012年1月6日金曜日

Zabbix1.6.9をCentOSに入れる

前に書いて公開してなかったので、ちょっと古い気もするけど(;´Д`)

サーバーが増えてきたので一括で管理したくなったし、面白そうなのでZabbixを入れてみることにした。

参考サイトは以下のとおり。
        Server World:ZABIIX-インストール
        だいたいおっけぇ:CentOS 5にZabbixをインストールする方法

今回はほとんど同じなので、相違点だけ。

・インストールは zabbix-server も一緒に入れること。

・SQLに読み込ませるデータの場所は、「/usr/share/doc/zabbix-server-1.6.9/」の中にある。schemaとdataのディレクトリがそのままあります。(Server Worldさんのとこでは/zabbix-server-x.x.x/dbinit/の中にあるけど。

・SQLの追加はものすごく時間かかかります。気長に待ちましょう(SQL追加の間でこれを書いてるけど、待ってる間に書き終わりましたw)。


・Zabbixの起動で、/etc/rc.d/init.d/zabbix start ではなく /etc/rc.d/init.d/zabbix-server start に変更になってます。


・Zabbixのログインは「admin」パスワード「zabbix」です(公式サイトより)。

2012年1月5日木曜日

C#でもXMLの読み込み

前回に引き続き、XMLの読み込みを。

前回はJava版だったので、今回は必要に迫られて急遽作ったC#版です。

そのうち説明を追加など加筆修正します。

読み込み対象は前回と同じ下のようなXMLファイル。

    <root>
        <fruit>
            <type>りんご</type> 
            <name>ふじ</name>
            <locality>青森</locality >
            <weight>100</weight>
        </ fruit >
        < fruit >
            <type>なし</type> 
            <name>幸水</name>
            <locality>山梨</locality >
            <weight>120</weight>      
        </ fruit >
        < fruit >
            <type>みかん</type> 
            <name>温州みかん</name>
            <locality>愛媛</locality >
            <weight>30</weight>
        </ fruit >
    </root>

コードは下の通り。

XmlReader xmlReader = XmlReader.Create(filePath);

while (xmlReader.Read())
{
    if (xmlReader.NodeType == XmlNodeType.Element)
    {
        switch (xmlReader.LocalName)
        {
            case "type":
                System.Console.WriteLine("type" + xmlReader.ReadString());
                break;
            case "name":
                System.Console.WriteLine("name" + xmlReader.ReadString());
                break;
            case "locality":
                System.Console.WriteLine("locality" + xmlReader.ReadString());
                break;
            case "weight":
                System.Console.WriteLine("weight" + xmlReader.ReadString());
                break;
         }   
    }
}

以上。指摘あればよろしくお願いします。

2012年1月4日水曜日

JAVAでXMLの読み込み

あけましておめでとうございます。

前回のからかなり時間が空いてしまったのは、筆無精っということで。


今回から数回は、自分が書いたライブラリ的なものを公開していこうと思います。
おそらく、絶対、洗練されたものではないので、指摘をお待ちしております。

とりあえず暫定的なもので進めて、気が向いたらしっかりとまとめ直す予定ですm(_ _)m


JavaのXML例では下みたいなものが多い。
    <root>
        < fruit >りんご</ fruit >
        < fruit >なし</ fruit >
        < fruit >みかん</ fruit >
    </root>

こう言うのではなく、ここに置いておくコードは下のようなもの。
fruit要素の中に各項目がある場合のもの。

    <root>
        <fruit>
            <type>りんご</type> 

            <name>ふじ</name>
            <locality>青森</locality >
            <weight>100</weight>

        </ fruit >
        < fruit >
            <type>なし</type> 
            <name>幸水</name>
            <locality>山梨</locality >
            <weight>120</weight>      
        </ fruit >
        < fruit >
            <type>みかん</type> 
            <name>温州みかん</name>
            <locality>愛媛</locality >
            <weight>30</weight>
        </ fruit >
    </root>

        Document document = DocumentBuilderFactory.newInstance().
                newDocumentBuilder().parse(new File(filePath));

        //指定の要素を抜き出す
        NodeList element = document.getElementsByTagName("kamp");

        for (int i = 0; i < element.getLength(); i++)
        {
            //抜き出した要素の中から順番に、子要素を抜く出す
            NodeList list = element.item(i).getChildNodes();
            for (int j = 0, k = 0; j < list.getLength(); j++)
            {
                //抜き出した子要素の中から順番に取りだし、空白であれば登録しない
                String text = list.item(j).getNodeName();
                if (text.equals("#text") == false)
                {
                    String value = list.item(j).getTextContent().trim();
                    if (text.equals("type"))
                    {
                        System.out.println("種類:" + value);
                    } else if (text.equals("name"))
                    {
                        System.out.println("名前:" + value);
                    } else if (text.equals("locality"))
                    {
                        System.out.println("産地:" + value);
                    } else if (text.equals("weight"))
                    {
                        System.out.println("重さ:" + value);
                    }
                    k++;
                }
            }
        }

以上終わり。