カテゴリー: 技術系

  • Cisco ASA 5512-x のインターフェースでoverrunのカウントが増える

    Cisco ASA 5512-xのインターフェースサマリを見ていたところ、overrunというカウンタがあった。そのカウンタの値が増えていた。

    増えていたのは、input erroroverrunのカウンタで、両方とも同じ値だった。

    エラーカウンタのoverunは、ネットワークインターフェースでパケットが受信されたが、インターフェースFIFOキューにパケットを保存するための使用スペースがなかったときにカウントアップ(階数が増える)する。

    ASAの場合は、Firewallという特性から、パケットの処理に時間がかかり、処理速度以上にパケットが送られてくると、簡単にたまってしまい、あふれる(負荷がかかっているのはCPU)。そうすると、`overrun`のエラーカウンタが増える。

    状況を把握するためには、パケット着信時のCPUの状況(CPU-HOG)を調べるためのコマンドを実行し、状況を確認する。

    コマンド: show proc cpu-hog

    ciscoasa# show interface summary
    Interface GigabitEthernet0/0 "Outside", is up, line protocol is up
      Hardware is i82574L rev00, BW 1000 Mbps, DLY 10 usec
            Auto-Duplex(Full-duplex), Auto-Speed(1000 Mbps)
            Input flow control is unsupported, output flow control is off
            MAC address 6073.5c68.fd67, MTU 1454
            IP address 219.163.xxx.xxx, subnet mask 255.255.255.255
            5961524560 packets input, 6341231636630 bytes, 0 no buffer
            Received 0 broadcasts, 0 runts, 0 giants
            1740 input errors, 0 CRC, 0 frame, 1740 overrun, 0 ignored, 0 abort
            0 pause input, 0 resume input
            0 L2 decode drops
            3655881367 packets output, 1089584429139 bytes, 0 underruns
            0 pause output, 0 resume output
            0 output errors, 0 collisions, 1 interface resets
            0 late collisions, 0 deferred
            0 input reset drops, 0 output reset drops
            input queue (blocks free curr/low): hardware (478/362)
            output queue (blocks free curr/low): hardware (464/346)
      Traffic Statistics for "Outside":
            11921162403 packets input, 12420084859214 bytes
            3655881367 packets output, 1023723468517 bytes
            28612147 packets dropped
          1 minute input rate 318 pkts/sec,  61380 bytes/sec
          1 minute output rate 241 pkts/sec,  97037 bytes/sec
          1 minute drop rate, 0 pkts/sec
          5 minute input rate 616 pkts/sec,  343904 bytes/sec
          5 minute output rate 359 pkts/sec,  104433 bytes/sec
          5 minute drop rate, 0 pkts/sec
    

    FIFOキュー

    FIFO = First In First Out。 つまり、パケットを処理するための普通のキュー。

    参考

    https://www.cisco.com/c/ja_jp/support/docs/security/asa-5500-x-series-next-generation-firewalls/115985-asa-overrun-product-tech-note-00.html

  • Windowsで時刻同期先と時刻同期の状況をコマンドで確認する方法

    Windowsでの時刻同期の操作はw32tmを使用する。コマンドを使うことで、NTPサーバとの時刻同期の状況を確認することができる。

    同期状況を確認する

    w32tm /query /peers

    ポーリング感覚や状態、同期先(ピア)などを確認することができる。

    実行例)

    C:\WINDOWS\system32>w32tm /query /peers
    ピア数: 1
     
    ピア: ntp.xenos.jp
    状態: アクティブ
    残り時間: 1020.0269700s
    モード: 3 (クライアント)
    階層: 3 (二次参照 - (S)NTP で同期)
    ピアポーリング間隔: 10 (1024s)
    ホストポーリング間隔: 10 (1024s)
  • Windowsでコマンドから時刻同期をさせる方法

    Windowsでの時刻同期の操作はW32tmコマンドを使用する。このコマンドを使うことで、NTPサーバとの時刻同期も手動で行うことができる(時刻同期の確認ができる)。

    即座にNTPサーバと同期させる

    w32tm /resync /nowait

    「/resync」で再同期、「/nowait」で即座に同期を実施する。

    時刻同期を行う際は、コマンドプロンプト(cmd)を管理者モードで起動し、w32tmコマンドを実行すること。管理者モードで行わないと、コマンドが拒否される。

  • Ubuntu ServerにBitnami Redmineをインストール

    Ubuntu Server 18.04.2にRedmineをインストールしようとしたところ、aptのRedmineパッケージが見つからず。
    そのため、Redmineの公式ではないが、楽をしてインストールするために、「Bitnami Redmine Stack」を使ってインストールした。

    1.下記のURLから、Linux版をダウンロード。ダウンロードの際にユーザ登録が必要。
    https://bitnami.com/stack/redmine/installer

    2.ダウンロードすると、下記のファイルができるのでサーバにアップロードする。
    bitnami-redmine-3.4.6-1-linux-x64-installer.run

    3.Checksumの値と比較する。
    md5sum bitnami-redmine-3.4.6-1-linux-x64-installer.run | grep c31381590b8fb21ef8d2bed6da990955

    4.ファイルの実行権限を変更する
    chmod 755 bitnami-redmine-3.4.6-1-linux-x64-installer.run

    5.ファイルを実行する
    sudo ./bitnami-redmine-3.4.6-1-linux-x64-installer.run

    6.あとは、CLIのウィザード形式なので、選択しながらインストールしていく。日本語を選択できるので、簡単にインストールができる。

    実際に実行すると・・・

    zen@redmine:~$ chmod 755 bitnami-redmine-3.4.6-1-linux-x64-installer.run
    zen@redmine:~$
    zen@redmine:~$
    zen@redmine:~$ ls
    bitnami-redmine-3.4.6-1-linux-x64-installer.run
    zen@redmine:~$
    zen@redmine:~$
    zen@redmine:~$
    zen@redmine:~$ sudo ./bitnami-redmine-3.4.6-1-linux-x64-installer.run
    [sudo] zen のパスワード:
    Language Selection
    
    Please select the installation language
    [1] English - English
    [2] Spanish - Espanol
    [3] Japanese - 日本語
    [4] Korean - ???
    [5] Simplified Chinese - ?体中文
    [6] Hebrew - ?????
    [7] German - Deutsch
    [8] Romanian - Roman?
    [9] Russian - Русский
    Please choose an option [1] : 3
    ----------------------------------------------------------------------------
    ようこそ Bitnami Redmine Stack セットアップウィザードへ。
    
    ----------------------------------------------------------------------------
    インストールするコンポーネントを選択してください。インストールしないコンポーネントの選択を外してください。準備ができたら“次へ“をクリックしてください。
    
    Subversion [Y/n] :Y
    
    PhpMyAdmin [Y/n] :Y
    
    Redmine : Y (Cannot be edited)
    
    Git [Y/n] :Y
    
    上記選択部分が正しいことを確認してください。 [Y/n]: Y
    
    ----------------------------------------------------------------------------
    Installation folder
    
    Bitnami Redmine Stack をインストールするフォルダを選択してください。
    
    フォルダを選択 [/opt/redmine-3.4.6-1]:
    
    ----------------------------------------------------------------------------
    管理者アカウントの作成
    
    Bitnami Redmine Stack の管理者アカウントを作成します。
    
    表示用氏名 [User Name]: admin
    
    Email アドレス [user@example.com]: zen@xenos.jp
    
    ログイン名 [user]: zen
    
    パスワード :
    確認のためにパスワードをもう一度入れてください :
    ----------------------------------------------------------------------------
    データベースに保管する際の既定の言語
    
    データベース設定の規定値として使用する言語を選択してください:
    
    [1] Bosnian
    [2] Bulgarian
    [3] Catalan
    [4] Czech
    [5] Danish
    [6] German
    [7] English
    [8] Spanish
    [9] French
    [10] Galician
    [11] Hebrew
    [12] Hungarian
    [13] Italian
    [14] 日本語
    [15] 韓国語
    [16] Lithuanian
    [17] Dutch
    [18] Norwegian
    [19] Polish
    [20] Portuguese
    [21] Romanian
    [22] Russian
    [23] Slovak
    [24] Slovenian
    [25] Serbian
    [26] Swedish
    [27] Turkish
    [28] Ukrainian
    [29] Vietnamese
    [30] Chinese
    オプションを選択してください [14] :
    
    Do you want to configure mail support? [y/N]: N
    
    ----------------------------------------------------------------------------
    お使いのコンピュータに Bitnami Redmine Stack をインストールする準備が整いました 。
    
    続けますか? [Y/n]: Y
    
    ----------------------------------------------------------------------------
    しばらくお待ちください。 Bitnami Redmine Stack をお使いのコンピュータにインスト ール中です。
    
     インストール中
     0% ______________ 50% ______________ 100%
     #########################################
    
    ----------------------------------------------------------------------------
    セットアップウィザードによる Bitnami Redmine Stack のインストールが完了しました 。
    
    Redmine アプリケーション起動 [Y/n]:
    情報: Bitnami Redmine Stack については、ブラウザで
    http://127.0.0.1:80 にアクセスしてください。
    続けるには [Enter] キーを押してください :
    zen@redmine:~$
    
    
  • Ubuntu Server 18.04.1 をインストールしてみた。

    Ubuntuではなく、Ubuntu Serverをインストールしてみたのでメモ。

    • Ubuntu Serverは、サーバに特化しているので、GUIのデスクトップや無駄なアプリケーションがない軽量なUbuntu。
    • Ubuntu Serverは、日本語対応したインストールメディアはない。(デスクトップ向けのISOファイルではない)
    • なので、インストール時の言語(Language)では、Japaneseが選択肢にない。
    • ただし、キーボードレイアウトは、Japaneseがある。
    • インストール用のメディア(ISOファイル)は以下のURLからダウンロードする
    • https://www.ubuntu.com/download/server
    • インストールするパッケージの量が少ないので、インストールがとても速い。15~20分くらいで完了した。
    • 日本語化はインストール後に行う(でないと、いろいろと文字化けするので)。
  • HP Probook 650 G2の初期化(工場出荷時)方法

    HP Probook 650 G2を初期化(工場出荷時)に戻す方法。アカウントもデータもすべて消えるので、注意すること。

    1. 電源をいれ、F11キーを押し続ける。
    2. Windowsではなく、ファンクション画面が起動する
    3. ”Troubleshoot” を選択する
    4. “Reset this PC” を選択する
    5. “Remove everything” を選択する
    6. “Fully clean the drive” を選択する
    7. 最終確認を求めらるので、”Reset”を選択する。
    8. あとは基本的に待つだけ。とても時間がかかる。

    以上。

  • ミスアライメントI/O

    ミスアライメントとは

    ストレージ側のブロックサイズにたいして、使用しているOSのアプリケーションデータの書き始めと終わりがストレージ側のブロックの中間から始まり、複数のブロックにまたがっている状態。

    ミスアライメントI/Oが発生する状況

    例えば、Windowsでは、iSCSIマウントしたストレージ側のブロックサイズが16Kのときに、フォーマットしたドライブのアロケートユニットサイズを4Kにしてしまうと、ミスアライメントI/Oが発生する。

    解消するには、アロケートユニットサイズをストレージ側のブロックサイズと同じ値でフォーマットする。

    ミスアライメントI/Oが発生していると、データの読み書きのパフォーマンス低下につながる。

  • SYS.DBMS_LOCK権限を割り当て

    Oracle DatabaseでDBMS_LOCK権限の割り当てと確認方法。

    ■DBMS_LOCK権限を付与する
    ※DBAで実施

    GRANT EXECUTE ON SYS.DBMS_LOCK TO ユーザ名;

    ■オブジェクト権限を確認するSELECT文

    SELECT * FROM dba_tab_privs;

    SELECT * FROM dba_tab_privs where GRANTEE = '確認するユーザ' ;

    ■確認結果

     SQL> SELECT * FROM dba_tab_privs where GRANTEE = 'OracleUSER' ;
     
     GRANTEE                        OWNER
     ------------------------------ ------------------------------
     TABLE_NAME                     GRANTOR
     ------------------------------ ------------------------------
     PRIVILEGE                                GRA HIE
     ---------------------------------------- --- ---
     OracleUSER                        SYS
     DBMS_LOCK                      SYS
     EXECUTE                                  NO  NO
     
     
     SQL>
    
  • visual studio intelligence code

    既存のソースコードを機械学習させて、類似性があるものをコード規約として補完する仕組みなのね。これは便利なんじゃないかと思う。最初はちゃんとしたルールを作っていったとしても、崩れてくるし、現実に合わせるのが正解だったりする。特にちょっと古いとか一人でコーディングしたものはルールが無いものもあるだろう。それをコードレビューで一つ一つ潰していくよりも、学習されたデータに沿って最適なルールで補ってくれる方が良い。

    実際にどこまで使えるのかは、試してみないとわからないけれど、期待できそうなシステムだ。日本で問題があるとすれば、新しいvisual studioの機能なので、開発環境のアップデートが必要になること。この機能が必要になるレガシーなシステムだと使えないんじゃないかと思う。常に最新にするべく対応できればいいのだけど、そうもいかないのが日本的なところだ。

    環境的な問題を解消できれば、スーパーなプログラマーは増えそうもないけれど、こういうアーキテクチャの力で、経験の浅いプログラマーも底上げされて開発効率が上がりそうだ。

    https://www.publickey1.jp/blog/18/aivisual_studio_intellicode.html

  • システムバックアップからリストアしたところ、OSは正常起動したがOracleDBが自動で立ち上がらなくなった。

    OracleがインストールされたWindowsサーバをシャットダウンし、システムバックアップを取得し、データファイルを保存している先のiSCSIディスクのバックアップも取得し、完全な静止点のバックアップを作成した。作業後、静止点のシステムバックアップからリストアを実施。リストア後、OS(Windows)は正常起動し、iSCSIについても問題はなかった。

    しかし、OracleDBの接続確認したところ、「ORA-01034」が発生し、Oracle DBが正常に起動していなかった。Windowsのイベントログも確認したが、特に変なエラーはなし。唯一、Oracle DB起動時に権限系のエラーが出ていた。完全な静止点でのバックアップだったので、SCN番号も関係なし。しかも手動で`startup`すると正常にOracle DBが起動して使えるようになった。

    試行錯誤で、Windows OSの再起動も試したが、事象が再現するだけ。アーカイブログモードもオフにしてみたが状況は変わらず。ドメインへの再参加も実施したが変わらず。いろいろと試したが状況は変わらず。ひとつひとつ切り分けていった結果、原因を特定した。

    原因は、WindowsのOSが起動時に、iSCSIディスクがマウントされる前に、Oracle DBのサービスが起動していたため、データファイルがマウントできず、起動が失敗していた。

    対応として、Oracle DBのサービスを開始遅延で設定。これで、先にiSCSIドライブがマウントされるようになり、自動起動するようになった。

    今までは、たまたま起動順としてiSCSIのサービスが先に起動していただけ。それがイメージバックアップからのリストアがトリガーとなり、起動順番が変わり、Oracle DBが自動起動しなくなった、ということ。