読者です 読者をやめる 読者になる 読者になる

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

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



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

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

関数

Python

関数

print

len

文字列や配列の長さを取得する

pow

累乗を計算してかえす

range

配列を自動的に作成
1~99を出力する

for i in range(100):
  print i

27までの数字が3つ飛ばしで表示される。3の倍数が表示される。

for v in range(0, 30, 3):
  print(v)

自作関数

defとreturnというキーワードをします。
returnを書いたら関数は終了。
1プラスされる関数を作成できた。

def add_one(v):
  return v + 1

result = add_one(10)
print(result)