月: 2015年6月

Vagrant CentOS7 上でdockerはじめてみた

Vagrant CentOS7 上でdockerはじめてみた

Vagrantbox.es
http://www.vagrantbox.es/

CentOS 7 x64 (Minimal, Shrinked, Guest Additions 4.3.26) (Monthly updates)
https://github.com/holms/vagrant-centos7-box/releases/download/7.1.1503.001/CentOS-7.1.1503-x86_64-netboot.box

↑のboxで起動しただけの初期状態からdockerをインストールする。

■dockerを探す

[vagrant@localhost ~]$ yum search docker
Loaded plugins: fastestmirror
・・・・・
============================================================================================================ N/S matched: docker ============================================================================================================
cockpit-docker.x86_64 : Cockpit user interface for Docker containers
docker-logrotate.x86_64 : cron job to run logrotate on docker containers
docker-python.x86_64 : An API client for docker written in Python
docker-registry.noarch : Registry server for Docker
docker-registry.x86_64 : Registry server for Docker
docker-selinux.x86_64 : SELinux policies for Docker
docker.x86_64 : Automates deployment of containerized applications
docker-devel.x86_64 : A golang registry for global request variables (source libraries)

  Name and summary matches only, use "search all" for everything.

■インストール

[root@localhost ~]# yum install docker

[root@localhost ~]# systemctl status docker.service
docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled)
   Active: inactive (dead)
     Docs: http://docs.docker.com

■いざ起動

[root@localhost ~]# systemctl start docker.service
Job for docker.service failed. See 'systemctl status docker.service' and 'journalctl -xn' for details.

動かない。。

[root@localhost ~]# systemctl status docker.service
docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled)
   Active: failed (Result: exit-code) since Fri 2015-06-26 03:37:05 UTC; 4min 2s ago
     Docs: http://docs.docker.com
  Process: 2467 ExecStart=/usr/bin/docker -d $OPTIONS $DOCKER_STORAGE_OPTIONS $DOCKER_NETWORK_OPTIONS $ADD_REGISTRY $BLOCK_REGISTRY $INSECURE_REGISTRY (code=exited, status=1/FAILURE)
 Main PID: 2467 (code=exited, status=1/FAILURE)

Jun 26 03:36:05 localhost.localdomain systemd[1]: Starting Docker Application Container Engine...
Jun 26 03:36:05 localhost.localdomain docker[2467]: time="2015-06-26T03:36:05Z" level=info msg="+job serveapi(unix:///var/run/docker.sock)"
Jun 26 03:36:05 localhost.localdomain docker[2467]: time="2015-06-26T03:36:05Z" level=info msg="Listening for HTTP on unix (/var/run/docker.sock)"
Jun 26 03:37:05 localhost.localdomain docker[2467]: time="2015-06-26T03:37:05Z" level=fatal msg="Shutting down daemon due to errors: error intializing graphdriver: exit status 1"
Jun 26 03:37:05 localhost.localdomain systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
Jun 26 03:37:05 localhost.localdomain systemd[1]: Failed to start Docker Application Container Engine.
Jun 26 03:37:05 localhost.localdomain systemd[1]: Unit docker.service entered failed state.

■以下のページを発見。

CentOS7でDockerを動かす場合
http://shimakaze.hatenablog.com/entry/2015/04/02/103449

■とりあえず「libdevmapper」インストール。

# yum -y install libdevmapper.so.1.02

[root@localhost ~]# systemctl start docker.service
Job for docker.service failed. See 'systemctl status docker.service' and 'journalctl -xn' for details.

[root@localhost ~]# systemctl status docker.service
docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled)
   Active: failed (Result: exit-code) since Fri 2015-06-26 03:45:26 UTC; 14s ago
     Docs: http://docs.docker.com
  Process: 2680 ExecStart=/usr/bin/docker -d $OPTIONS $DOCKER_STORAGE_OPTIONS $DOCKER_NETWORK_OPTIONS $ADD_REGISTRY $BLOCK_REGISTRY $INSECURE_REGISTRY (code=exited, status=1/FAILURE)
 Main PID: 2680 (code=exited, status=1/FAILURE)

Jun 26 03:45:26 localhost.localdomain systemd[1]: Starting Docker Application Container Engine...
Jun 26 03:45:26 localhost.localdomain docker[2680]: time="2015-06-26T03:45:26Z" level=info msg="+job serveapi(unix:///var/run/docker.sock)"
Jun 26 03:45:26 localhost.localdomain docker[2680]: time="2015-06-26T03:45:26Z" level=info msg="Listening for HTTP on unix (/var/run/docker.sock)"
Jun 26 03:45:26 localhost.localdomain docker[2680]: time="2015-06-26T03:45:26Z" level=fatal msg="Shutting down daemon due to errors: error intializing graphdriver: Error running DeleteDevice dm_task_run failed"
Jun 26 03:45:26 localhost.localdomain systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
Jun 26 03:45:26 localhost.localdomain systemd[1]: Failed to start Docker Application Container Engine.
Jun 26 03:45:26 localhost.localdomain systemd[1]: Unit docker.service entered failed state.

まだ動かない。。

■調べて以下のページをみつける。

[1.6.0][graphdriver] prior storage driver “devicemapper” failed: error intializing graphdriver #13008
https://github.com/docker/docker/issues/13008

[root@localhost lib]# pwd
/var/lib
[root@localhost lib]# rm -rf docker/

とりあえず消してみた。

[root@localhost ~]# systemctl start docker.service
Job for docker.service failed. See 'systemctl status docker.service' and 'journalctl -xn' for details.

[root@localhost ~]# systemctl status docker.service -l
docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled)
   Active: failed (Result: exit-code) since Fri 2015-06-26 03:51:46 UTC; 47s ago
     Docs: http://docs.docker.com
  Process: 15073 ExecStart=/usr/bin/docker -d $OPTIONS $DOCKER_STORAGE_OPTIONS $DOCKER_NETWORK_OPTIONS $ADD_REGISTRY $BLOCK_REGISTRY $INSECURE_REGISTRY (code=exited, status=1/FAILURE)
 Main PID: 15073 (code=exited, status=1/FAILURE)

