ブログ名はまだ無い(仮)

インフラエンジニアのツイッターには書ききれないつぶやきです



「DRBDの仕組みを学ぶ」を連載させていただきました

DRBD仕組みを学ぶという連載を2015年の9月から約1年半連載をさせていただきました。
先日最終回が掲載されました。
個人的に全体を振り返ってみたいと思います。

DRBD仕組みを学ぶ
www.atmarkit.co.jp

DRBDは難しい?

私がDRBDを始めて触ったのは4年前ぐらいですが、当初の印象としてなんだか「とっつきにくいなあ」という印象でした。
ググッても出てくる情報がわかりにくいし、挙句に情報が間違っている?ものがあったりしました。

そんな経験から連載させていただいたものは基本的にわかりやすく丁寧に書いたつもりです。また記事掲載前に何も考えずに記事通りにコマンドを流して目的とする環境が構築できることも確認するよう心がけました。
記載してから少し月日が経過したものに関してはうまくいかないところがあるかもしれませんが、そこはご容赦いただければと思います。

DRBDのバージョン

第1回から第13回まではバージョン8.4
第14回から第16回まではバージョン9
を前提に書いております。

2017年5月現在ですと1対1のプライマリ/セカンダリ構成を作る場合は8.4の使用をオススメします。
SDS的な使い方をする場合のみDRBD9をオススメします。現時点では8.4と9は別ソフトのような考え方で良いと思います。用途に合わせて使用してください。
今後開発が進みバージョン9だけになる時がくるとは思います。

DRBD基本構成

連載の方で何度も書いてはいますがDRBDはデータをブロックデバイス単位でリアルタイムにレプリケーションするソフトです。
DRBDだけですと障害時に自動的に切り替えたりすることはできません。

自動切り替え

自動切り替えする際は
DRBD + Pacemaker + Corosyncを使います。
連載ですと第5回と第6回が該当します。

www.atmarkit.co.jp
www.atmarkit.co.jp

数年前ですとDRBD + Pacemaker + Heartbeatという構成もありましたがHeartbeatは開発が終了しているため、特別な事情がないかぎりHeartbeatは使用しない方は良いです。

手動切り替え

障害時に自動的に切り替えずに確認などをした後に手動で切り替える方がが都合が良い場合もあります。

手動で切り替える際は
DRBDのみ使います。
連載ですと第4回が該当します。

www.atmarkit.co.jp

遠隔地へのリプリケーション

遠隔地へのリプリケーションをする場合は
DRBD + DRBD Proxyを使います
連載ですと第7回が該当します。

www.atmarkit.co.jp

以上です。DRBDを使う方の手助けに少しでもなれば幸いです。

LibreNMSをインストールしてみた

先日Facebookでlibrenmsというツールを知り早速インストールしてみました。
ネットワーク内のサーバだったりスイッチだったりを管理できるツールみたいです。

以下に公式の手順があります。
github.com

これのとおりで上手くいきましたが、実際に自分が実施したものをメモ代わりに残しておきたいと思います。

インストール環境

私がインストールした環境は以下になります。
OS CentOS7.2
仮想環境

では早速インストール時のメモです。

データベースインストール

yum install mariadb-server mariadb

データベース起動

service mariadb start

データベース初期化

# mysql_secure_installation

<省略>

Set root password? [Y/n] Y           ←「Y」を入力
New password: dbpass         ←rootのパスワードを入力
Re-enter new password: dbpass        ←rootのパスワードを再入力
Password updated successfully!
Reloading privilege tables..
... Success!

<省略>

Thanks for using MariaDB!
#

データベース作成

データベースを作成します。私はdbpassというパスワードにしていますが、環境によって読み替えて実施ください。

# mysql -uroot -p
MariaDB [(none)]> CREATE DATABASE librenms;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost' IDENTIFIED BY 'dbpass';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit
Bye

MariaDB設定ファイル修正

エディタで設定ファイルを修正します。以下の例ではviエディタを使用しています。
[mysqld] セクションに追記します。

# vi /etc/my.cnf.d/server.cnf

<省略>

[mysqld]
innodb_file_per_table=1
sql-mode=""

<省略>

修正したらデータベースを再起動します。

# service mariadb restart

Webサーバインストール

ここは公式ページそのままでOKでした。
一応コピペしておきます。

# yum install epel-release
# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

# yum install php70w php70w-cli php70w-gd php70w-mysql php70w-snmp php70w-pear php70w-curl php70w-common httpd net-snmp mariadb ImageMagick jwhois nmap mtr rrdtool MySQL-python net-snmp-utils cronie php70w-mcrypt fping git

# pear install Net_IPv4-1.3.4
# pear install Net_IPv6-1.2.2b2

PHPファイル修正

