a stray sheep

お仕事周りの雑記帳

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"の部分を修正

Windows10にJDK8をインストール

  1. Java SE Downloadsにアクセス  https://www.oracle.com/technetwork/java/javase/downloads/index.html
  2. Java SE 8u191/Java SE 8u192 のJDK Downloadsをクリック
  3. ライセンス同意をチェックして、Windows x64のインストーラをダウンロード
  4. インストーラを実行
  5. 環境変数の設定
    • JAVA_HOME: C:\Program Files\Java\jdk1.8.0_191
    • PATH: %JAVA_HOME%\bin
  6. java -version で確認

Zabbix4.0 with PostgreSQL

Zabbix4.0を構築する。 データベースには、PostgreSQLを使う。 社内および検証用のため、細かいチューニングやセキュリティは考慮しない。

環境

  • CentOS 7.5
  • PostgreSQL10.0.2
  • Zabbix 4.0
  • オンラインインストール
  • すべて1台に入れる

OS側の設定

  • 時刻同期
  • SELinuxの無効
  • Firewalldの停止

PostgreSQL10のインストール

リポジトリのインストール

# yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm

PostgreSQLのクライアントとサーバーをインストール

# yum install postgresql10 postgresql10-server

環境変数の設定

# vi ~/.bashrc
//以下を追加
PATH=/usr/pgsql-10/bin:$PATH

# source ~/.bashrc

データベースクラスタの初期化

# postgresql-10-setup initdb
Initializing database ... OK

PostgreSQLサーバの自動起動有効&サービス起動

# systemctl enable postgresql-10
# systemctl start postgresql-10

postgresユーザのパスワード設定

# su - postgres
$ psql
postgres=# alter user postgres password 'postgres'

pg_hba.confの設定

$ vi $PGDATA/pg_hba.conf
//local、hostについて、METHODを"trust"に変更
local all all    trust
host all all 127.0.0.1/32 trust

リポジトリのオフ

# vi /etc/yum.repos.d/pgdg-10-centos.repo
enabled=1enabled=0

Zabbixのインストール

リポジトリのインストール

# rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
# yum-config-manager --enable rhel7-server-optional-rpms

Zabbixサーバとフロントエンドのインストール

# yum install zabbix-server-pgsql
# yum install zabbix-web-pgsql

PostgreSQLにzabbixユーザーを作成する

# su - postgres
$ createuser --pwprompt zabbix
パスワード: zabbix

zabbixのデータベースを作成する

$ createdb -O zabbix -E unicode -T template0 zabbix

zabbix用データベーススキーマの作成

$ zcat /usr/share/doc/zabbix-server-pgsql-4.0.0/create.sql.gz | psql -U zabbix zabbix

Zabbixサーバーの設定

# vi /etc/zabbix/zabbix_server.conf
//以下の設定であることを確認する
DBHost=
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix

Zabbixサーバの自動起動有効&サービス起動

# systemctl enable zabbix-server
# systemctl start zabbix-server

Zabbixフロントエンドの設定

# vi /etc/httpd/conf.d/zabbix.conf
//以下のタイムゾーンのみ設定
php_value date.timezone Asia/Tokyo

HTTPサーバの自動起動有効&サービス起動

# systemctl enable httpd
# systemctl start httpd

Zabbix WebUIの設定

  1. http://{Zabbixサーバのアドレス}/zabbix にアクセス
  2. トップ画面で、次へ
  3. Check of pre-requisites画面で、次へ
  4. Configure DB connection画面で、Password: zabbix を入力(その他はデフォルトでよいはず)
  5. Zabbix server details画面で、Nameに任意の名前を入力して、次へ
    • このNameの値は、ブラウザのタブに表示される
  6. Pre-installation summary画面で、次へ
  7. Install画面で、successfully のメッセージが出れば成功、Finishをクリックして完了
  8. Zabbixのログイン画面が表示されるので、ユーザ名:Admin、パスワード:zabbixを入力して、ログインする

その他

途中、少しはまったのでメモ。

事象

  • WebUIの設定中に、DBに接続できない事象が発生
  • /var/log/zabbix/zabbix_server.logに、以下のメッセージが出力
cannot use database "zabbix": database is not a Zabbix database
query failed: [0] PGRES_FATAL_ERROR:ERROR: リレーション users への権限がありません

原因

  • zabbixのデータベースを作成する際に、-U zabbix とユーザを指定するのが必要でした。

Packerで使用するguest_os_typesをVirtualBoxのVBoxManageコマンドで確認する

PackerでVirtualBoxVMを作成するのに、Packerのテンプレート内でguest_os_typesを指定するが、 この値は、VBoxManageコマンドで確認することができるので、ちょっと調べてみました。

VBoxManageコマンドでのOSタイプの表示

> cd C:\Program Files\Oracle\VirtualBox\
> VBoxManage list ostypes

次のような形式で表示される。使用可能なパラメータがたくさん表示される。

ID: Other
Description: Other/Unknown
Family ID: Other
Family Desc: Other
64 bit: false

//RHELの64bit
ID: RedHat_64
Description: RedHat (64-bit)
Family ID: Linux
Family Desc: Linux
64 bit: true

...

VirtualBoxVM作成画面で表示される値

  • "タイプ"の項目が、"Family Desc"の値
  • "バージョン"の項目が、"Description"の値

Packerのguest_os_typesに指定する値

  • "ID"の値を指定する

IDのリスト

Packerを使う場合は、これらを、guest_os_typesに指定することになるだろう。