Jun 26 03:51:45 localhost.localdomain systemd[1]: Starting Docker Application Container Engine...
Jun 26 03:51:46 localhost.localdomain docker[15073]: time="2015-06-26T03:51:46Z" level=info msg="+job serveapi(unix:///var/run/docker.sock)"
Jun 26 03:51:46 localhost.localdomain docker[15073]: time="2015-06-26T03:51:46Z" level=info msg="Listening for HTTP on unix (/var/run/docker.sock)"
Jun 26 03:51:46 localhost.localdomain docker[15073]: time="2015-06-26T03:51:46Z" level=fatal msg="Shutting down daemon due to errors: error intializing graphdriver: Unable to take ownership of thin-pool (centos-docker--pool) that already has used data blocks"
Jun 26 03:51:46 localhost.localdomain systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
Jun 26 03:51:46 localhost.localdomain systemd[1]: Failed to start Docker Application Container Engine.
Jun 26 03:51:46 localhost.localdomain systemd[1]: Unit docker.service entered failed state.

動かない・・・。

■一旦dockerを消す。

[root@localhost ~]# yum remove docker  

■とりあえずupdateする。

[root@localhost ~]# yum update

■もう一回いれてみる。

[root@localhost ~]# yum install docker

[root@localhost ~]# systemctl start docker

[root@localhost ~]# systemctl status docker
docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled)
   Active: active (running) since Fri 2015-06-26 03:57:52 UTC; 17s ago
     Docs: http://docs.docker.com
 Main PID: 1027 (docker)
   CGroup: /system.slice/docker.service
           └─1027 /usr/bin/docker -d --selinux-enabled

Jun 26 03:57:51 localhost.localdomain docker[1027]: time="2015-06-26T03:57:51Z" level=warning msg="Docker could not enable SELinux on the host system"
Jun 26 03:57:51 localhost.localdomain docker[1027]: time="2015-06-26T03:57:51Z" level=info msg="+job init_networkdriver()"
Jun 26 03:57:52 localhost.localdomain docker[1027]: time="2015-06-26T03:57:52Z" level=info msg="-job init_networkdriver() = OK (0)"
Jun 26 03:57:52 localhost.localdomain docker[1027]: time="2015-06-26T03:57:52Z" level=info msg="Loading containers: start."
Jun 26 03:57:52 localhost.localdomain docker[1027]: time="2015-06-26T03:57:52Z" level=info msg="Loading containers: done."
Jun 26 03:57:52 localhost.localdomain docker[1027]: time="2015-06-26T03:57:52Z" level=info msg="docker daemon: 1.6.2 ba1f6c3/1.6.2; execdriver: native-0.2; graphdriver: devicemapper"
Jun 26 03:57:52 localhost.localdomain docker[1027]: time="2015-06-26T03:57:52Z" level=info msg="+job acceptconnections()"
Jun 26 03:57:52 localhost.localdomain docker[1027]: time="2015-06-26T03:57:52Z" level=info msg="-job acceptconnections() = OK (0)"
Jun 26 03:57:52 localhost.localdomain docker[1027]: time="2015-06-26T03:57:52Z" level=info msg="Daemon has completed initialization"
Jun 26 03:57:52 localhost.localdomain systemd[1]: Started Docker Application Container Engine.

動いた・・・!

先に「libdevmapper.so.1.02」がはいってないといけなかったのか?

■動いたので自動起動に。

[root@localhost ~]# systemctl enable docker
ln -s '/usr/lib/systemd/system/docker.service' '/etc/systemd/system/multi-user.target.wants/docker.service'

■Dockerイメージの検索

[root@localhost ~]# docker search centos
INDEX       NAME                                    DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/centos                        The official build of CentOS.                   1087      [OK]       
docker.io   docker.io/tutum/centos                  Centos image with SSH access. For the root...   13                   [OK]
docker.io   docker.io/blalor/centos                 Bare-bones base CentOS 6.5 image                9                    [OK]
docker.io   docker.io/torusware/speedus-centos      Always updated official CentOS docker imag...   6                    [OK]
docker.io   docker.io/million12/centos-supervisor   Base CentOS-7 with supervisord launcher, h...   4                    [OK]
docker.io   docker.io/jdeathe/centos-ssh            CentOS-6 6.6 x86_64 / EPEL Repo. / OpenSSH...   3                    [OK]
docker.io   docker.io/layerworx/centos              A general CentOS 6 image with the EPEL6 an...   2                    [OK]
docker.io   docker.io/akroh/centos                  Centos 6 container that has been updated w...   0                    [OK]
docker.io   docker.io/nathonfowlie/centos-jre       Latest CentOS image with the JRE pre-insta...   0                    [OK]
docker.io   docker.io/pdericson/centos              Docker image for CentOS                         0                    [OK]

■Dockerイメージのダウンロード
とりあえず公式のcentosを取得する

[root@localhost ~]# docker pull docker.io/centos
Trying to pull repository docker.io/centos ...
7322fbe74aa5: Download complete
f1b10cd84249: Download complete
c852f6d61e65: Download complete
Status: Downloaded newer image for docker.io/centos:latest

■ダウンロードしたイメージの確認

