Raspberry Pi OS raspi-config

2023/12/14 22:11 OS別::Linuxその他::技術情報
Raspberry Pi を利用したサーバの、初期に行うべき手順で raspi-config を実行します。
対象は、Raspbian GNU/Linux 12 (bookworm) になります。


raspi-config

以前までの Raspberry Pi OS では raspi-config の nonint モードで全て設定できたのですが、Raspbian GNU/Linux 12 (bookworm) では、変更されたパッケージの影響等で以前のバージョンから利用できなくなっている nonint モードがあるので CUI で一通り設定します。
No項目説明
1System OptionsConfigure system settings
2Display OptionsConfigure display settings
3Interface OptionsConfigure connections to peripherals
4Performance OptionsConfigure performance settings
5Localisation OptionsConfigure language and regional settings
6Advanced OptionsConfigure advanced settings
8UpdateUpdate this tool to the latest version
9About raspi-configInformation about this configuration tool
7 が飛んでいますが、表示上も存在しません。

1 System Options

No項目説明
S1Wireless LANEnter SSID and passphrase
S2AudioSelect audio out through HDMI or 3.5mm jack
S3PasswordChange password for the 'jimba' user
S4HostnameSet name for this computer on a network
S5Boot / Auto LoginSelect boot into desktop or to command line
S6Splash ScreenChoose graphical splash screen or text boot
S7Power LEDSet behaviour of power LED
S8BrowserChoose default web browser
サーバー用途として設定するので、RPi OS インストール の通りに設定している場合は、上記項目 S5 のみが対象になると思います。
S5 Boot / Auto Login
ここでは B1 を選択して <了解> します。
No項目説明
B1ConsoleText console, requiring user to login
B2Console AutologinText console, automatically logged in as 'example' user
B3DesktopDesktop GUI, requiring user to login
B4Desktop AutologinDesktop GUI, automatically logged in as 'example' user

2 Display Options

以下の設定項目がありますが、特に設定変更するものはありません。
No項目説明
D1UnderscanRemove black border around screen
D2Screen BlankingEnable/disable screen blanking
D3VNC ResolutionSet resolution for headless use
D4CompositeEnable/disable composite output

3 Interface Options

以下の設定項目がありますが、RPi OS インストール の通りに設定している場合は、特に設定変更するものはありません。
No項目説明
I1SSHEnable/disable remote command line access using SSH
I2VNCEnable/disable graphical remote desktop access
I3SPIEnable/disable automatic loading of SPI kernel module
I4I2CEnable/disable automatic loading of I2C kernel module
I5Serial PortEnable/disable shell messages on the serial connection
I61-WireEnable/disable one-wire interface
I7Remote GPIOEnable/disable remote access to GPIO pins

4 Performance Options

以下の設定項目がありますが、特に設定変更するものはありません。
No項目説明
P2Overlay File System Enable/disable read-only file system

5 Localisation Options

以下の設定項目がありますが、RPi OS インストール の通りに設定している場合は、L4 のみの設定変更となります。
No項目説明
L1LocaleConfigure language and regional settings
L2TimezoneConfigure time zone
L3KeyboardSet keyboard layout to match your keyboard
L4WLAN CountrySet legal wireless channels for your country
L4 WLAN Country
「JP Japan」を選択して <了解> すると、次のメッセージが表示されます。
Wireless LAN country set to JP
これは、Wi-Fi で使う電波(周波数)の範囲を、それぞれの国の事情に合わせて指定するもののようです。
そのため設定しない場合、違法電波を出力することがあります。

6 Advanced Options

以下の設定項目がありますが、RPi OS インストール の通りに設定している場合は、特に設定変更するものはありません。
No項目説明
A1Expand FilesystemEnsures that all of the SD card is available
A2Network Interface NamesEnable/disable predictable network i/f names
A3Network Proxy SettingsConfigure network proxy settings
A6WaylandSwitch between X and Wayland backends
A7Audio ConfigSet audio control system

8 Update

以下のコマンドを実行したのと同じく、Raspberry Pi OS をアップデートします。
$ sudo apt -y update && sudo apt -y upgrade
どこかで実行する必要があるので、ここで update を実行しておきます。

9 About raspi-config

raspi-config についてメッセージが表示されます。
記事を作成した時点では、raspi-config は Version: 20231108 でした。

RPi OS インストール

Raspberry Pi Imager を利用して Windows 端末で microSD カードに Raspberry pi OS をインストールする手順です。

準備するもの

前提として、インターネット接続環境があり、それぞれの機械が故障していないものとします。

Windows 端末

No名称備考
1Windows 端末 一式
2microSD カードライタ

Raspberry Pi 端末

No名称備考
1Raspberry Pi 3 Model B
2USB 電源
3microSD カード(16GB 以上のもの)

Windows 端末作業

基本的には、こちらの公式サイトにある作業を行います。
https://www.raspberrypi.com/documentation/computers/getting-started.html

Windows 端末

このページで紹介する手順は Windows 11 端末で実行しました。
Windows 環境
Windows 環境

Raspberry pi Imager ダウンロード

Windows 端末であれば、Windows 端末用の Raspberry Pi Imager をダウンロードします。
Raspberry Pi OS – Raspberry Pi

今回は、2023.7.9 時点で最新版だった v1.7.5 を利用しています。

Raspberry Pi Imager インストール

ダウンロードした「imager_1.6.2.exe」をダブルクリックして、起動するウィザードに従ってインストールします。
インストール開始
インストール開始

Install をクリックして、Raspberry Pi Imager のインストールを開始します。

進捗
進捗

進捗状況が表示されます。

起動
Raspberry Pi Imager 起動

インストールが完了したら、Raspberry Pi Imager を起動するボタンにチェックをつけたまま Finish をクリックします。
これで Raspberry Pi Imager が起動します。

Raspberry Pi Imager

起動

以下の画面で「OSを選ぶ」を選択します。
Raspberry Pi OS Imager
RPi OS Imager

OS

以下の画面で「Raspberry Pi OS (32-bit)」を選びます。
OS select
RPi OS Imager

ストレージ

以下の画面で、適切なストレージを選びます。
「OSを選ぶ」ボタンが、選択した OS の名前に変わります。
Storage
RPi OS Imager

ストレージ選択

差し込んだ MicroSD カードを選びます。
今回は 32GB の microSD カードを差しているので、E ドライブとしてマウントされている 31.3GB のものを選びます。
Storage select
RPi OS Imager

詳細な設定

「ストレージを選ぶ」ボタンが、選択したストレージに変わっています。

以下の画面で、右下のギアボタンを選びます。
Gear Button
RPi OS Imager

詳細な設定画面の表示