PHPのタイムゾーン設定を修正します。
date.timezoneのコメントアウトを外して「Tokyo/Asia」を設定します。

# vi /etc/php.ini

<省略>

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Tokyo/Asia

<省略>

librenmsユーザを作成

以下のコマンドでユーザを作成します。

# useradd librenms -d /opt/librenms -M -r
# usermod -a -G librenms apache

ファイルダウンロード

Gitからファイルをダウンロードします。

# cd /opt
# git clone https://github.com/librenms/librenms.git librenms

Webインターフェイス設定

以下のコマンドでWebインターフェイス用ディレクトリを作成

# cd /opt/librenms
# mkdir rrd logs
# chmod 775 rrd

次に新規でlibrenms.confを作成します。

# vi /etc/httpd/conf.d/librenms.conf
<VirtualHost *:80>
  DocumentRoot /opt/librenms/html/
  ServerName  librenms.example.com
  CustomLog /opt/librenms/logs/access_log combined
  ErrorLog /opt/librenms/logs/error_log
  AllowEncodedSlashes NoDecode
  <Directory "/opt/librenms/html/">
    Require all granted
    AllowOverride All
    Options FollowSymLinks MultiViews
  </Directory>
</VirtualHost>

次にデフォルトファイルを削除します。

# rm -f /etc/httpd/conf.d/welcome.conf

Webサーバ再起動

以下のコマンドでWebサーバを再起動します。

# service httpd restart

Webインターフェイスよりlibrenmsをインストール

以下にブラウザでアクセスしてインストーラーを起動します。
http://<サーバIPアドレス>/install.php

アクセスすると以下のように表示されます。
必要なモジュールが全てインストールされて「yes」となっていることを確認します。
f:id:smile_0126:20160926141407p:plain
確認したら「Next Stage」をクリックします。

次にデータベースの情報を入力します。
DB Passだけ入力して「Next Stage」をクリックします。
f:id:smile_0126:20160926141632p:plain

問題がなければ以下のようにインストールが開始されます。
f:id:smile_0126:20160926141603p:plain

画面の一番したを確認します。
successfulとなっていることを確認します。確認したら「Goto Add User」をクリックします。
f:id:smile_0126:20160926141820p:plain

次にユーザを作成します。「ユーザ名」「パスワード」「メールアドレス」を入力します。
入力したら「Add User」をクリックします。
f:id:smile_0126:20160926142000p:plain

User has been added successfullyとなっていることを確認します。
確認したら「Generate Config」をクリックします。
f:id:smile_0126:20160926142130p:plain

以下は私の手順が悪かった可能性がありますが、コンフィグを作成できなかったために表示されたコンフィグを手動追記しました。
f:id:smile_0126:20160926142428p:plain

以下の手順で手動で追記しました。

# cd /opt/librenms/
# vi config.php

<表示されたものをコピペ>

ここまでで一応Webでのインストールは終わりです。
しかしインストールは終わっていないので手順に戻ってくださいとあります。
f:id:smile_0126:20160926142855p:plain

一応ログインできることを確認します。ブラウザで以下にアクセスします。
http://<サーバIPアドレス>/

成功していればログイン画面が表示されます。
f:id:smile_0126:20160926143206p:plain

ログインすると以下のような画面になります。
f:id:smile_0126:20160926143302p:plain

SNMP設定

ではインストール作業に戻ります。
SNMP設定をします。まずサンプルファイルをコピーします。

# cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf

次に設定を追記します。
環境に合わせて修正してください

# vi /etc/snmp/snmpd.conf

修正後に以下を実行します。

curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
chmod +x /usr/bin/distro
service snmpd restart

cron設定

次にcronを設定します。

# cp librenms.nonroot.cron /etc/cron.d/librenms

権限変更&サービス自動起動

以下のコマンドで権限とサービス自動起動設定を実施します。

# chown -R librenms:librenms /opt/librenms
# systemctl enable httpd
# systemctl enable mariadb

最終ステップ

以下を実行します。

# cd /opt/librenms
# ./validate.php
====================================
Version info:
Commit SHA: 8b68429a0619c627256c31299765ffddb2bdd9dd
DB Schema: 138
PHP: 7.0.10
MySQL: 5.5.50-MariaDB
RRDTool: 1.4.8
SNMP: NET-SNMP version: 5.7.2

====================================
[OK]      Database connection successful

Bacula7.4.2リリース

Baculaの最新版のリリース情報です。
最新版は7.4.2になります。(2016年8月4日現在)

7.4.1からの変更点

主な変更点はMySQL 5.7関連のバグ修正です。
MySQL 5.7を使っていない場合は早急なアップデートは必要ないとのことです。

その他の詳細は英語ですが以下をご参照ください。
http://blog.bacula.org/release-7-4-2/