calendar

S M T W T F S
  12345
6789101112
13141516171819
20212223242526
2728293031  
<< October 2019 >>

categories

archives

syslog-ngが割り込む

0
    ネットワーク機器のsyslogを収集するサーバにsyslog-ngを導入している。そのsyslog-ngが割り込んで落ちる障害が発生。
    原因追求のため、syslog-ngのデバッグシンボルを埋め込んだバイナリをビルドして再現を待った。

    再現が発生したタイミングでコアダンプを取得し、スタックトレースを参照。すると、glib内で割り込んでいることが分かった。次にglibのソースを取得。


    サーバはCentOS5.1。glibのバージョンは、glib2-2.12.3-2.fc6。

    また、今回、syslog-ngがglibを使っていることを初めて知った。
    関数リファレンスは以下のサイトより。

    java sshライブラリのソース

    0
      ネットワーク機器にsshログインしてコマンドを実行する JBossアプリケーションを開発している。
      ライブラリ内部のThread$run() でNullPointerExceptionが発生。ソースの取得に苦労した。アプリケージョン開発当時に取得したsshライブラリは j2ssh-0.2.2。

      以下のサイトから取得した。
      JUGEMテーマ:ビジネス

      opensslで作成したSSL証明書と鍵をkeytoolにインポートする

      0
         opensslコマンドで作成した 秘密鍵と証明書をtomcatのSSLコネクタにも共有させたいときがある。

        nativeのAPRを使えば、SSLCertificateFile属性などが使えてそのまま設定ファイルにCRTファイルを指定できるが、keytool で変換できる。

        まず、以下のようにpkcs12に変換する。


        # openssl pkcs12 -export -in /etc/pki/tls/certs/ssl.crt
         -inkey /etc/pki/tls/private/ssl.key
         -out /usr/local/tomcat/keystore.pkcs12
         -name "tomcat"(実際は1行で入力)

        この場合の -name "tomcat" の値は、次の変換で使用する。


        さらに次のコマンドで pkcs12形式のデータをインポートする。


        # keytool -importkeystore
         -srckeystore /usr/local/tomcat/keystore.pkcs12
         -destkeystore /usr/local/tomcat/ssl.keystore
         -srcstoretype pkcs12
         -deststoretype jks -deststoretype jks -destalias "tomcat"
         -destkeypass "111111" (実際は1行で入力)


        PHPで標準出力、標準エラー出力をそれぞれ取得する

        0
          PHPでは、シェル実行が可能な system 関数などが用意されているが、例えば、エラー出力だけを取得したい(Webページに表示させたい)ときには難しい(おそらくリダイレクトをうまく使えばできそうでもあるが)

          標準出力、標準エラー出力をそれぞれ取得する方法を発見した。
          詳細はこちらのサイトから。

          この情報に感謝、感謝。

          カレントディレクトリ名を取得する

          0
            linuxシェルでカレントディレクトリ名(パスではなくディレクトリ名のみ)を取得する必要があった。
            以下の3通りを発見。

            basename /usr/local/bin
            bin


            cd /usr/local/bin
            basename `pwd`
            bin


            cd /var/log/squid
            echo ${PWD##*/}
            squid


            以下のサイトが参考になりました。

            http://sourceforge.jp/magazine/07/11/19/0147208

            問題は何ですか?

            0
              客先(聞けばすぐ分かる大きな会社ですよ)で、エラーの調査を実施しているとき、
              お客様「とにかく急いでるんです。動くようにしてください」
              私「エラーを直すために、再現が確実にできる環境を用意したいのですが」
              お客様「再現とかなんでもいいから、とにかく動くようにしてください」
              ・・・・・・ショック

              こんな人のほうが高い給料もらってるんだと思うと、
              このときばかりは、不公平さを感じてたまらない。
              お金じゃない!とは思うけど、働いた対価が給料として得られる、
              という現実からは、そう考えてしまうなぁ悲しい
              満たされてないのかなぁ

              ゆとりはホントに大事

              0
                デマルコ シリーズ!?で読みました。
                ゆとりの法則 − 誰も書かなかったプロジェクト管理の誤解
                ゆとりの法則 − 誰も書かなかったプロジェクト管理の誤解
                トム・デマルコ,伊豆原 弓

                とにかく「ゆとり」がないと、いい仕事ができない。
                これは、もちろんその内容によると思うが、知識労働者にとっては、非常に当てはまると思う。

                きっちり詰まった机悲しい
                ギリギリの納期冷や汗
                余裕のないスケジュールびっくり

                全て生産性を下げることばかり。

                急げと言われれば言われるほど、完了までの時間が延びることは、
                言われる側になる人が一番理解できるはずで。
                つまり、急げという管理者が、言われる側の人だった時、
                そこで実際に生産性が上がっていたか?と考えるべき、と考える。

                急げ と言う人は、何らかの脅迫感に襲われながら、発言しているのだろうけど、もちろんそれを言われた人も、脅迫感に襲われる。

                そもそも、そういう状況を作らないことが、
                管理者の仕事、
                ですよね!?

                xenイメージマウント メモ(LVMの場合)

                0
                  LVM作成した場合は、さらに pvscan, vgscan などのコマンドを使用する必要あり。

                  # pvscan
                  PV /dev/sda2 VG VolGroup00 lvm2 [465.56 GB / 32.00 MB free]
                  Total: 1 [465.56 GB] / in use: 1 [465.56 GB] / in no VG: 0 [0 ]

                  (などと表示される)
                  # vgscan
                  Reading all physical volumes. This may take a while...
                  Found volume group "VolGroup00" using metadata type lvm2

                  (って言われる)
                  # lvscan
                  inactive '/dev/VolGroup00/LogVol00' [100.23 GB] inherit
                  inactive '/dev/VolGroup00/LogVol01' [20.75 GB] inherit


                  ただし、マウントしようとしているホストがLVM構成してると、ACIVEなものが表示される。。。当然。

                  # vgchange -ay

                  (inactiveになっているLVをactiveにする)
                  2 logical volume(s) in volume group "VolGroup00" now active
                  # lvscan
                  ACTIVE '/dev/VolGroup00/LogVol00' [100.23 GB] inherit
                  ACTIVE '/dev/VolGroup00/LogVol01' [20.75 GB] inherit


                  するとマウント出来るようになる。

                  # mount /dev/VolGroup00/LogVol00 /mnt


                  xenイメージマウント メモ

                  0
                    xenのイメージファイルをマウントしようとしても、
                    簡単!?にマウントできない。
                    安易に、
                    # mount server1.img /mnt/

                    ってやっても、ファイルタイプを指定せよ、だの、ブロックデバイスではない、だの。

                    調べたところ、losetup と kpartx を使用する必要があるらしい。
                    # losetup ## ヘルプ表示
                    # losetup -a
                    # losetup -f
                    # losetup /dev/loop0 server1.img


                    # kpartx ## ヘルプ表示
                    # ls /dev/mapper/
                    control
                    # kpartx -l /dev/loop0
                    loop0p1 : 0 208782 /dev/loop0 63
                    loop0p2 : 0 7968240 /dev/loop0 208845
                    # kpartx -a /dev/loop0
                    # ls /dev/mapper/
                    control loop0p1 loop0p2


                    あとは、
                    # mount /dev/mapper/loop0p1 /mnt
                    なんぞでマウントできる。ただし、LVMの場合は、無理。

                    参考元はこちら
                    http://sokohakato.wordpress.com/linux/centos/xenimgmount/
                    非常に(ほとんど)参考にさせていただきました。

                    しかし、デバイス、LVM。。まだまだ分かってないこと多いなぁ。

                    iptables備忘録

                    0
                      ・ iptablesで新しいChainを作成する。
                      # iptables -N mychain
                      設定をグループ化するときに有効だと思われる。

                      ・ 設定内容を確認する。
                      # iptables -N mychain

                      RH-Firewall-1-INPUTの9と10の間にルールを挿入したいとき(例)。
                      # iptables -I RH-Firewall-1-INPUT 9 -p tcp --dport 8888 -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT

                      非常に参考にさせていただきました。
                      くわぞうメモ

                      | 1/3PAGES | >>