ここでは、必要に応じて入力します。
ホスト名
適切なホスト名を入力します。
SSH setting
RPi OS Imager
SSH 有効化
別途設定が不要になるので、ここで SSH 設定をしておきます。
SSH setting
RPi OS Imager
アカウント設定
デフォルトだった pi ユーザの代わりに、利用するユーザー名とパスワードを指定します。
Account
RPi OS Imager
Wi-Fi 設定
必要であれば設定します。
(サーバ利用であれば、基本的には不要なはずですが)
Wi-Fi setting
RPi OS Imager
ロケール設定
地域は設定しておくと、いろいろ表示周りがスッキリするので、指定しておきます。
Locale setting
RPi OS Imager
永続的な設定
変更不要です。

そのまま保存を選択します。
Eternal setting
RPi OS Imager

データ削除の確認

microSD カードに入っているデータを消して OS 設定しても良いかの確認を行います。
続けなければ OS インストールできないので、「はい」を選択します。
Delete announce
RPi OS Imager

表示確認

インストールの進行状況が表示されるので、興味があれば見ておきます。
Wriging progress
RPi OS Imager

終了処理

以下の画面が表示されたら「続ける」を選択します。
End
]

終了

最初の画面に戻るので、右上の「×」を選択してアプリを終了させます。
Raspberry Pi OS Imager
RPi OS Imager

microSD カードの入れ替え

microSD カードを、Windows 端末の SD カードリーダから、Raspberry Pi に差し替えます。

dhcp 環境であれば、電源を入れたあと、ネットワークからアクセス可能になっています。

接続確認

dhcp 環境の場合、ネットワーク上から Raspberry Pi を探す必要があります。

参考までに、MAC アドレスのベンダー ID を記載しますが、Raspberry Pi の MAC アドレスは増えることがあります。

MAC アドレスのベンダー ID
https://udger.com/resources/mac-address-vendor-detail?name=raspberry_pi_foundation
範囲備考
28:CD:C1:xx:xx:xx
B8:27:EB:xx:xx:xx
D8:3A:DD:xx:xx:xx
DC:A6:32:xx:xx:xx
E4:5F:01:xx:xx:xx

Windows プロンプト

コマンドプロンプトを起動して、ブロードキャストアドレス宛てに ping を送信して、arp を参照します。
> ping 192.168.x.255
> arp -a

ssh ログイン

Tera Term 等でリモートログインします。
Tera Term についての詳細は Tera Term の使い方 を参照してください。

adiary on RPi 12

2023/12/14 22:09 OS別::Linuxその他::技術情報
別途 adiary on RaspPi という記事で Raspberry Pi OS に adiary をインストールして、利用するところまで記事にしていますが、バージョンが上がったことでいくつか不都合があったり、仕様に手を入れたりしているので、新しく記事にしてみます。

前提条件

この記事を作るにあたって、以下の読者を想定しています。
  • CUI でのコマンド操作ができる。
  • TCP/IP の基礎知識をもっている。
  • 記事の内容を、自身の環境に読み替えることができる。

環境

筐体

Raspberry Pi 3 Model B を利用します。

Raspberry Pi OS バージョン

Debian 系 OS である、Raspberry Pi OS を利用します。
バージョン等は、以下の通りです。
$ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 12 (bookworm)"
NAME="Raspbian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

注意点

Debian 系で cgi を動作させる場合、通常は /usr/lib/cgi-bin/ に置くものなのですが、自身の都合で環境設定を変更しています。

環境準備

Raspberry Pi OS インストール

以下の順番で、手順を参照してください。
  1. RPi OS インストール

Raspberry Pi OS 管理外

DNS 設定および HTTPS 設定 (TLS) については、ドメインのレジストリ/レジストラや証明書の発行機関が関わるため、ここでは記載しません。

端末からテスト的に名前解決したい場合は hosts に記載すると良いでしょう。
対象のファイルパスは、以下の通りです。
C:\Windows\System32\drivers\etc
例えば、192.168.10.10 が Raspberry Pi サーバで、example.jp という名前でアクセスしたい場合、上のファイルに次のように記載します。
192.168.10.10 example.jp
この設定を行った端末からは、192.168.10.10 に対して example.jp という名前でアクセスできるようになります。

Raspberry Pi OS 各種設定

以下の順番で、手順を参照してください。
  1. Raspberry Pi OS raspi-config
  2. Raspberry Pi OS 実行環境整備
  3. Raspberry Pi OS IPv4 静的設定
  4. Raspberry Pi OS NTP 設定

前提パッケージのインストール

以下の順番で、手順を参照してください。
  1. apache2 設定
  2. adiary 関連ライブラリ

adiary パッケージインストール(tar ボウル利用)

バージョンごとにしばらくバックアップ環境を残したいので、基本的にはこちらを利用しています。

ログ出力ディレクトリ作成

デフォルトより1段下げてログ出力したいので、専用ディレクトリを作成します。
$ sudo mkdir /var/log/apache2/adiary
ちなみに、apache の環境設定ファイルで $APACHE_LOG_DIR と書きますが、/var/log/apache2/ を指します。

作業準備

作業環境を整備します。
$ grep www /etc/passwd
$ cd /var/
$ ls -ld /var/www
drwxr-xr-x 3 root root 4096  7月  9 17:37 /var/www
$ sudo chown www-data:adm www
$ ls -ld /var/www
drwxr-xr-x 3 www-data www-data 4096  7月  9 17:37 /var/www
$ sudo su -s /bin/bash - www-data
$ pwd
/var/www
$ cp /etc/skel/.bashrc .
$ vi .bashrc
# umask
umask 027
$ diff .bashrc /etc/skel/.bashrc
114,116d113
<
< # umask
< umask 027
$ . .bashrc

ダウンロード(tar ボウル)

https://adiary.org/pub/adiary/image/download/release/ にアクセスして、最新版を取得します。
ここでは、執筆時に最新版であった adiary-3.50h.tar.bz2 を利用します。
$ curl https://adiary.org/pub/adiary/image/download/release/adiary-3.50h.tar.bz2 --output adiary-3.50h.tar.bz2
$ ls -l
合計 4324
-rw-r----- 1 www-data www-data 4421745 12月 12 21:26 adiary-3.50h.tar.bz2
drwxr-xr-x 2 root     root        4096 12月 12 21:32 html
$ sha256sum adiary-3.50h.tar.bz2
fb3beaea3ae1efdd3ed9855cd2f0ea2fe8c11299a9bc8864710591f80842f1a6  adiary-3.50h.tar.bz2
$ tar tvf adiary-3.50h.tar.bz2
$ tar xf adiary-3.50h.tar.bz2
$ ls -l
合計 4328
drwxr-x--- 13 www-data www-data    4096 10月 16 11:28 adiary-3.50h
-rw-r-----  1 www-data www-data 4421745 12月 12 21:26 adiary-3.50h.tar.bz2
drwxr-xr-x  2 root     root        4096 12月 12 21:32 html
$ ln -s adiary-3.50h adiary
$ ls -l
合計 4328
lrwxrwxrwx  1 www-data www-data      12 12月 12 21:34 adiary -> adiary-3.50h
drwxr-x--- 13 www-data www-data    4096 10月 16 11:28 adiary-3.50h
-rw-r-----  1 www-data www-data 4421745 12月 12 21:26 adiary-3.50h.tar.bz2
drwxr-xr-x  2 root     root        4096 12月 12 21:32 html
$ exit