[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
docker.io/centos    latest              7322fbe74aa5        7 days ago          172.2 MB

■Dockerコンテナの作成
docker runでコンテナの新規作成と実行の両方が行われる

[root@localhost ~]# docker run -it --name centos1 docker.io/centos:latest /bin/bash
Usage of loopback devices is strongly discouraged for production use. Either use `--storage-opt dm.thinpooldev` or use `--storage-opt dm.no_warn_on_loop_devices=true` to suppress this warning.
[root@f89ddd90d0fd /]# 

実行された。

docker run の主なオプション
-i:コンテナーの標準入力を開く。/bin/bashなどでコンテナーを操作する際に指定
-t:tty(端末デバイス)を確保する。/bin/bashなどでコンテナーを操作する際に指定
-d:バックグラウンドで実行する(後述)。既定では、コンテナーをフォアグラウンドで実行するため、Webサーバーやアプリケーションサーバーなど常時実行するコンテナーで指定
-p {ホストのポート番号}:{コンテナーのポート番号}:Dockerサーバーのホストとポートマッピングを構成

■コンテナにapache入れてみる。

[root@f89ddd90d0fd /]# yum install httpd

■一旦コンテナ停止

[root@f89ddd90d0fd /]# exit
exit

[Ctrl]+[d]キーでbashプロセスを終了できる。

コンテナを停止することなく、元のシェルに戻したい場合は[Ctrl-P]+[Ctrl-q]でコンテナのTTYを抜けられる。

■停止中のコンテナも含めてコンテナの状態を確認する

[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE                     COMMAND             CREATED             STATUS                     PORTS               NAMES
f89ddd90d0fd        docker.io/centos:latest   "/bin/bash"         9 minutes ago       Exited (0) 3 minutes ago                       centos1

■コンテナの起動

[root@localhost ~]# docker start centos1
centos1

[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE                     COMMAND             CREATED             STATUS              PORTS               NAMES
f89ddd90d0fd        docker.io/centos:latest   "/bin/bash"         10 minutes ago      Up 19 seconds                           centos1 

■コンテナへの再接続

[root@localhost ~]# docker attach centos1
Enter押す
[root@f89ddd90d0fd /]# 

■[Ctrl-P]+[Ctrl-q]でTTY抜けてみる。

[root@f89ddd90d0fd /]# [root@localhost ~]# 

■コンテナの停止

[root@localhost ~]# docker stop centos1
centos1

■コンテナの再起動
※コンテナのプロセスを強制終了して再度スタート

[root@localhost ~]# docker restart centos1
centos1

■コンテナのコミット

[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE                     COMMAND             CREATED             STATUS                     PORTS               NAMES
f89ddd90d0fd        docker.io/centos:latest   "/bin/bash"         About an hour ago   Exited (0) 7 seconds ago                       centos1

[root@localhost ~]# docker commit -a MOGUMAGU -m "CentOS7 installed Apache" centos1 localrepo:withApache
74fe551af11fbdbe8e5e4849fcd4dd580ce7057d80e976ceeaaf8b9750954756

保存したイメージの確認

[root@localhost ~]# docker images localrepo
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
localrepo           withApache          74fe551af11f        44 seconds ago      268.4 MB

イメージの作成履歴を見る

[root@localhost ~]# docker images -t
Warning: '-t' is deprecated, it will be removed soon. See usage.
└─f1b10cd84249 Virtual Size: 0 B
  └─c852f6d61e65 Virtual Size: 172.2 MB
    └─7322fbe74aa5 Virtual Size: 172.2 MB Tags: docker.io/centos:latest
      └─74fe551af11f Virtual Size: 268.4 MB Tags: localrepo:withApache

■コンテナの削除

[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE                     COMMAND             CREATED             STATUS                     PORTS               NAMES
f89ddd90d0fd        docker.io/centos:latest   "/bin/bash"         About an hour ago   Exited (0) 5 minutes ago                       centos1
[root@localhost ~]# docker rm centos1
centos1
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@localhost ~]# 

※保管が必要ならあらかじめdocker commitでイメージを保管しておくこと

■さっき作ったコンテナから起動

[root@localhost ~]# docker run -it --name centos2 localrepo:withApache /bin/bash
Usage of loopback devices is strongly discouraged for production use. Either use `--storage-opt dm.thinpooldev` or use `--storage-opt dm.no_warn_on_loop_devices=true` to suppress this warning.
[root@5cdc79690cee /]# 
[root@5cdc79690cee /]# yum info httpd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
Installed Packages
Name        : httpd
Arch        : x86_64
Version     : 2.4.6
Release     : 31.el7.centos
Size        : 9.4 M
Repo        : installed
From repo   : base
Summary     : Apache HTTP Server
URL         : http://httpd.apache.org/
License     : ASL 2.0
Description : The Apache HTTP Server is a powerful, efficient, and extensible
            : web server.

apache入ってる。

[Ctrl-P]+[Ctrl-q]でTTY抜ける

[root@5cdc79690cee ~]# [root@localhost ~]# 

コンテナの起動状態を確認。

[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE                  COMMAND             CREATED              STATUS              PORTS               NAMES
5cdc79690cee        localrepo:withApache   "/bin/bash"         About a minute ago   Up About a minute                       centos2

動いてる。

■webサーバとして起動する例
先ほどコミットしたlocalrepo:withApacheをベースにwebサーバを起動しブラウザから確認する。

[root@localhost ~]# docker run -d --name webserver --expose=80 --publish 80:80 localrepo:withApache /usr/sbin/httpd -D FOREGROUND 

上記でホストのipでブラウザアクセスしたらapacheの初期画面が表示される。

状態はこちら

[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE                  COMMAND                CREATED             STATUS                     PORTS                NAMES
6fd53d6fd905        localrepo:withApache   "/usr/sbin/httpd -D    3 minutes ago       Up 3 minutes               0.0.0.0:80->80/tcp   webserver
5cdc79690cee        localrepo:withApache   "/bin/bash"            46 minutes ago      Exited (0) 8 minutes ago                        centos2

実際のコンテンツなどはホストとボリュームを共有して保持しておくほうがいいみたい。

Composerを利用してのFuelPHP初期セットアップ

Composerを利用してのFuelPHP初期セットアップ

頻繁にセットアップするわけじゃないので毎回忘れるし、
その時々で方法が変わってたりするので現時点でのFuelPHP
インストール手順をメモ。

■参考
FuelPHP 1.7.2のComposerによるインストール
http://blog.a-way-out.net/blog/2014/07/14/fuelphp-1-7-2-composer-installation/

$ composer create-project fuel/fuel:dev-1.7/master ProjectName

タイムアウトしてしまった。

Failed to download fuel/core from source: The process "git clone --no-checkout 'git://github.com/fuel/core.git' 'fuel/core' && cd 'fuel/core' && git remote add composer 'git://github.com/fuel/core.git' && git fetch composer" exceeded the timeout of 300 seconds.

タイムアウトの対策
Why composer install timeouts after 300 seconds?
http://stackoverflow.com/questions/18917768/why-composer-install-timeouts-after-300-seconds

$ export COMPOSER_PROCESS_TIMEOUT=600

一回消してもう一度行う。

$ composer create-project fuel/fuel:dev-1.7/master ProjectName
Installing fuel/fuel (dev-1.7/master bafb42f2ab52968aea886ef1e6f341d8a62840c9)
  - Installing fuel/fuel (dev-1.7/master 1.7/master)
    Cloning 1.7/master

Created project in ProjectName
Loading composer repositories with package information
Installing dependencies (including require-dev)
  - Installing composer/installers (v1.0.21)
    Loading from cache

  - Installing fuel/docs (dev-1.7/master 473174d)
    Cloning 473174da2cf503c60d4a9935b71acfc31f0906d0

  - Installing fuel/core (dev-1.7/master e8c221a)
    Cloning e8c221af4cb685aefef20cc50a70f369eb37cb95

  - Installing fuel/auth (dev-1.7/master aa9bd2e)
    Cloning aa9bd2e5104026814ff516aacf03258f62a94a55

  - Installing fuel/email (dev-1.7/master 8fbf378)
    Cloning 8fbf378d74bac170a96cad96ba0aed77e319a865

  - Installing fuel/oil (dev-1.7/master ea37c3a)
    Cloning ea37c3a7fe8675fb3327327213b2eca55303933a

  - Installing fuel/orm (dev-1.7/master 5e05c30)
    Cloning 5e05c3068562548657fea69850a23b23f65a5545

  - Installing fuel/parser (dev-1.7/master 0cacd10)
    Cloning 0cacd10d7b1b8f92a0eeddce75c6ba2c0c28112f

  - Installing fuelphp/upload (2.0.2)
    Loading from cache

  - Installing psr/log (1.0.0)
    Loading from cache

  - Installing monolog/monolog (1.5.0)
    Loading from cache

  - Installing michelf/php-markdown (1.4.0)
    Loading from cache

monolog/monolog suggests installing mlehner/gelf-php (Allow sending log messages to a GrayLog2 server)
monolog/monolog suggests installing raven/raven (Allow sending log messages to a Sentry server)
monolog/monolog suggests installing doctrine/couchdb (Allow sending log messages to a CouchDB server)
monolog/monolog suggests installing ext-amqp (Allow sending log messages to an AMQP server (1.0+ required))
monolog/monolog suggests installing ext-mongo (Allow sending log messages to a MongoDB server)
Writing lock file
Generating autoload files
        Made writable: /home/user/public_html/ProjectName/fuel/app/cache
        Made writable: /home/user/public_html/ProjectName/fuel/app/logs
        Made writable: /home/user/public_html/ProjectName/fuel/app/tmp
        Made writable: /home/user/public_html/ProjectName/fuel/app/config
Do you want to remove the existing VCS (.git, .svn..) history? [Y,n]? Y 

$ cd ProjectName/
$ oil --version
Fuel: 1.7.3 running in "development" mode

とりあえずインストールは出来た。

■git管理と権限設定

$ git init
Initialized empty Git repository in /******/ProjectName/.git/

$ git add -A
$ git commit


$ oil refine install
        Made writable: /home/user/public_html/ProjectName/fuel/app/cache
        Made writable: /home/user/public_html/ProjectName/fuel/app/logs
        Made writable: /home/user/public_html/ProjectName/fuel/app/tmp
        Made writable: /home/user/public_html/ProjectName/fuel/app/config

■DIコンテナを入れておく

Fuel Dependency
https://github.com/fuelphp/dependency

$ vim composer.json 
$ composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing fuelphp/dependency (2.0.0)
    Downloading: 100%

Writing lock file
Generating autoload files

■アクセスURLの変更

アクセスするURLを調整するためにpublicディレクトリを任意の場所に任意の名前でコピー
この時assetsディレクトはコピーしないでおく。
fuel/core/config/asset.php

fuel/app/config
にコピーし

'paths' => array('assets/'),

の箇所を変更する。

■index.phpを消す

$ vim fuel/app/config/config.php
index_file' => false,

.htaccessの以下の部分のコメントを外す

# Remove index.php from URL
#RewriteCond %{HTTP:X-Requested-With} !^XMLHttpRequest$
#RewriteCond %{THE_REQUEST} ^[^/]*/index\.php [NC]
#RewriteRule ^index\.php(.*)$ $1 [R=301,NS,L]
↓
# Remove index.php from URL
RewriteCond %{HTTP:X-Requested-With} !^XMLHttpRequest$
RewriteCond %{THE_REQUEST} ^[^/]*/index\.php [NC]
RewriteRule ^index\.php(.*)$ $1 [R=301,NS,L]

これで駄目な場合は
RewriteBaseを指定してみる。

あとはnamespaceベースでの指定とかに変更したりする。

Vagrant:ゲストOSのディスク容量を増やしたときの作業ログ

Vagrantで立てたゲストの容量が8GBしかなかったので容量を20GBに増やしたときの作業ログ。

■環境
ホストOS:CentOS6.5
Vagrant:1.7.2
VirtualBox:4.3.28
ゲストOS:CentOS7

■ホスト側の作業場所

$ pwd
/home/user/VirtualBox VMs/cent7_default_1434608680280_85072

$ ll
合計 2961448
drwx------  3 user user       4096  6月 18 15:42 2015 ./
drwx------ 11 user user       4096  6月 18 15:24 2015 ../
drwx------  2 user user       4096  6月 18 15:24 2015 Logs/
-rw-------  1 user user 3033137152  6月 18 15:42 2015 box-disk1.vmdk
-rw-------  1 user user       8514  6月 18 15:42 2015 cent7_default_1434608680280_85072.vbox
-rw-------  1 user user       8514  6月 18 15:24 2015 cent7_default_1434608680280_85072.vbox-prev

■元々のvmdkファイルの確認

$ pwd
/home/user/VirtualBox VMs/tuat_163_cent7_default_1434608680280_85072

$ VBoxManage showhdinfo box-disk1.vmdk
UUID:           cd97ec61-426b-4d6b-9ae3-d79d07300179
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/user/VirtualBox VMs/tuat_163_cent7_default_1434608680280_85072/box-disk1.vmdk
Storage format: VMDK
Format variant: dynamic default
Capacity:       8192 MBytes
Size on disk:   2892 MBytes
In use by VMs:  cent7_default_1434608680280_85072 (UUID: 39b0d85e-cff7-40c3-b497-bc6b110fc49a)


■vmdkをvdiとしてクローン


$ VBoxManage clonehd box-disk1.vmdk box-disk1.vdi --format VDI
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: 3630f1b4-3090-4009-88eb-4d634da2e42f

$ ll
合計 5948496
drwx------  3 user user       4096  6月 18 17:37 2015 ./
drwx------ 11 user user       4096  6月 18 15:24 2015 ../
drwx------  2 user user       4096  6月 18 15:24 2015 Logs/
-rw-------  1 user user 3060793344  6月 18 17:37 2015 box-disk1.vdi
-rw-------  1 user user 3033137152  6月 18 15:42 2015 box-disk1.vmdk
-rw-------  1 user user       8514  6月 18 17:37 2015 cent7_default_1434608680280_85072.vbox
-rw-------  1 user user       8514  6月 18 15:42 2015 cent7_default_1434608680280_85072.vbox-prev

■vdiのサイズ変更

$ VBoxManage modifyhd box-disk1.vdi --resize 20480
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

20(GB) * 1024(MB) = 20480

■できたvdiの確認

$ VBoxManage showhdinfo box-disk1.vdi
UUID:           3630f1b4-3090-4009-88eb-4d634da2e42f
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/user/VirtualBox VMs/cent7_default_1434608680280_85072/box-disk1.vdi
Storage format: VDI
Format variant: dynamic default
Capacity:       20480 MBytes
Size on disk:   2919 MBytes

■ここからGUIのVirtualBoxの管理画面でHDDをVDIに差し替える

ここのCUIでのやり方がわからない・・・。

※あとで判明。。以下を参考に。

Vagrant on Mac上のCeontOS7のディスク容量を後から増やす

■HDDをVDIに差し替えたらゲストを起動
ここからゲストでの操作

fdiskで/dev/sdaの容量が増えている事を確認する。

# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000ac089

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    16777215     7875584   8e  Linux LVM

Disk /dev/mapper/centos-swap: 859 MB, 859832320 bytes, 1679360 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト

Disk /dev/mapper/centos-root: 7201 MB, 7201619968 bytes, 14065664 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト

増加したところに新しくパーティション、論理ボリュームを作成し容量を増やす。

■パーティションを追加

# fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

コマンド (m でヘルプ): n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): 
Using default response p
パーティション番号 (3,4, default 3): 3
最初 sector (16777216-41943039, 初期値 16777216): 
初期値 16777216 を使います
Last sector, +sectors or +size{K,M,G} (16777216-41943039, 初期値 41943039): 
初期値 41943039 を使います
Partition 3 of type Linux and of size 12 GiB is set

コマンド (m でヘルプ): p

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000ac089

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    16777215     7875584   8e  Linux LVM
/dev/sda3        16777216    41943039    12582912   83  Linux

「/dev/sda3」が追加された

■/dev/sda3のシステムをLinux LVMにする

コマンド (m でヘルプ): t
パーティション番号 (1-3, default 3): 3
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

コマンド (m でヘルプ): p

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000ac089

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    16777215     7875584   8e  Linux LVM
/dev/sda3        16777216    41943039    12582912   8e  Linux LVM

■反映して終了する

コマンド (m でヘルプ): w
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。

WARNING: Re-reading the partition table failed with error 16: デバイスもしくはリソースがビジー状態です.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
ディスクを同期しています。

■ゲストの再起動

# shutdown -r now

■Physical Volumeの状態を確認

# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               7.51 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              1922
  Free PE               0
  Allocated PE          1922
  PV UUID               zR6Hya-5HZV-3dT5-NQZA-b3gF-gGif-SA3K4d

■pvcreateコマンドでPhysical Volumeを作成する。

# pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created

■作成内容を確認。

# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               7.51 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              1922
  Free PE               0
  Allocated PE          1922
  PV UUID               zR6Hya-5HZV-3dT5-NQZA-b3gF-gGif-SA3K4d

  "/dev/sda3" is a new physical volume of "12.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sda3
  VG Name               
  PV Size               12.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               dJEJG3-j8DO-JWwn-cHyc-xeHR-cs5J-3jhgfT

■Volume GroupにPhysical Volumeを追加する

# vgextend centos /dev/sda3
  Volume group "centos" successfully extended

■Volume Groupの確認

# vgdisplay 
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               19.50 GiB
  PE Size               4.00 MiB
  Total PE              4993
  Alloc PE / Size       1922 / 7.51 GiB
  Free  PE / Size       3071 / 12.00 GiB
  VG UUID               mtWHXb-DYzV-cxFV-psLD-XvDR-sKjQ-lUZygi

増えてる。

■Logical Volumeの容量を増やす

増やしたいマウントポイントのLogical Volumeをdfコマンドで確認。

# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root   6.7G  2.5G  4.3G   37% /
devtmpfs                  236M     0  236M    0% /dev
tmpfs                     245M     0  245M    0% /dev/shm
tmpfs                     245M  4.3M  241M    2% /run
tmpfs                     245M     0  245M    0% /sys/fs/cgroup
/dev/sda1                 497M  166M  332M   34% /boot

今回の対象は「/dev/mapper/centos-root」

■lvdisplayコマンドでLogical Volumeの詳細を確認。

# lvdisplay
  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                IuMeqQ-dd1j-73Wo-tZLt-7wYA-KCaB-FZlS2B
  LV Write Access        read/write
  LV Creation host, time localhost, 2014-08-01 21:31:57 +0900
  LV Status              available
  # open                 2
  LV Size                820.00 MiB
  Current LE             205
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                V2bGxj-hmyn-PP1V-RNdJ-hSY1-PVwu-L3ekOr
  LV Write Access        read/write
  LV Creation host, time localhost, 2014-08-01 21:31:58 +0900
  LV Status              available
  # open                 1
  LV Size                6.71 GiB
  Current LE             1717
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1

■Logical Volumeのサイズを拡張。

# lvextend -L +12284 /dev/centos/root
  Size of logical volume centos/root changed from 6.71 GiB (1717 extents) to 18.70 GiB (4788 extents).
  Logical volume root successfully resized

ここの「12284」はvgdisplayで表示されたFree PE / SizeとPE Sizeをかけた値になる
3071 * 4.00 = 12284

■Logical Volumeの確認。

# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                IuMeqQ-dd1j-73Wo-tZLt-7wYA-KCaB-FZlS2B
  LV Write Access        read/write
  LV Creation host, time localhost, 2014-08-01 21:31:57 +0900
  LV Status              available
  # open                 2
  LV Size                820.00 MiB
  Current LE             205
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                V2bGxj-hmyn-PP1V-RNdJ-hSY1-PVwu-L3ekOr
  LV Write Access        read/write
  LV Creation host, time localhost, 2014-08-01 21:31:58 +0900
  LV Status              available
  # open                 1
  LV Size                18.70 GiB
  Current LE             4788
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1

【ここからファイルシステムのリサイズ】

■CentOS7でファイルシステムがxfsだったのでresize2fsの代わりにxfs_growfsを使用

# xfs_growfs /dev/centos/root 
meta-data=/dev/mapper/centos-root isize=256    agcount=4, agsize=439552 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=1758208, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 1758208 to 4902912

■出来た!

# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root    19G  2.5G   17G   14% /
devtmpfs                  236M     0  236M    0% /dev
tmpfs                     245M     0  245M    0% /dev/shm
tmpfs                     245M  4.3M  241M    2% /run
tmpfs                     245M     0  245M    0% /sys/fs/cgroup
/dev/sda1                 497M  166M  332M   34% /boot

■参考ページ

VirtualBoxのゲストOSのディスク容量を増やす
http://te2u.hatenablog.jp/entry/2015/04/20/012914

Vagrant VMのディスクサイズを後から拡張する方法
http://blog.dakatsuka.jp/2014/04/24/vagrant-hdd-resize.html

CentOS 7(XFS)でLVMディスク拡張でハマったこと
http://qiita.com/fetaro/items/d7dc74262633ba474bc8

昔契約したさくらインターネットのVPSでyum-updateonbootがonに 設定されていたのでoffにした件

昔契約したさくらインターネットのVPSでyum-updateonbootがonに
設定されていたのでoffにした。

さくらインターネットのサイトでは初回起動時のみ有効と書いて
あったんだけどなんでだろうか?

https://help.sakura.ad.jp/app/answers/detail/a_id/2126
起動デーモンの項目の「yum-updateonboot」。

今回上記に気づいたのはduplicityでのバックアップが出来なくなって
いたから。

バックアップができなくなったのがサーバの再起動をした日
からだった。

再起動をした理由は「VENOM」の対策のため。
※正確にはサーバを停止してその後管理パネルから起動した。

起動時にかなり時間がかかっていて、RPMをUPDATEする旨の文字が
出ていて気になっていた。

その後はduplicityでバックアップをとろうとすると以下のエラーが出ていた。

Traceback (most recent call last):
  File "/usr/bin/duplicity", line 45, in <module>
    from duplicity import collections
  File "/usr/lib64/python2.6/site-packages/duplicity/collections.py", line 29, in <module>
    from duplicity import path
  File "/usr/lib64/python2.6/site-packages/duplicity/path.py", line 36, in <module>
    from duplicity import librsync
  File "/usr/lib64/python2.6/site-packages/duplicity/librsync.py", line 29, in <module>
    import _librsync
ImportError: librsync.so.1: cannot open shared object file: No such file or directory

結局今回はepelリポジトリを使ってduplicityをyumでインストールしなおしたら正常にバックアップできるようになった。

# yum install duplicity

※もともとは「duplicityをCentOS6.3にインストールするメモ」の方法でインストールしていた。
http://www.mogumagu.com/wp/wordpress/?p=1162

ちなみにOSのバージョンはインストールしたときは

CentOS release 6.2 (Final)

だったのに今みたら以下になっていた。

CentOS release 6.6 (Final)

他にもVPSサーバはあるのになんで1つのサーバだけ設定が違っていたのか謎。

YAMAHA NVR500をCentOS7にインストールしたMRTGで負荷監視する設定

YAMAHA NVR500をCentOS7にインストールしたMRTGで負荷監視する設定

設定メモ

■参考
CentOS7で作るネットワークサーバ構築ガイドを参考

■環境例
ルータのIPを192.168.1.1とする
MRTGを入れるサーバのIPを192.168.1.166とする

[root@localhost ~]# cat /etc/redhat-release 
CentOS Linux release 7.1.1503 (Core) 

■CentOS7のサーバにMRTGをインストール

[root@localhost ~]# yum install mrtg

■コンフィグ設定

[root@localhost ~]# cfgmaker --out=/etc/mrtg/mrtg.cfg --global "workdir: /var/www/mrtg" --global "Language:eucjp" public@192.168.1.1
Use of uninitialized value $t in substitution (s///) at /bin/cfgmaker line 1375.
Use of uninitialized value $t in substitution (s///) at /bin/cfgmaker line 1376.
Use of uninitialized value $t in substitution (s///) at /bin/cfgmaker line 1377.
Use of uninitialized value $fs in pattern match (m//) at /bin/cfgmaker line 1382.
Use of uninitialized value $t in hash element at /bin/cfgmaker line 1383.
Use of uninitialized value $t in substitution (s///) at /bin/cfgmaker line 1375.
Use of uninitialized value $t in substitution (s///) at /bin/cfgmaker line 1376.
Use of uninitialized value $t in substitution (s///) at /bin/cfgmaker line 1377.
Use of uninitialized value $fs in pattern match (m//) at /bin/cfgmaker line 1382.
Use of uninitialized value $t in hash element at /bin/cfgmaker line 1383.
--base: Get Device Info on public@192.168.1.1:
SNMP Error:
no response received
SNMPv1_Session (remote host: "192.168.1.1" [192.168.1.1].161)
                  community: "public"
                 request ID: 132523945
                PDU bufsize: 8000 bytes
                    timeout: 2s
                    retries: 5
                    backoff: 1)
 at /usr/bin/../lib64/mrtg2/SNMP_util.pm line 651.
SNMPWALK Problem for 1.3.6.1.2.1.1 on public@192.168.1.1::::::v4only
 at /bin/cfgmaker line 951.
WARNING: Skipping public@192.168.1.1: as no info could be retrieved

Use of uninitialized value $comment_sysdescr in substitution (s///) at /bin/cfgmaker line 379.
Use of uninitialized value $sysname in concatenation (.) or string at /bin/cfgmaker line 412.
Use of uninitialized value $comment_sysdescr in concatenation (.) or string at /bin/cfgmaker line 412.
Use of uninitialized value $syscontact in concatenation (.) or string at /bin/cfgmaker line 412.
Use of uninitialized value $syslocation in concatenation (.) or string at /bin/cfgmaker line 412.
--base: Writing /etc/mrtg/mrtg.cfg

■エラーが出たのでルータ側でSNMPをざっくり有効化

NVR500の管理画面から実行したコマンド
snmp host any
snmp community read-only public
※これはざっくり設定なのでちゃんと制限したりしたほうが良いと思われます。

■もう一度コンフィグの設定

[root@localhost ~]# cfgmaker --out=/etc/mrtg/mrtg.cfg --global "workdir: /var/www/mrtg" --global "Language:eucjp" public@192.168.1.1
Use of uninitialized value $t in substitution (s///) at /bin/cfgmaker line 1375.
Use of uninitialized value $t in substitution (s///) at /bin/cfgmaker line 1376.
Use of uninitialized value $t in substitution (s///) at /bin/cfgmaker line 1377.
Use of uninitialized value $fs in pattern match (m//) at /bin/cfgmaker line 1382.
Use of uninitialized value $t in hash element at /bin/cfgmaker line 1383.
Use of uninitialized value $t in substitution (s///) at /bin/cfgmaker line 1375.
Use of uninitialized value $t in substitution (s///) at /bin/cfgmaker line 1376.
Use of uninitialized value $t in substitution (s///) at /bin/cfgmaker line 1377.
Use of uninitialized value $fs in pattern match (m//) at /bin/cfgmaker line 1382.
Use of uninitialized value $t in hash element at /bin/cfgmaker line 1383.
--base: Get Device Info on public@192.168.1.1:
--base: Vendor Id: Unknown Vendor - 1.3.6.1.4.1.1182.1.40
--base: Populating confcache
--base: Get Interface Info
--base: Walking ifIndex
--snpd:   public@192.168.1.1: -> 1 -> ifIndex = 1
--snpd:   public@192.168.1.1: -> 2 -> ifIndex = 2
--snpd:   public@192.168.1.1: -> 3 -> ifIndex = 3
--snpd:   public@192.168.1.1: -> 4 -> ifIndex = 4
--snpd:   public@192.168.1.1: -> 52 -> ifIndex = 52
--snpd:   public@192.168.1.1: -> 53 -> ifIndex = 53
--snpd:   public@192.168.1.1: -> 54 -> ifIndex = 54
--snpd:   public@192.168.1.1: -> 55 -> ifIndex = 55
--snpd:   public@192.168.1.1: -> 56 -> ifIndex = 56
--snpd:   public@192.168.1.1: -> 57 -> ifIndex = 57
--snpd:   public@192.168.1.1: -> 58 -> ifIndex = 58
--snpd:   public@192.168.1.1: -> 59 -> ifIndex = 59
--snpd:   public@192.168.1.1: -> 60 -> ifIndex = 60
--snpd:   public@192.168.1.1: -> 61 -> ifIndex = 61
--base: Walking ifType
--snpd:   public@192.168.1.1: -> 1 -> ifType = 6
--snpd:   public@192.168.1.1: -> 2 -> ifType = 6
--snpd:   public@192.168.1.1: -> 3 -> ifType = 1
--snpd:   public@192.168.1.1: -> 4 -> ifType = 20
--snpd:   public@192.168.1.1: -> 52 -> ifType = 24
--snpd:   public@192.168.1.1: -> 53 -> ifType = 24
--snpd:   public@192.168.1.1: -> 54 -> ifType = 24
--snpd:   public@192.168.1.1: -> 55 -> ifType = 24
--snpd:   public@192.168.1.1: -> 56 -> ifType = 24
--snpd:   public@192.168.1.1: -> 57 -> ifType = 24
--snpd:   public@192.168.1.1: -> 58 -> ifType = 24
--snpd:   public@192.168.1.1: -> 59 -> ifType = 24
--snpd:   public@192.168.1.1: -> 60 -> ifType = 24
--snpd:   public@192.168.1.1: -> 61 -> ifType = 24
--base: Walking ifAdminStatus
--snpd:   public@192.168.1.1: -> 1 -> ifAdminStatus = 1
--snpd:   public@192.168.1.1: -> 2 -> ifAdminStatus = 1
--snpd:   public@192.168.1.1: -> 3 -> ifAdminStatus = 1
--snpd:   public@192.168.1.1: -> 4 -> ifAdminStatus = 1
--snpd:   public@192.168.1.1: -> 52 -> ifAdminStatus = 1
--snpd:   public@192.168.1.1: -> 53 -> ifAdminStatus = 1
--snpd:   public@192.168.1.1: -> 54 -> ifAdminStatus = 1
--snpd:   public@192.168.1.1: -> 55 -> ifAdminStatus = 1
--snpd:   public@192.168.1.1: -> 56 -> ifAdminStatus = 1
--snpd:   public@192.168.1.1: -> 57 -> ifAdminStatus = 1
--snpd:   public@192.168.1.1: -> 58 -> ifAdminStatus = 1
--snpd:   public@192.168.1.1: -> 59 -> ifAdminStatus = 1
--snpd:   public@192.168.1.1: -> 60 -> ifAdminStatus = 1
--snpd:   public@192.168.1.1: -> 61 -> ifAdminStatus = 1
--base: Walking ifOperStatus
--snpd:   public@192.168.1.1: -> 1 -> ifOperStatus = 1
--snpd:   public@192.168.1.1: -> 2 -> ifOperStatus = 1
--snpd:   public@192.168.1.1: -> 3 -> ifOperStatus = 2
--snpd:   public@192.168.1.1: -> 4 -> ifOperStatus = 2
--snpd:   public@192.168.1.1: -> 52 -> ifOperStatus = 1
--snpd:   public@192.168.1.1: -> 53 -> ifOperStatus = 1
--snpd:   public@192.168.1.1: -> 54 -> ifOperStatus = 1
--snpd:   public@192.168.1.1: -> 55 -> ifOperStatus = 1
--snpd:   public@192.168.1.1: -> 56 -> ifOperStatus = 1
--snpd:   public@192.168.1.1: -> 57 -> ifOperStatus = 1
--snpd:   public@192.168.1.1: -> 58 -> ifOperStatus = 1
--snpd:   public@192.168.1.1: -> 59 -> ifOperStatus = 1
--snpd:   public@192.168.1.1: -> 60 -> ifOperStatus = 1
--snpd:   public@192.168.1.1: -> 61 -> ifOperStatus = 1
--base: Walking ifMtu
--snpd:   public@192.168.1.1: -> 1 -> ifMtu = 1500
--snpd:   public@192.168.1.1: -> 2 -> ifMtu = 1500
--snpd:   public@192.168.1.1: -> 3 -> ifMtu = 1500
--snpd:   public@192.168.1.1: -> 4 -> ifMtu = 1500
--snpd:   public@192.168.1.1: -> 52 -> ifMtu = 65535
--snpd:   public@192.168.1.1: -> 53 -> ifMtu = 65535
--snpd:   public@192.168.1.1: -> 54 -> ifMtu = 65535
--snpd:   public@192.168.1.1: -> 55 -> ifMtu = 65535
--snpd:   public@192.168.1.1: -> 56 -> ifMtu = 65535
--snpd:   public@192.168.1.1: -> 57 -> ifMtu = 65535
--snpd:   public@192.168.1.1: -> 58 -> ifMtu = 65535
--snpd:   public@192.168.1.1: -> 59 -> ifMtu = 65535
--snpd:   public@192.168.1.1: -> 60 -> ifMtu = 65535
--snpd:   public@192.168.1.1: -> 61 -> ifMtu = 65535
--base: Walking ifSpeed
--snpd:   public@192.168.1.1: -> 1 -> ifSpeed = 1000000000
--snpd:   public@192.168.1.1: -> 2 -> ifSpeed = 100000000
--snpd:   public@192.168.1.1: -> 3 -> ifSpeed = 64000
--snpd:   public@192.168.1.1: -> 4 -> ifSpeed = 128000
--snpd:   public@192.168.1.1: -> 52 -> ifSpeed = 100000000
--snpd:   public@192.168.1.1: -> 53 -> ifSpeed = 100000000
--snpd:   public@192.168.1.1: -> 54 -> ifSpeed = 100000000
--snpd:   public@192.168.1.1: -> 55 -> ifSpeed = 100000000
--snpd:   public@192.168.1.1: -> 56 -> ifSpeed = 100000000
--snpd:   public@192.168.1.1: -> 57 -> ifSpeed = 100000000
--snpd:   public@192.168.1.1: -> 58 -> ifSpeed = 100000000
--snpd:   public@192.168.1.1: -> 59 -> ifSpeed = 100000000
--snpd:   public@192.168.1.1: -> 60 -> ifSpeed = 100000000
--snpd:   public@192.168.1.1: -> 61 -> ifSpeed = 100000000
--base: Writing /etc/mrtg/mrtg.cfg

■mrtgコマンドの実行

[root@localhost ~]# LANG=ja_JP.eucJP mrtg /etc/mrtg/mrtg.cfg
2015-06-15 11:05:29, Rateup WARNING: /usr/bin/rateup could not read the primary log file for 192.168.1.1_1
2015-06-15 11:05:29, Rateup WARNING: /usr/bin/rateup The backup log file for 192.168.1.1_1 was invalid as well
2015-06-15 11:05:29, Rateup WARNING: /usr/bin/rateup Can't rename 192.168.1.1_1.log to 192.168.1.1_1.old updating log file
2015-06-15 11:05:29, Rateup WARNING: /usr/bin/rateup could not read the primary log file for 192.168.1.1_2
2015-06-15 11:05:29, Rateup WARNING: /usr/bin/rateup The backup log file for 192.168.1.1_2 was invalid as well
2015-06-15 11:05:29, Rateup WARNING: /usr/bin/rateup Can't rename 192.168.1.1_2.log to 192.168.1.1_2.old updating log file
[root@localhost ~]# LANG=ja_JP.eucJP mrtg /etc/mrtg/mrtg.cfg
[root@localhost ~]# LANG=ja_JP.eucJP mrtg /etc/mrtg/mrtg.cfg

■mrtg.confの設定を変更しローカルエリアから見えるようにする。
※あとEUC-JPで正しく表示できるようにoffにしておく

[root@localhost conf.d]# pwd
/etc/httpd/conf.d
[root@localhost conf.d]# vim mrtg.conf 
<Location /mrtg>
    Require local
    Require ip 192.168.1.0/24
    AddDefaultCharset off
    # Require host example.org
</Location>

■グラフの右端が最新になるようにする。また単位をビットにする

[root@localhost mrtg]# vim /etc/mrtg/mrtg.cfg
#Options[_]: growright, bits

↓

Options[_]: growright, bits

■インデックスファイルの作成

[root@localhost ~]# indexmaker /etc/mrtg/mrtg.cfg > /var/www/mrtg/index.html

今回の場合は以下のURLで表示されるはず
http://192.168.1.166/mrtg/

■cronの設定(5分毎)

[root@localhost ~]# vim /etc/cron.d/mrtg
[root@localhost ~]# cat /etc/cron.d/mrtg
*/5 * * * * root LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg --lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok

Ajaxzip3のGithub移行版へ移行

ajaxzip3のGithub移行版へ移行

以前はURLがhttpとhttpsで別だったのでajaxzip3を一本化するために↓のようなことをしてました・・・。

<script src=”//ajaxzip3.googlecode.com/svn/trunk/ajaxzip3/ajaxzip3.js” charset=”UTF-8″></script>
<script type=”text/javascript”>AjaxZip3.JSONDATA=”//ajaxzip3.googlecode.com/svn/trunk/ajaxzip3/zipdata”;</script>

でも最近動かなくなってました。。

なのでついでにGithub版に移行です。

Github移行したのを機にhttpとhttpsの一本化されてて素晴らしい!

<script src="https://ajaxzip3.github.io/ajaxzip3.js" charset="UTF-8"></script>

Google Codeのサービス廃止が決定しているので早めの移行が必要です。

ajaxzip3/ajaxzip3.github.io
https://github.com/ajaxzip3/ajaxzip3.github.io