a stray sheep

お仕事周りの雑記帳

PrometheusでWindows機を監視する

概要

PrometheusでWindowsを監視する。

  • Windowsの監視には、WMI Exporterを使う。
    • WMI Exporterは、IISサイトやアプリケーション、ネットワークインタフェース、サービス、ローカルの温度などを監視できる(らしい)
  • 手元のホストのWindows10環境に入れる。つまり、ゲストのPrometheus本体から、ホストのWindows 10 Homeを監視するということ。

環境

  • 作業マシンはノートPC(Windows 10 Home)★今回の監視対象
    • wmi_exporter 0.9.0
  • Vagrant 2.2.5 + VirtualBox 5.2.8
  • VM1:Prometheus本体、CentOS7.7、Private NW: 192.168.33.10
    • prometheus 2.16.0

WMI Exporterのインストール

  1. WMI Exporterのサイトへアクセス github.com
  2. [releases]をクリックし、そこでインストーラを取得する。今回は、以下をダウンロード。
  3. インストーラを実行
  4. タスクマネージャを起動して、[wmi_exporter.exe]プロセスがいることを確認
  5. ブラウザで、http://localhost:9182/metrics にアクセスし、WMI Exporterでメトリクスを確認(ホストのノートPCに入れたのでそのまま見れる)

WMI ExporterとPrometheusを連携する

$ sudo vi prometheus.yml

   static_configs:
      - targets:
         - 'localhost9090'     // prometheus本体
         - '192.168.33.11:9100'   // vm2のnode exporter
         - '192.168.33.1:9182'    // ホストマシンのWMI Exporter

連携が成功すると、「http://localhost:9090」 の[Status]→[Targets]では、以下のように表示される。 1つ目は、停止中なので"DOWN"でok。2つ目がホストマシン。連携できているようだ。

f:id:belial6:20200226005501p:plain

Prometheus + Grafana

概要

前回、とりあえず動かせたPrometheusのインタフェースをGrafanaにしてみる。

  • Grafanaは、Prometheus本体があるサーバに入れる。
    • Grafana 6.6.2
  • Vagrantのポート転送で、ホストの3000ポートをゲストの3000ポートに転送するように設定しておく。(in Vagranfile)

Grafanaのインストール

Grafana公式を参考に実施 grafana.com

$ sudo vi /etc/yum.repos.d/grafana.repo