adiary 環境構築

ここからは、初期設定を記述します。

サーバ移行とかシステム復旧のような、データを上書きする場合はここで処理を止めます

Apache2 設定

adiary のインストール後でなければ行えない Web 公開設定を行います。
設定ファイル作成のための事前調査
adiary が制限を入れたいディレクトリは .htaccess ファイルが置かれています。
.htaccess ファイルを無効にし、すべて apache の設定ファイルに記述するようにしているため、ファイルを探しておきます。
$ sudo find /var/www/adiary -name .htaccess
./adiary-3.50h/lib/.htaccess
./adiary-3.50h/skel.local/.htaccess
./adiary-3.50h/info/.htaccess
./adiary-3.50h/plugin/.htaccess
./adiary-3.50h/__cache/.htaccess
./adiary-3.50h/data/.htaccess
./adiary-3.50h/skel/.htaccess
設定ファイルの作成
上記の制限内容を踏まえて、設定ファイルを作成します。
$ cd /etc/apache2/sites-available
$ sudo vi 001-adiary.conf
(Config writing...)
$ sudo cat 001-adiary.conf
<VirtualHost *:80>
    ServerName  ttm.jimba.ddo.jp
    ServerAdmin xxx@jimba.ddo.jp
    DocumentRoot /var/www/adiary

    <Directory /var/www/adiary>
        Options ExecCGI
        AllowOverride None

        # Rewite module
        RewriteEngine   On
        RewriteCond     %{REQUEST_FILENAME}  !-f
        RewriteRule     ^(.*)$               adiary.cgi/$1   [L]

    </Directory>

    <Directory /var/www/adiary/__cache>
        order allow,deny
        deny from all
    </Directory>

    <Directory /var/www/adiary/data>
        order allow,deny
        deny from all
    </Directory>

    <Directory /var/www/adiary/skel>
        order allow,deny
        deny from all
    </Directory>

    <Directory /var/www/adiary/plugin>
        order allow,deny
        deny from all
    </Directory>

    <Directory /var/www/adiary/info>
        order allow,deny
        deny from all
    </Directory>

    <Directory /var/www/adiary/lib>
        order allow,deny
        deny from all
    </Directory>

    <Directory /var/www/adiary/skel.local>
        order allow,deny
        deny from all
    </Directory>

    ## CustomLog
    # Variable setting - IP address
    SetEnvIf Remote_Addr 192.168.  local_network suppres-log

    # Variable setting - Crawler
    SetEnvIf User-Agent "BLEXBot"        crawler suppres-log
    SetEnvIf User-Agent "bingbot"        crawler suppres-log
    SetEnvIf User-Agent "Googlebot"      crawler suppres-log
    SetEnvIf User-Agent "Twitterbot"     crawler suppres-log
    SetEnvIf User-Agent "Applebot"       crawler suppres-log
    SetEnvIf User-Agent "DataForSeoBot"  crawler suppres-log
    SetEnvIf User-Agent "DotBot"         crawler suppres-log
    SetEnvIf User-Agent "Bytespider"     crawler suppres-log
    SetEnvIf User-Agent "GPTBot"         crawler suppres-log
    SetEnvIf User-Agent "LivelapBot"     crawler suppres-log

    # Variable setting - Site (Directory)
    SetEnvIf Request_URI "/coffee"       coffee suppres-log

    ErrorLog ${APACHE_LOG_DIR}/ttm/error.log

    # Log output
    CustomLog ${APACHE_LOG_DIR}/adiary/local-access.log combined env=local_network
    CustomLog ${APACHE_LOG_DIR}/adiary/crawler-access.log combined env=crawler
    CustomLog ${APACHE_LOG_DIR}/adiary/coffee-access.log combined env=coffee
    CustomLog ${APACHE_LOG_DIR}/adiary/access.log combined env=!suppres-log

</VirtualHost>
【参考情報】/var/www/adiary/.htaccess に書きたい内容は、上記主設定ファイル (201-adiary.conf) の <Directory /var/www/adiary> ~ </Directory> の中に書く。

