ぼぶろぐ -24ページ目

ぼぶろぐ

以前は、あいらぶLinux♪というタイトルでしたが、
最近はLinux以外のことも書いているので、タイトルを変更しました。
ぼぶちゃんのぶろぐでぼぶろぐです。

以下のサイトを参考にPPTPサーバを構築してみました。
違う部分は、VyattaではなくVyOSを使ったところです。
http://blog.serverworks.co.jp/tech/2013/12/27/vyatta_ppt-2/

 

VyOS とは、オープンソースで開発されているVyattaから派生したソフトウェアルータです。
https://ja.wikipedia.org/wiki/VyOS

 

構成は以下のようになっています。

 

Vyattaのコンフィグに設定した内容です。

$ configure

ローカルでユーザを認証
# set vpn pptp remote-access authentication mode local

接続ユーザの追加
# set vpn pptp remote-access authentication local-users username <USER> password <PASSWORD>

接続するPPTPクライアントのアドレスプールの設定
# set vpn pptp remote-access client-ip-pool start 10.1.0.100
# set vpn pptp remote-access client-ip-pool stop 10.1.0.200

外側と通信するインターフェースのアドレスを設定
# set vpn pptp remote-access outside-address 10.0.0.245

DNS設定
# set vpn pptp remote-access dns-servers server-1 8.8.8.8
# set vpn pptp remote-access dns-servers server-2 8.8.4.4

設定の保存
# commit
# save


ただ、上記の設定だけではVPN接続できませんでした。
調べたところVyOSにはバグがあって、設定を1つ追加する必要がありました。

http://bugzilla.vyos.net/show_bug.cgi?id=354

 

例えば、このような設定を追加します。

# set vpn pptp remote-access authentication require mschap-v2


この1行のために色々な設定を変更して確認したりしていたので、
できるまでかなり時間がかかってしまいました。

Zabbixで障害を検知したときに自動で電話する仕組みがほしいなと思っていたら、
便利そうなプラグインがあったので、試しに使ってみました。

 

Zabbix電話通知プラグイン「zabbix-twilio」
http://begood-technology.github.io/zabbix-twilio/

 

Zabbixがインストールされているサーバにログインして、
ダウンロードサイトからプラグインをダウンロードします。
使用しているサーバはamazonlinuxを使用しています。

$ wget https://github.com/begood-technology/zabbix-twilio/archive/1.1.zip

 

解凍します。

$ unzip 1.1.zip
Archive:  1.1.zip
ee4127487814ba15955d652dd4ee644bcc5aaf2b
   creating: zabbix-twilio-1.1/
 extracting: zabbix-twilio-1.1/.gitignore
  inflating: zabbix-twilio-1.1/LICENSE
  inflating: zabbix-twilio-1.1/Logger.php
  inflating: zabbix-twilio-1.1/README.md
  inflating: zabbix-twilio-1.1/config.php
   creating: zabbix-twilio-1.1/lib/
 extracting: zabbix-twilio-1.1/lib/.gitkeep
   creating: zabbix-twilio-1.1/logs/
 extracting: zabbix-twilio-1.1/logs/.gitkeep
  inflating: zabbix-twilio-1.1/twilio-call.php
  inflating: zabbix-twilio-1.1/zabbix-twilio.php


解凍したディレクトリを移動します。
ディレクトリ名は、zabbix-twilioにします。

$ sudo mv zabbix-twilio-1.1 /usr/lib/zabbix/alertscripts/
$ cd /usr/lib/zabbix/alertscripts/
$ sudo mv zabbix-twilio-1.1 zabbix-twilio

 

実行権限をつけます。

$ sudo chmod +x /usr/lib/zabbix/alertscripts/zabbix-twilio/twilio-call.php
$ sudo chmod 777 /usr/lib/zabbix/alertscripts/zabbix-twilio/logs

 

ドキュメントルートの下にzabbix-twilioという名前のディレクトリを作成します。
その後、zabbix-twilio.phpを作成したディレクトリ配下に移動します。

$ sudo mkdir /var/www/html/zabbix-twilio
$ sudo mv /usr/libza/zabbix/alertscripts/zabbix-twilio/zabbix-twilio.php /var/www/html/zabbix-twilio/

 

twilio-phpライブラリをインストールします。

$ cd ~
$ wget https://github.com/twilio/twilio-php/archive/latest.zip
$ unzip latest.zip
$ sudo mv twilio-php-latest /usr/lib/zabbix/alertscripts/zabbix-twilio/lib/

 

スクリプトと設定ファイルを編集します。
zabbix-twilio.phpはドキュメントルートが/var/www/htmlであれば変更なしで大丈夫です。

$ sudo cp -p /usr/lib/zabbix/alertscripts/zabbix-twilio/config.php /var/tmp/config.php_20160414
$ sudo vi /usr/lib/zabbix/alertscripts/zabbix-twilio/config.php

 