[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt


$ sudo yum install -y grafana
$ rpm -qa | grep grafana
grafana-6.6.2-1.x86_64
$ sudo systemctl daemon-reload
$ sudo systemctl start grafana-server
$ sudo systemctl status grafana-server
$ sudo systemctl enable grafana-server.service

Grafana + Prometheusの連携

  1. ホスト上で、Grafanaに接続(http://localhost:3000/
  2. ログイン(admin/admin)
  3. [Add data source]をクリック
  4. [Prometheus]を選択
  5. URL欄に「http://localhost:9090」を入力
    • prometheusの本体がある場所。同じサーバ内なので「localhost
    • prometheusのポートが「9090」
  6. [Save & Test]をクリックし、「Data source is working」と表示されることを確認する
  7. [Home]→[Import dashboard]をクリック
  8. "Grafana.com Dashboard"欄に、テンプレートのIDを入力
    • 「1860」
  9. "Options" -> "Prometheus"で、「Prometheus」を選択し、「Import」をクリック
  10. Dashboardが表示され、Prometheusが収集したデータが表示される。

f:id:belial6:20200225234855p:plain

Subversionリポジトリの移行

概要

Subversionリポジトリの移行検証をローカル環境で行う。

TortoiseSVNのインストール

  1. TortoiseSVNの公式(https://tortoisesvn.net/)にアクセス
  2. [Downloads]タブ をクリック
  3. [TortoiseSVN 1.13.1 - 64-bit] をクリックして、ダウンロード
  4. インストーラを実行。すべてデフォルト値で進む。
  5. 完了

移行元リポジトリの作成

$ sudo svnadmin create /data/svn/repo1
$ sudo svn mkdir file:///data/svn/repo1/trunk file:///data/svn/repo1/tags file:///data/svn/repo1/branches -m 'Initial import'
$ sudo chown -R apache:apache /data/svn/repo1

チェックアウト

データの追加、コミット作業

移行先リポジトリの作成

$ sudo svnadmin create /data/svn/repo2
$ sudo svn mkdir file:///data/svn/repo2/trunk file:///data/svn/repo2/tags file:///data/svn/repo2/branches -m 'Initial import'
$ sudo chown -R apache:apache /data/svn/repo2

移行

// リポジトリデータをダンプ
$ sudo svnadmin dump /data/svn/repo1 > /tmp/svn_repo1.dump

// リポジトリデータを復元
$ sudo svnadmin load /data/svn/repo2 < /tmp/svn_repo1.dump

移行後の状態(http://localhost:10080/repos/repo2f:id:belial6:20200222171208p:plain

移行できました。

CentOS7 + Subversion + Apache

参考にしたサイト(すぐできました) web-technical.hatenablog.com

概要

Vagrant環境の準備

(1)Vagrantfile生成
> vagrant init centos/7

(2)Vagrantfileの編集(ポート転送設定)
config.vm.network "forwarded_port", guest:80 , host:10080

(3)VM作成&起動
> vagrant up
> vagrant ssh

構築作業

$ sudo yum install -y subversion mod_dav_svn httpd
$ svn --version
svn, version 1.7.14 (r1542130)

$ sudo mkdir -p /data/svn
$ sudo svnadmin create /data/svn/repo
$ sudo svn mkdir file:///data/svn/repo/trunk file:///data/svn/repo/tags file:///data/svn/repo/branches -m 'Initial import'

$ sudo chown -R apache:apache /data/svn

$ sudo vi /etc/httpd/conf.d/subversion.conf
<Location repos>
  DAV svn
  SVNParentPath /data/svn
</Location>

$ sudo systemctl enable httpd
$ sudo systemctl disable firewalld
$ sudo vi /etc/selinux/config
SELINUX=disabled

確認

ホストのブラウザを開いて「http://localhost:10080/repos/repo

表示されました^^

f:id:belial6:20200221011553p:plain

Prometheusをとりあえず動かすまで

概要

Prometheusを初めて触るので、まずは動かしてみる

  • Prometheusをインストールして、Prometheus Web UIにアクセスする
  • Linuxのサーバをnode_exporterで監視する
  • 環境には、Vagrantを使う

環境

  • 作業マシンはノートPC(Windows 10 Home)
  • Vagrant 2.2.5 + VirtualBox 5.2.8
  • VM1:Prometheus本体、CentOS7.7、Private NW: 192.168.33.10
    • prometheus 2.16.0
  • VM2:監視対象サーバ、CentOS7.7、Private NW: 192.168.33.11
    • node_exporter 0.18.1

Vagrantの基本操作

> vagrant init centos/7     // VMの作成
> vagrant up   // 起動
> vagrant ssh   // SSH接続
> vagrant halt   // 停止
> vagrant reload   // 設定ファイルの再読み込み

VM1(Prometheus本体)の作成

Vagrantfile

// ホストの9090ポートを、Vagrantゲストの9090ポートに転送
config.vm.network "forwarded_port", guest: 9090, host:9090
// プライベートアドレスを付与して、Vagrant内の他のVMと通信させる
config.vm.network "private_network", ip: "192.168.33.10"

Prometheusのインストール

VM1にPrometheusをインストールして、動かす

$ sudo yum install -y wget
$ wget https://github.com/prometheus/prometheus/releases/download/v2.16.0/prometheus-2.16.0.linux-amd64.tar.gz
$ tar xvf prometheus-2.16.0.linux-amd64.tar.gz
$ cd prometheus-2.16.0.linux-amd64
$ ./prometheus

ホスト上でhttp://localhost:9090に接続。Prometheus Web UIが表示された。

f:id:belial6:20200217003527p:plain

VM2(監視対象サーバ)の作成

Vagrantfile

// node_exporterの9100ポートを転送
config.vm.network "forwarded_port", guest: 9100, host:9100
// プライベートアドレスを付与して、Vagrant内の他のVMと通信させる
config.vm.network "private_network", ip: "192.168.33.11"

node_exporterのインストール

VM2にnode_exporterをインストールして、動かす

$ sudo yum install -y wget
$ wget http://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
$ tar xvf node_exporter-0.18.1.linux-amd64.tar.gz
$ cd node_exporter-0.18.1.linux-amd64
$ ./node_exporter
...
INFO[0000] Listening on :9100           source="node_exporter.go:170"

ホスト上でhttp://localhost:9100/metrics に接続(画像は一部)

f:id:belial6:20200217004706p:plain

Prometheus本体から、VM2のnode_exporterを監視する

ここは、次の章の「VM2(監視対象サーバの作成)」を実施してからやる。

prometheus.ymlの一番下の部分を以下のように編集して、prometheusを再起動

  - job_name: 'prometheus'
    static_configs:
    - targets:
       - 'localhost:9090'
       - '192.168.33.11:9100'   

[Status]→[Targets]を選択して、監視対象を確認する

  • 1つ目は、VM2の監視対象サーバ
  • 2つ目は、prometheus自分自身

f:id:belial6:20200217010301p:plain

HP DL360 G10にストレージドライバーを入れる

Windows Server 2016をインストールした際に、ディスクが見えなかったので、調べてみた。

環境

  • DL360 Gen10
  • Smart アレイ P408i-a SR Gen10 コントローラー
  • ディスク 4本、RAID 5

調査

HPEサポートセンターで検索した結果、以下を発見

HPE Smartアレイ Gen10コントローラードライバー for WS2012 R2, WS2016, WS2019

https://support.hpe.com/hpsc/swd/public/detail?swItemId=MTX_bd41c05a4be04fd4a66bed12c2

ドライバー

2つファイルがあるけど、両方いるっぽい。 * cp040553.compsig * cp040553.exe

インストール手順

Smartアレイコンポーネントをダウンロードして、実行する。

11/29 追記

ドライバーを入れたUSBを挿してフォルダを選択したが、「署名済みデバイスドライバーが見つかりませんでした。インストールメディアに正しいドライバーが含まれることを確かめてから、[OK]をクリックしてください。」と言われた。むーーー。

ここで、Intelligent Provisioningの試行をしてみることに・・・ その結果、なんとインストールできました!! とりあえず良かったけど・・・。

ちなみに、Intelligent Provisioningの使い方は、以下のサイトが参考になりました。

monogusa.hatenablog.com

Windows10にTomcat8をインストール

インストール

  1. ダウンロード
  2. 任意の場所に展開
  3. webapps以下のフォルダを削除(すべて削除)
    • docs, examples, host-manager, manager, ROOT

操作および設定

起動と停止の方法

  • bin\startup.bat
  • bin\shutdown.bat

ポート番号を変える

  • server.xmlの"Connector port=8080"の部分を修正