根拠は、apache2 公式サイトより引用した以下の通り。
普通は可能であれば .htaccess ファイルの使用は 避けてください。.htaccess ファイルに書こうと考えるようなすべての設定は、サーバの主設定ファイルの セクションで同じように行なうことができます。
Apache HTTP Server Tutorial: .htaccess files - Apache HTTP Server Version 2.4
ログローテーション設定
デフォルトのディレクトリにログを出力していれば不要なのですが、分かりやすさ優先で階層を作ったので、ログローテーション設定を追加します。
$ sudo cp -p /etc/logrotate.d/apache2 /etc/logrotate.d/adiary
$ vi /etc/logrotate.d/adiary
$ diff /etc/logrotate.d/apache2 /etc/logrotate.d/adiary
1c1
< /var/log/apache2/adiary/*.log {
---
> /var/log/apache2/*.log {
$ sudo systemctl status logrotate
特にサービス再起動とかは不要のよう。
設定ファイル有効化
設定ファイルを有効化する。
$ sudo a2ensite 001-adiary
Enabling site 201-adiary.
To activate the new configuration, you need to run:
  systemctl reload apache2
$ sudo apachectl configtest
$ sudo systemctl reload apache2
不要ファイル削除
また、不要になった設定ファイルは、混乱のもとなので消しておきます。
$ sudo find /var/www/adiary -name ".htaccess" -exec rm {} \;

Web 上での設定

DNS へ登録した URL (本サイトならば http://ttm.jimba.ddo.jp/) へアクセスして、root アカウント登録や、個別アカウントの登録などを行います。
root アカウント登録
案内にしたがって、管理者登録を行います。
http://ttm.jimba.ddo.jp/adiary.cgi?user/add
登録すると、登録した管理者ユーザでログインし直すようアナウンスがあるので、ログインし直します。
個別アカウント登録
ブログを更新するユーザ等、個別にアカウントを作成します。

Web での設定後

初期画面からのリダイレクト設定
初期画面から作成したブログ画面へ移動するため index.html を書き換えます。
$ cd /var/www/adiary
$ cp -p index.html{,_backup_$(date +'%Y%m%d')}
$ cat /dev/null > index.html
$ vi index.html
(書き換え)
$ cat index.html
<html>
  <head>
    <meta http-equiv="Refresh" content="0;URL=adiary.cgi">
  </head>
</html>
$ 
robots.txt
ボットに公開/非公開したい情報を教える設定。

以下はすべてのクロウラを拒絶する例

/var/www/adiary/robots.txt
User-agent: *
Disallow:

Zabbix 5.2 on AWS

2021/05/08 17:37 OS別::Linuxその他::技術情報

Zabbix 5.2 on AWS

【注意】まず、このページは個人的な備忘録であり、自分が分かる部分はいろいろとスキップしています。参考にされませぬよう。

例)Zabbix へブラウザでアクセスする方法は、もともと準備していた EC2 インスタンスに SSH でアクセスしてポートフォワードを設定し、xrdp をインストールした EC2 に RDP している。



全体構成

このページでは、Zabbix 5.2 の設定を、公式手順をもとにカスタマイズしています。
https://www.zabbix.com/jp/download

また、フロントエンドとしてのシステム要件は、次のページを参照しています。
https://www.zabbix.com/documentation/current/manual/installation/requirements

公式手順では、サーバを設定 → DB 設定 → Agent 設定という流れになっています。

DB をサーバ上に構築するためにはスマートな流れですが、RDS を利用する場合は DB を先に準備できるので、作業しておきます。

それから、このページでは企業が利用するような手順書としては余計な情報も大量に記載しているので、そのままでは利用できないことに注意してください。
構成概要
以下の構成で、構築します。
Zabbix Server
仕事で AWS クラウドでの構築という手段がとれることを確認するのが目的です。

Zabbix の公式では、Red Hat Enterprise Linux / CentOS / Oracle Linux / Ubuntu / Debian / SUSE Linux Enterprise Server / Raspberry Pi OS / Ubuntu (arm64) に対応しています。

Amazon Linux 2 は、おそらく Cent OS 7 の手順で使えそうに思いましたが、一応 RHEL 8 を選択します。
ハードウェア
クラウド上のインスタンス「AWS EC2 (t2.micro) 」を利用するため、ハードウェアは持ちません。
ソフトウェア
Zabbix 用のサブネットに、次のインスタンスを作ります。
項目内容備考
OSRHEL 8構築時には最新化する
DBMySQLAmazon RDS を利用
アプリZabbix Server 5.2
Zabbix Clientサーバ自身の管理用
PHP 7.3Zabbix フロントエンドで利用
要件として PHP 7.2.5 が求められていますが、RHEL8 はデフォルトで PHP 7.2.4 がインストールされます。
また、PHP 8.0 はサポートされていません。

Zabbix 5.2 のフロントエンドの要件
https://www.zabbix.com/documentation/current/manual/installation/requirements

そのため PHP 7.3 をインストールします。
ネットワーク
Zabbix サーバを置くネットワークのサンプルとして 172.16.10.10 を静的に指定します。

これはプライベートサブネットなので、Web アクセスは外部からインターネット接続で RDP できる EC2 インスタンスから参照します。

実際に確認した方法としては、パブリックサブネットに SSH 通信ができる Linux インスタンスを置いて、ポートフォワードを利用して RDP できるインスタンスからブラウザによって参照しています。

業務として構築する場合は Basic 認証等も検討し、パブリックサブネットに配置しても良いでしょう。
Zabbix Agent
Agent は、以下の構成で構築します。
ハードウェア
  • Amazon Linux 2
サンプルとして、Public subnet に Amazon Linux 2 のインスタンスを作ります。
ソフトウェア
適当なサブネットに、次のインスタンスを作ります。
項目内容備考
OSAmazon Linux 2
アプリZabbix Agent 5.2
Zabbix Clientサーバ自身の管理用
ネットワーク
サンプルとして、パブリックサブネットに構築します。
構成図
このページで作成する Zabbix の構成図を次に示す。
zbx5.2 + rds 構成図
Zabbix 5.2 + RDS (MySQL) 構成図
Zabbix Agent をインストールする Client に ssh で接続する想定です。
また Client には xrdp もインストールして ssh ポートフォワードから RDP しますが、こちらについては目的の動作ではないため割愛します。
作業の流れ
このページは、以下の流れで作業します。
  1. RDS で DB を用意
  2. EC2 で Zabbix Server を用意
  3. Zabbix Server で設定
  4. Zabbix Agent を設定

セキュリティグループの作成

左ペインの「セキュリティ」から「セキュリティグループ」を選択します。

Zabbix Server は 10051 番ポートで Zabbix Agent からのアクセスに応答します。
Zabbix Agent は 10050 番ポートで Zabbix Server からのアクセスに応答します。
RDS 用
基本的な詳細
セキュリティグループの、基本的な詳細を入力します。
項目内容
セキュリティグループ名Zabbix RDS
説明Zabbix DB
VPC(作成した VPN を選択)
説明には、日本語が使えない模様……。
インバウンドルール
RDS は 3306 番ポートで Zabbix Server からのアクセスに応答します。
タイププロトコルポート範囲ソース説明
MYSQL/AuroraTCP3306172.16.10.0/24
アウトバウンドルール
特に制限を設けません。
Zabbix Server 用
基本的な詳細
セキュリティグループの、基本的な詳細を入力します。
項目内容
セキュリティグループ名Zabbix
説明Zabbix Servers Access
VPC(作成した VPN を選択)
説明には、日本語が使えない模様……。

インバウンドルール
Zabbix Server は 10051 番ポートで Zabbix Agent からのアクセスに応答します。
他のサブネットから、Zabbix サーバに Agent の情報を送るための設定します。

タイププロトコルポート範囲ソース説明
カスタム TCPTCP10051172.16.0.0/16Agent による Zabbix サーバへのアクセス
HTTPTCP80172.16.0.0/16Web ブラウザによる Zabbix サーバへのアクセス
HTTPTCP443172.16.0.0/16Web ブラウザによる Zabbix サーバへのアクセス
SSHTCP22172.16.0.0/16SSH による Zabbix サーバへのアクセス

Zabbix Agent 側のセキュリティルールに、TCP/10050 ポートのインバウンドルールを付与してください。
なお、アクセス端末については、パブリックサブネットの Client を想定しています。
アウトバウンドルール
特に制限を設けません。
制限を設ける場合は、次の2点に注意。
Zabbix サーバが Agent に対してアクセスするための TCP/10050
Zabbix サーバが RDS に対してアクセスするための TCP/3306
Zabbix Agent 用
基本的な詳細
セキュリティグループの、基本的な詳細を入力します。
項目内容
セキュリティグループ名Zabbix Agent
説明Zabbix Zagents Access
VPC(作成した VPN を選択)

インバウンドルール
Zabbix Agent は 10050 番ポートで Zabbix Server からのアクセスに応答します。
他のサブネットから、Zabbix サーバに Agent の情報を送るための設定です。

タイププロトコルポート範囲ソース説明
カスタム TCPTCP10050172.16.0.0/16Zabbix Server による Agent へのアクセス
Agent が Linux の場合は TCP/22 を、Windows の場合は TCP/3389 も必要と思われます。
デフォルトでは、セキュリティグループを5つまで同時に適用できるため、分割したほうが良さそうです。
アウトバウンドルール
特に制限を設けません。
制限を設ける場合は、次の2点に注意。
Zabbix サーバが Agent に対してアクセスするための TCP/10050
Zabbix サーバが RDS に対してアクセスするための TCP/3306

ネットワーク構成

VPC の作成
デフォルト VPC を利用する場合は必要ない作業ですが、今回は別途行うものとします。
サンプルとして、上記構成図のとおり 172.16.0.0/16 の VPC を作成します。
サブネットの定義
また、Amazon RDS 用のサブネットを2つ作るものとします。

RDS は、AZ 2つ以上を束ねたマルチ AZ 構成にする必要があります。
なので VPC 作成 → サブネット作成 → サブネットグループに指定 → データベース作成をお行います。

Amazon RDS にて DB を構築したいので、AWS マネジメントコンソールから VPC にアクセスします。
パブリックサブネット
DMZ 用サブネット(Public)
外部と接するサブネットを作成します。
172.16.0.0/24 として話を進めます。

ここには Internet Gateway や NAT Gateway など、インターネット接続を行うためのインスタンスを置くことになります。
Zabbix がインターネットにアクセスする必要があるなら、ここに Zabbix サーバを立てても良いです。

パブリックサブネットの要件となる、Internet Gateway を置きます。
また、プライベートサブネットがインターネットに抜けるために必要な NAT Gateway もここに置きます。
Internet Gateway
省略
NAT Gateway
省略

プライベートサブネットからのインターネット接続を受けて、Internet Gateway でやり取りするものです。
セキュリティグループの設定を忘れず行う必要があります。
プライベートサブネット
RDS 用サブネット A(Private)
VPC で 172.16.1.0/24 のサブネットを作ります。
名前は DB a として進めます。

AZ は a ~ d あるとして、ここでは a を選択します。
RDS 用サブネット B(Private)
VPC で 172.16.2.0/24 のサブネットを作ります。
名前は DB b として進めます。

AZ は a ~ d あるとして、ここでは b を選択します。
Zabbix サブネット(Private)
VPC で 172.16.5.0/24 のサブネット を作ります。
AZ は任意で、名前は Zabbix として進めます。

Zabbix サーバを立てるためのサブネットとしているが、サーバ用に作らなければならないものでは無くて、話を理解しやすくするためのものです。
このサブネット以外に Zabbix サーバを立てても良いです。

RDS

AWS マネジメントコンソールから RDS にアクセスします。
サブネットグループの作成
左ペインのサブネットグループを選択します。

「DB サブネットグループを作成」を押して、作成画面へ。
サブネットグループの詳細
「サブネットグループの詳細」へ入力します。
入力項目サンプル入力内容
名前Zabbix
説明zabbix network subnet
VPC(作成したVPC)
入力イメージを次に示します。
RDS Subnetgroup
サブネットグループの詳細
サブネットを追加
「サブネットを追加」へ入力します。
入力項目サンプル入力内容
アベイラビリティゾーンAZ a と AZ b を選択他にサブネットを作成した AZ があればそれも選択
サブネットRDS 用サブネット「DB a」「DB b」を選択します
入力イメージを次に示します。
Add subnet
サブネットを追加

作成ボタンをクリックして、RDS が利用するサブネットグループを作成します。
データベース
左ペインから「データベース」を選択し、右ペインの「データベースの作成」ボタンをクリックします。
データベース作成方法を選択
標準作成を選択。
標準作成
選択イメージ
エンジンのオプション
MySQL を選択します。
エディションは、MySQL Community のみ。
バージョンは MySQL 8.0.23 で良いです。
MySQL 選択
エンジン選択イメージ
テンプレート
無料利用枠を選択します。
無料利用枠
テンプレートイメージ
設定
項目設定サンプル内容
DBインスタンス識別子zabbix
認証情報の設定
マスターユーザー名任意自動生成してもよい
マスターパスワード任意自動生成してもよい

設定
設定イメージ

Default は狙われやすいのでできれば変更するのが望ましいが、プライベートサブネットで、セキュリティグループでアクセス元を管理する想定、かつサンプルということで admin のまま。

マスターパスワードはブラウザの機能で勝手に入れられているが、本来はブランク……

DB インスタンスサイズ
「db.t2.micro」を選択します。
DB インスタンスサイズ
DB インスタンスサイズイメージ
ストレージ
項目設定サンプル内容
ストレージタイプ汎用(SSD)デフォルトの場合
ストレージ割り当て20 GiBデフォルトの場合
ストレージの自動スケーリング

ストレージ
ストレージイメージ
可用性と耐久性
マルチ AZ 配置
一択です。
可用性と耐久性
可用性と耐久性イメージ
接続
項目内容備考
VPCSample作成した VPC
サブネットグループzabbix作成したサブネットグループ
パブリックサブアクセス可能なしプライベートサブネットに置く想定
VPC セキュリティグループZabbix対応するセキュリティグループは作成済みの想定
既存の VPC セキュリティグループZabbix
アベイラビリティゾーン任意で指定
追加の接続設定
データベースポート3306

接続
接続イメージ

データベース認証
パスワードを選択します。
データベース認証
データベース認証イメージ

追加設定
このタイミングでデータベースを作っておきます。
項目内容備考
データベースの選択肢
最初のデータベース名zabbixZabbix サーバのデフォルト
DB パラメータグループ(変更不可)
オプショングループ(変更不可)
バックアップ
自動バックアップの有効化
モニタリング
拡張モニタリングの有効化
ログのエクスポート
エラーログ
全般ログ
スロークエリログ
メンテナンス
マイナーバージョン自動アップグレードの有効化
メンテナンスウィンドウ〇設定なし
削除保護
削除保護の有効化

追加設定
追加設定イメージ

概算月間コスト
毎月の支払予想額が出ます。
出ないこともあります。
エンドポイント
AWS マネジメントコンソールから RDS にアクセスします。

左ペインから「データベース」を選択して、右ペインに出てくる DB 識別子 zabbix を選択します。

接続とセキュリティにある、エンドポイントをメモしておきます。
これは、Zabbix サーバからアクセスする際に必要です。

Zabbix 5.2 Server

AWS マネジメントコンソールから EC2 にアクセスします。
ユーザーデータ用シェルスクリプトを作成
シェルスクリプトとして、次の内容のテキストファイルを作成します。
ファイル名は zbxsvr.sh として進めます。

なお、改行コードは LF のみとします。
(日本語を含まないので Shift-JIS でも構わない。含める場合は UTF-8 にすること)
#!/bin/bash

# RHEL8 Update
dnf update -y

# Zabbix install
rpm -Uvh https://repo.zabbix.com/zabbix/5.2/rhel/8/x86_64/zabbix-release-5.2-1.el8.noarch.rpm
dnf clean all
dnf install -y mysql zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent zabbix-web-japanese

# php
dnf install -y php
dnf distro-sync
dnf module reset php
dnf module enable php:7.3
dnf distro-sync

# SElinux
setenforce 0

インスタンスの作成
左ペインから「インスタンス」を選択して、右ペインの「インスタンスを起動」をクリックします。
AMI の選択
サーバとして RHEL8 の x86 を選択します。
AMI の選択
AMI の選択イメージ
インスタンスタイプの選択
タイプ t2.micro を選択します。
インスタンスタイプの選択
インスタンスタイプの選択イメージ
インスタンスの設定
インスタンスの設定
項目内容備考
インスタンス数1
購入のオプション□ スポットインスタンスのリクエスト
ネットワークSample作成した VPC
サブネットZabbix作成したサブネット
自動割り当てパブリック IPサブネット設定を使用(無効)
配置グループ□ インスタンスをプレイスメントグループに追加します。
キャパシティーの予約開く
ドメイン結合ディレクトリディレクトリなし
IAM ロールなし
シャットダウン動作停止
停止 - 休止動作□ 停止動作に休止動作を追加します
終了保護の有効化□ 誤った終了を防止します
モニタリング□ CloudWatch 詳細モニタリングを有効化
テナンシー共有 - 共有ハードウェアインスタンスの実行
Elastic Inference□ Elastic Inference アクセラレーターを追加
クレジット仕様□ 無制限
ファイルシステム

インスタンスの設定
インスタンスの設定イメージ
ネットワークインターフェイス
項目内容備考
デバイスeth0デフォルト
ネットワークインターフェイス新しいネットワークインターフェースデフォルト
サブネットデフォルト
プライマリ IP172.16.10.10EIPを使用しないので、静的に指定します
セカンダリ IP アドレス指定なし
IPv6 IP指定なし

ネットワークインターフェイス
ネットワークインターフェイスイメージ
高度な詳細
ここで zbssvr.sh を利用します。
ここで実行コマンドを記述したファイルをアップロードしておくと、サインインした後に手で入力する必要がなくなります。
項目内容備考
Enclave□ 有効
アクセス可能なメタデータ有効
メタデータのバージョンV1 および V2 (トークンはオプション)
メタデータトークンレスポンスのホップ制限1
ユーザーデータ● ファイルとしてzbssvr.sh を指定
高度な詳細
高度な詳細イメージ
なお、上記スクリプトの利用は NAT Gateway が適切に設定され、インターネット接続できることが条件となります。
ストレージの追加
デフォルトで進めます。
ストレージの追加
ストレージの追加イメージ
タグの追加
任意のタグを設定します。
セキュリティグループの設定
Zabbix サーバ用のセキュリティグループを指定します。
インバウンドルール
最低限、以下のポートが利用できること。
タイププロトコルポート範囲ソース説明
MYSQL/AuroraTCP3306172.16.0.0/16
カスタム TCPTCP10051172.16.0.0/16Agent による Zabbix サーバへのアクセス
HTTPTCP80172.16.0.0/16Web ブラウザによる Zabbix サーバへのアクセス
HTTPTCP443172.16.0.0/16Web ブラウザによる Zabbix サーバへのアクセス
SSHTCP22172.16.0.0/16SSH による Zabbix サーバへのアクセス

確認
ブラウザでの設定
ブラウザで Zabbix サーバにアクセスします。

URL は、次の通りです。
http://(IPアドレス)/zabbix
次の画面が表示されます。
言語選択
言語選択
ここでは、日本語に変更します。
(インストール時に zabbix-web-japanese も指定しているので、日本語を選択可能です)
言語選択 日本語
言語選択 日本語
日本語に変更できたら「次のステップ」を選択します。


次に、前提条件のチェックで、環境に問題ないことを確認します。
前提条件のチェック
前提条件のチェック
全部 OK であれば問題ありません。
「次のステップ」を選択します。

データベースホストに、RDSのエンドポイントを指定します。
また、zabbix ユーザのパスワードも指定します。
データベース接続設定
データベース接続設定
項目内容
データベースホストRDS のエンドポイント
パスワードRDS zabbix ユーザのパスワード

データベース接続設定 入力
データベース接続設定 入力イメージ
「次のステップ」を選択します。
Zabbixサーバーの詳細
Zabbixサーバーの詳細
「次のステップ」を選択します。
GUI設定
GUI設定
タイムゾーンは日本に変更します。
(UTC+09:00) Asia/Tokyo を選択します。
GUI設定 日本時間
GUI設定 日本時間
「次のステップ」を選択します。
インストール事前準備概要
インストール事前準備概要
「次のステップ」を選択します。
インストール終了
インストール終了
「終了」を選択します。
サインイン画面
サインイン画面
サインイン
次のデフォルトアカウントでサインインします。
項目内容
ユーザー名Admin
パスワードzabbix
サインインしたら、パスワードは変更しましょう。

Zabbix Agent

以下は、あとで分割してページを作る予定です。
Amazon Linux 2
リポジトリ登録
Amazon Linux 2 は、CentOS をベースに作成されていると考えられます。
そこで、RHEL7 ベースのリポジトリを登録します。
# yum update
# rpm -ivh https://repo.zabbix.com/zabbix/5.2/rhel/7/x86_64/zabbix-release-5.2-1.el7.noarch.rpm
# yum clean all
Zabbix Agent インストール
登録したリポジトリから、Agent をインストールします。
# yum install zabbix-agent
Zabbix Agent 設定
/etc/zabbix/zabbix_agentd.conf を修正します。
# cp -p /etc/zabbix/zabbix_agentd.conf,_$(date +%Y%m%d)
# vi /etc/zabbix/zabbix_agentd.conf
修正内容は、自分自身のホスト名と、情報を送る Zabbix サーバです。


差分の確認を行います。
# diff /etc/zabbix/zabbix_agentd.conf,_$(date +%Y%m%d)
Zabbix Agent 起動
インストールした Agent を起動および自動起動設定を行います。
# systemctl restart zabbix-agent
# systemctl enable zabbix-agent

その他

下記の登録商標・商標をはじめ、当社サイトに記載している会社名、システム名、製品名は一般に各社の登録商標または商標です。

adiary on RaspPi

Raspberry Pi に adiary をインストールする手順を、メモ程度に公開します。

adiary on Raspberry Pi

前提条件

この手順は、以下の条件がすでに完了していることを前提としています。

・Raspberry Pi 3 Model B へ Raspbian をインストールおよびアップデート済み
・SSH でのアクセスが可能
・DNS にドメイン設定済み

想定する利用者

読み手は CUI での操作が可能で、TCP/IP の基礎知識をもち、ある程度 Linux に慣れていることを想定しています。
そのため、割と不親切*1です。

*1 : 前提条件の「DNS 設定済み」は、それなりにハードルが高いはずです。あとで読み返して「自分が分かれば良い」を目安にしています。

Raspberry Pi 環境

Raspbian をインストール直後で構築しようとしている想定で、この手順書を書いています。
そのため、まず adiary 以外の設定を確認したり、設定したりしています。

環境確認

Raspbian バージョン
今回の構築手順で検証に利用した Raspbian のバージョン情報です。
$ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
$

raspi-config

最低限の設定変更をしておきます。
$ sudo raspi-config
1 Change User Password
2 Hostname
    ttm.jimba.ddo.jp
3 Boot Options
    B1 Desktop / CLI
4 Localisation Options
    I1 Change Locale
    I2 Change Timezone
    I4 Change Wi-fi Country
5 Interfacing Options
    P2 SSH
$
・pi ユーザパスワードを変更する。
・ホスト名を変更する。
・起動オプションで CLI に変更する。
・ロケールを日本にする*2
・SSH が有効であること確認する。

OS アップデート

前提条件にはあるけど、念のため。
$ sudo apt-get update
$ sudo apt-get upgrade

関連ソフトウェア設定

httpd (Apache2)
Apache2 をインストールしておきます。
$ sudo apt-get install apache2 apache2-doc
Apache2 インストールで Raspbian に登録される httpd ユーザを確認します。
$ grep www /etc/passwd
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
$
ここで確認できた www-data ユーザで adiary を動かす権限を管理すると、運用が楽になります。


次は adiary が動くように CGI の動作設定をします。
$ cd /etc/apache2/mods-available
$ cp -p {,/tmp/}mime.conf
$ sudo vi mime.conf
$ diff {,/tmp/}mime.conf
219c219
<       AddHandler cgi-script .cgi
---
>       #AddHandler cgi-script .cgi
$
次の Module 有効化も cgi の動作設定です。
$ sudo apache2ctl -M | grep cgi
$ sudo a2enmod cgi
$ sudo apache2ctl -M | grep cgi
 cgid_module (shared)
adiary.cgi を消したいときに使うモジュール rewrite を読み込んでおきます。
$ sudo a2enmod rewrite
Enabling module rewrite.
To activate the new configuration, you need to run:
  systemctl restart apache2
$ sudo systemctl restart apache2
apache2 のバージョン情報を表示させないように秘匿する設定です。
$ grep -i includeoptional /etc/apache2/apache2.conf
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf
$ cd /etc/apache2/conf-available
$ sudo cp -p security.conf{,_$(date +%Y%m%d)}
$ sudo vi security.conf
(書き換え)
$ sudo diff security.conf{,_$(date +%Y%m%d)}
25c25
< #ServerTokens OS
---
> ServerTokens OS
27d26
< ServerTokens Prod
36,37c35,36
< ServerSignature Off
< #ServerSignature On
---
> #ServerSignature Off
> ServerSignature On
$
$ sudo systemctl reload apache2
他の設定は、後で行います。
dhcpcd (Static IP address)
静的 IP アドレスの設定です。
$ sudo cp -p /etc/dhcpcd.conf{,_$(date +%Y%m%d)}
$ sudo vi /etc/dhcpcd.conf
--- 以下を追記 ---
interface eth0
static ip_address=192.168.0.2/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
static domain_name=jimba.jp
------------------
$ sudo diff /etc/dhcpcd.conf{,_$(date +%Y%m%d)}
$ sudo shutdown -r now
IPアドレス等は、構築時に読み替えます。
設定項目設定例意味
interfaceeth0eth0 の IP アドレスを指定します。
static ip_address192.168.0.2/24IPアドレスを静的に指定します。
/24 は、サブネットマスク 255.255.255.0 を示しています。
static routers192.168.0.1デフォルトゲートウェイを静的に指定します。
static domain_name_servers192.168.0.1DNS (Domain Name System) を静的に指定します。
static domain_namejimba.jpホストが属するドメイン名を静的に指定します。
Web で設定するドメイン (URL) とは別物です。
hcpcd の reload でも良さそうだけど、上記は ssh での操作なのでどちらにせよ IP アドレスが変更されて接続が切れるため、リブートしてます。
NTPd
ログの出力時刻を正しく読み取るため、NTP を ntp.nict.jp に設定します。

パッケージをインストールします。
$ sudo apt-get install ntp ntp-doc ntpdate dnsutils
設定するドメインが名前解決できるか確認します。
$ dig ntp.nict.jp +short
ntp でのやりとりができるか確認します。
$ ntpdate -q ntp.nict.jp
server 2001:df0:232:eea0::fff4, stratum 0, offset 0.000000, delay 0.00000
server 2001:df0:232:eea0::fff3, stratum 0, offset 0.000000, delay 0.00000
server 133.243.238.164, stratum 1, offset 0.000458, delay 0.03119
server 133.243.238.163, stratum 1, offset 0.000286, delay 0.03084
server 133.243.238.244, stratum 1, offset 0.000657, delay 0.03125
server 133.243.238.243, stratum 1, offset -0.000104, delay 0.03133
 8 Feb 16:40:43 ntpdate[18685]: adjust time server 133.243.238.163 offset 0.000286 sec
$
出力内容から stratum が 0 でなければ OK です。
0 がエラーです。
1 以上は、NTP サーバの階層を示します。

NTP 設定を行います。
$ sudo cp -p /etc/ntp.conf{,$(date +%Y%m%d)}
$ sudo diff /etc/ntp.conf{,$(date +%Y%m%d)}
$ sudo vi /etc/ntp.conf
---------------------------------------------------------
(pool をコメントアウトして、serverに ntp.nict.jp を指定する)
---------------------------------------------------------
$ sudo diff /etc/ntp.conf /etc/ntp.conf.$(date +%Y%m%d)
20,24c20,24
< #pool 0.debian.pool.ntp.org iburst
< #pool 1.debian.pool.ntp.org iburst
< #pool 2.debian.pool.ntp.org iburst
< #pool 3.debian.pool.ntp.org iburst
< server ntp.nict.jp iburst
---
> pool 0.debian.pool.ntp.org iburst
> pool 1.debian.pool.ntp.org iburst
> pool 2.debian.pool.ntp.org iburst
> pool 3.debian.pool.ntp.org iburst
>
$ sudo systemctl stop ntp
$ sudo ntpdate ntp.nict.jp
$ sudo systemctl start ntp
$ ntpq -p

関連コマンド

git
git でのファイルダウンロードは公式でのやり方なので、それに倣います。
$ type git > /dev/null 2>&1 || sudo apt install git
Image::Magick (PerlMagic)
adiary にあると便利な Image::Magick を先にインストールしておきます。
$ sudo apt-get install perlmagick
Net::SSLeay
adiary にあると便利な Net::SSLeay を先にインストールしておきます。
$ sudo apt-get install libnet-https-any-perl

ユーザ設定

運用ユーザの作成
運用で使うユーザを登録しておきます。
$ sudo useradd -d /home/example -m -g 1000 -s /bin/bash example
$ sudo passwd example
$ sudo vigr
-> pi と同じ場所に example を追記
$
$ sudo su -
# cd /etc/sudoers.d
# cp -p 010_{pi,example}-nopasswd
# vi 010_example-nopasswd
:%s/pi/example/
:x
# exit
$
ユーザ example は、環境に応じて読み替えてください。
運用ユーザでログインおよび sudo 可能なことを確認しておきます。
pi ユーザの不活性化
ユーザ pi を使えなくして、運用ユーザで作業するようにします。
$ sudo usermod -s /sbin/nologin pi

*2 : 特に Wi-Fi Country は、日本で認められていない周波数の電波(違法電波)を出さないようにする設定が楽。

adiary 環境構築

基本的には、公式サイトにある 自前サーバへのインストール を参照すれば足ります。
このページは adiary をインストールする Raspberry Pi の環境を整備する部分に価値があると思っています。

adiary インストール

adiary を git で /var/www/ にダウンロードします。
$ cd /var/www
$ sudo git clone https://github.com/nabe-abk/adiary
$
$ cd adiary
$ cp adiary.conf.cgi{.sample,}
$ cd ../
$
$ sudo chown -R 33:33 adiary
$ sudo chmod -R 750 adiary
$ sudo find adiary -name "*.png" -or -name "*.gif" -or -name "*.txt" -exec chmod 640 {} \;
$
adiary ディレクトリ全体が apache2 のユーザ権限 www-data (ユーザID 33) で動作するので、750 で良い。
画像やテキストファイルは実行権限不要なので 640 に一括変換しておく。

Apache2 設定

adiary のインストール後でなければ行えない Web 公開設定を行います。
設定ファイル作成のための事前調査
adiary が制限を入れたいディレクトリは .htaccess ファイルが置かれています。
自分の設定では .htaccess ファイルを無効にし、すべて apache の設定ファイルに記述するようにしているため、ファイルを探しておきます。
$ sudo find /var/www/adiary -name .htaccess
/var/www/adiary/skel/.htaccess
/var/www/adiary/data/.htaccess
/var/www/adiary/__tool/.htaccess
/var/www/adiary/plugin/.htaccess
/var/www/adiary/__cache/.htaccess
/var/www/adiary/info/.htaccess
/var/www/adiary/lib/.htaccess
/var/www/adiary/skel.local/.htaccess
設定ファイルの作成
上記の制限内容を踏まえて、設定ファイルを作成します。
$ cd /etc/apache2/sites-available
$ sudo vi 201-adiary.conf
(Config writing...)
$ sudo cat 201-adiary.conf
<VirtualHost *:80>
    ServerName  ttm.jimba.ddo.jp
    ServerAdmin xxx@jimba.ddo.jp
    DocumentRoot /var/www/adiary

    <Directory /var/www/adiary>
        Options ExecCGI
        AllowOverride None
    </Directory>

    <Directory /var/www/adiary/__cache>
        order allow,deny
        deny from all
    </Directory>

    <Directory /var/www/adiary/data>
        order allow,deny
        deny from all
    </Directory>

    <Directory /var/www/adiary/skel>
        order allow,deny
        deny from all
    </Directory>

    <Directory /var/www/adiary/__tool>
        order allow,deny
        deny from all
    </Directory>

    <Directory /var/www/adiary/plugin>
        order allow,deny
        deny from all
    </Directory>

    <Directory /var/www/adiary/info>
        order allow,deny
        deny from all
    </Directory>

    <Directory /var/www/adiary/lib>
        order allow,deny
        deny from all
    </Directory>

    <Directory /var/www/adiary/skel.local>
        order allow,deny
        deny from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/ttm.error.log
    CustomLog ${APACHE_LOG_DIR}/ttm.access.log combined
</VirtualHost>
【参考情報】/var/www/adiary/.htaccess に書きたい内容は、上記主設定ファイル (201-adiary.conf) の <Directory /var/www/adiary> ~ </Directory> の中に書きます。

根拠は、apache2 公式サイトより引用した以下の通りです。
普通は可能であれば .htaccess ファイルの使用は 避けてください。.htaccess ファイルに書こうと考えるようなすべての設定は、サーバの主設定ファイルの セクションで同じように行なうことができます。
Apache HTTP Server Tutorial: .htaccess files - Apache HTTP Server Version 2.4
設定ファイル有効化
設定ファイルを有効化します。
$ sudo a2ensite 201-adiary
Enabling site 201-adiary.
To activate the new configuration, you need to run:
  systemctl reload apache2
$
$ sudo systemctl reload apache2
不要ファイル削除
また、不要になった設定ファイルは、混乱のもとなので消しておきます。
$ sudo rm /var/www/adiary/skel/.htaccess
$ sudo rm /var/www/adiary/data/.htaccess
$ sudo rm /var/www/adiary/__tool/.htaccess
$ sudo rm /var/www/adiary/plugin/.htaccess
$ sudo rm /var/www/adiary/__cache/.htaccess
$ sudo rm /var/www/adiary/info/.htaccess
$ sudo rm /var/www/adiary/lib/.htaccess
$ sudo rm /var/www/adiary/skel.local/.htaccess
ひとつずつ消すのが面倒に思う人は、次のようなコマンドでも良いかもしれません。
$ sudo find /var/www/adiary -name ".htaccess" -exec rm {} \;

Web 上での設定

DNS へ登録した URL (本サイトならば http://ttm.jimba.ddo.jp/) へアクセスして、root アカウント登録や、個別アカウントの登録などを行います。
root アカウント登録
最初のログインに戸惑いますが、ユーザ名 a パスワード a 等、適当に入力してログインすると root でログインしたことになります。
個別アカウント登録
ブログを更新するユーザ等、個別にアカウントを作成します。

Web での設定後

初期画面からのリダイレクト設定
初期画面から、作成したブログ画面へ移動するための index.html 書き換えです。
$ cd /var/www/adiary
$ cp -p index.html{,_backup_$(date +'%Y%m%d')}
$ cat /dev/null > index.html
$ vi index.html
(書き換え)
$ cat index.html
<html>
  <head>
    <meta http-equiv="Refresh" content="0;URL=adiary.cgi">
  </head>
</html>
$ 
robots.txt
ボットに公開/非公開したい情報を教える設定です。

以下は Google bot 以外のクロウラを拒絶する例です

/var/www/adiary/robots.txt
User-agent: Googlebot
Disallow:

User-agent: *
Disallow: /

adiary アップデート

基本的には、公式サイトのコマンドでいけるはず。
$ sudo su -s /bin/bash www-data
$ cd ~/adiary
$ git fetch

その他

その他の設定に興味あるかたは、ツイッター等で質問いただくと反映することがあります。