編集箇所
$ diff /usr/lib/zabbix/alertscripts/zabbix-twilio/config.php /var/tmp/config.php_20160414
8c8
< $SCRIPT_URL = 'http://xx.xx.xx.xx/zabbix-twilio/zabbix-twilio.php';
---
> $SCRIPT_URL = 'http://<Server IP>/zabbix-twilio/zabbix-twilio.php';
26c26
< $ACCOUNT_SID = 'xxxxxxxxxxxxxxxxxxxxxxx';
---
> $ACCOUNT_SID = '<ACCOUNT_SID>';
28c28
< $AUTH_TOKEN = 'xxxxxxxxxxxxxxxxxxxxxxx';
---
> $AUTH_TOKEN = '<AUTH_TOKEN>';
30c30
< $TWILIO_NUMBER = '+81xxxxxxxxxx';
---
> $TWILIO_NUMBER = '+81<TWILIO_NUMBER>';
63c63
< $ZABBIX_USER = 'Admin';
---
> $ZABBIX_USER = '<username>';
65c65
< $ZABBIX_PASS = 'zabbix';
---
> $ZABBIX_PASS = '<password>';


ACCOUNT_SIDとAUTH_TOKENはTwilioのアカウント情報から確認することができます。

 

あとは、以下の手順でZabbixの設定をすることで障害時に電話連絡がきます。
http://begood-technology.github.io/zabbix-twilio/usage.html

 

今回のやり方だと、電話連絡先が1つしか登録できないようなので、
複数登録するやり方を探してみます。

Amazon Linuxでタイムゾーンの変更方法は以下のサイトに記載されていました。

この方法でやってみました。

 

Linux インスタンスの時刻の設定

http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/set-time.html

 

$ date
Sun Apr 10 12:12:24 UTC 2016

デフォルトはUTCなので、JSTに変更します。

 

$ ls /usr/share/zoneinfo
Africa      Atlantic   Chile    Eire     GB       GMT+0      Indian       Japan      MST      Pacific     PRC      Singapore  UTC
America     Australia  CST6CDT  EST      GB-Eire  Greenwich  Iran         Kwajalein  MST7MDT  Poland      PST8PDT  Turkey     WET
Antarctica  Brazil     Cuba     EST5EDT  GMT      Hongkong   iso3166.tab  Libya      Navajo   Portugal    right    UCT        W-SU
Arctic      Canada     EET      Etc      GMT0     HST        Israel       MET        NZ       posix       ROC      Universal  zone.tab
Asia        CET        Egypt    Europe   GMT-0    Iceland    Jamaica      Mexico     NZ-CHAT  posixrules  ROK      US         Zulu

 

上記が選ぶことのできるタイムゾーンです。

ちょっとわかりにくいですが、1つの国で複数のタイムゾーンがある場合は、ディレクトリとなっていて、その中にいくつかのタイムゾーンがあります。例えば、Americaの配下は以下のようになっています。

 

$ ls /usr/share/zoneinfo/America
Adak            Blanc-Sablon   Cordoba       Fortaleza    Indiana        Maceio       Montevideo      Porto_Acre     Sao_Paulo      Toronto
Anchorage       Boa_Vista      Costa_Rica    Fort_Nelson  Indianapolis   Managua      Montreal        Port_of_Spain  Scoresbysund   Tortola
Anguilla        Bogota         Creston       Fort_Wayne   Inuvik         Manaus       Montserrat      Porto_Velho    Shiprock       Vancouver
Antigua         Boise          Cuiaba        Glace_Bay    Iqaluit        Marigot      Nassau          Puerto_Rico    Sitka          Virgin
Araguaina       Buenos_Aires   Curacao       Godthab      Jamaica        Martinique   New_York        Rainy_River    St_Barthelemy  Whitehorse
Argentina       Cambridge_Bay  Danmarkshavn  Goose_Bay    Jujuy          Matamoros    Nipigon         Rankin_Inlet   St_Johns       Winnipeg
Aruba           Campo_Grande   Dawson        Grand_Turk   Juneau         Mazatlan     Nome            Recife         St_Kitts       Yakutat
Asuncion        Cancun         Dawson_Creek  Grenada      Kentucky       Mendoza      Noronha         Regina         St_Lucia       Yellowknife
Atikokan        Caracas        Denver        Guadeloupe   Knox_IN        Menominee    North_Dakota    Resolute       St_Thomas
Atka            Catamarca      Detroit       Guatemala    Kralendijk     Merida       Ojinaga         Rio_Branco     St_Vincent
Bahia           Cayenne        Dominica      Guayaquil    La_Paz         Metlakatla   Panama          Rosario        Swift_Current
Bahia_Banderas  Cayman         Edmonton      Guyana       Lima           Mexico_City  Pangnirtung     Santa_Isabel   Tegucigalpa
Barbados        Chicago        Eirunepe      Halifax      Los_Angeles    Miquelon     Paramaribo      Santarem       Thule
Belem           Chihuahua      El_Salvador   Havana       Louisville     Moncton      Phoenix         Santiago       Thunder_Bay
Belize          Coral_Harbour  Ensenada      Hermosillo   Lower_Princes  Monterrey    Port-au-Prince  Santo_Domingo  Tijuana

 

タイムゾーンを日本に変更します。

 

$ sudo vi /etc/sysconfig/clock

ZONE="UTC" を ZONE="Japan"に変更して保存

$ sudo ln -sf /usr/share/zoneinfo/Japan /etc/localtime

$ sudo reboot

 

起動後にdateを実行すると、JSTに変更されています。

 

$ date
Sun Apr 10 21:17:34 JST 2016