やりたいこと
複数のサーバの負荷状況をmuninで可視化する。
- muninデータのとりまとめは別サーバで行う
- 本サーバではサーバの負荷状況&Gitlabの状況を監視する
muninのインストールと設定ファイルの変更
% sudo aptitude install munin munin-node
設定ファイルを修正し、muninの親サーバからアクセスできるようにする。
% cd /etc/munin
% sudo cp -p munin-node.conf munin-node.conf.org
% sudo vi munin-node.conf
変更場所は以下のとおり
% diff munin-node.conf.org munin-node.conf
37a38
> host_name hogehoge.localdomain #このサーバのFQDNを記載
45c46,47
< allow ^::1$
---
> #allow ^::1$
> allow ^192\.168\.11\.100$ # muninの親サーバのIPアドレスを記載
監視対象の確認
% sudo munin-node-configure
ハードディスクの監視
Debian 9 (Stretch) - munin 各種監視追加! - mk-mode BLOGに従い、設定する。
smartmontoolsのインストール
% sudo apt install smartmontools
ハードディスク監視用の設定の記述。
% sudo touch /etc/munin/plugin-conf.d/hddtemp_smartctl
% sudo vi /etc/munin/plugin-conf.d/hddtemp_smartctl
監視対象とするハードディスクドライブのディスク情報を確認する。私の環境では /dev/sda が監視対象。
% df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
udev 7.8G 0 7.8G 0% /dev
tmpfs 1.6G 17M 1.6G 2% /run
/dev/sda2 900G 6.9G 848G 1% /
tmpfs 7.9G 12K 7.9G 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
/dev/sda1 511M 5.1M 506M 1% /boot/efi
tmpfs 1.6G 0 1.6G 0% /run/user/1000
/etc/munin/plugin-conf.d/hddtemp_smartctlの中見
[hddtemp_smartctl]
user root
env.drives sda
env.smartctl /usr/sbin/smartctl
env.args_sda --all -d ata
プラグインを組み込む。
% sudo ln -s /usr/share/munin/plugins/hddtemp_smartctl /etc/munin/plugins/
CPUや電源の監視
lm-sensorsと関連パッケージをインストールする。
% sudo apt -y install lm-sensors libsensors5 fancontrol
sensors-detect を実行する。いいなりにEnterキーをおし、最後の /etc/modulesへの書き込みはYesを選択する。
% sudo sensors-detect
センサーのチェック
% sudo sensors
センサー監視用の設定ファイルを作成する。
% sudo touch /etc/munin/plugin-conf.d/sensors
% sudo vi /etc/munin/plugin-conf.d/sensors
/etc/munin/plugin-conf.d/sensorsの中見は以下の通り。
[sensors_*]
user root
プラグインを組み込む。
% sudo ln -s /usr/share/munin/plugins/sensors_ /etc/munin/plugins/sensors_volt
% sudo ln -s /usr/share/munin/plugins/sensors_ /etc/munin/plugins/sensors_temp
% sudo ln -s /usr/share/munin/plugins/sensors_ /etc/munin/plugins/sensors_fan
GitLabの監視
GitHub - MatthiasLohr/munin-plugins-gitlab: Munin-plugins for monitoring a GitLab instanceで提供されているプラグインを利用する。Readmeに従い作業する。
関連するパッケージをインストールする。
% sudo apt install python-psycopg2
プラグインをクローンする。
% cd /usr/local/share
% sudo git clone https://github.com/MatthiasLohr/munin-plugins-gitlab.git
% ls -d munin-plugins-gitlab
munin-plugins-gitlab
プラグインの設定ファイルを作成する。
% sudo touch /etc/munin/plugin-conf.d/gitlab
% sudo vi /etc/munin/plugin-conf.d/gitlab
/etc/munin/plugin-conf.d/gitlabの中見は以下の通り。
[gitlab_*]
user git
env.gitlab_dir /var/opt/gitlab # optional, defaults to GitLab omnibus package
setup directory
## using a PostgreSQL database
env.db_engine postgresql # optional, defaults to postgres, valid values
: postgresql. mysql
env.db_dsn host=/var/opt/gitlab/postgresql user=gitlab dbname=gitlabhq_productio
n # optional, defaults to GitLab omnibus database
env.db_pg_search_path gitlab # optional, set search_path before executing an
y query. Useful if not using GitLab omnibus package
## using a MySQL database
#env.db_engine mysql
#env.db_dsn host=localhost user=gitlab db=gitlabhq_production
[gitlab_redis_*]
user gitlab-redis
env.redis_socket /var/opt/gitlab/redis/redis.socket # optional, defaults to Git
Lab omnibus redis instance
[gitlab_total_registry_size]
user registry
自分に必要そうなプラグインを導入する。今回は以下を導入した。
% sudo ln -s /usr/local/share/munin-plugins-gitlab/gitlab_redis_used_memory /etc/munin/plugins/
% sudo ln -s /usr/local/share/munin-plugins-gitlab/gitlab_total_repo_count /etc/munin/plugins/
% sudo ln -s /usr/local/share/munin-plugins-gitlab/gitlab_total_repo_size /etc/munin/plugins/
% sudo ln -s /usr/local/share/munin-plugins-gitlab/gitlab_users /etc/munin/plugins/
% sudo ln -s /usr/local/share/munin-plugins-gitlab/gitlab_users_active /etc/munin/plugins/
Readmeにかかれているとおりにして、Gitlabで使用しているnginxを監視する。
% sudo mkdir -p /etc/nginx/conf.d/
% sudo touch /etc/nginx/conf.d/status.conf
% sudo vi /etc/nginx/conf.d/status.conf
/etc/nginx/conf.d/status.confの中見は以下の通り。
server {
listen *:80;
listen [::]:80;
server_name localhost;
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
allow ::1;
deny all;
}
}
/etc/gitlab/gitlab.rb の該当部分を修正する。
# nginx['custom_nginx_config'] = "include /etc/nginx/conf.d/example.conf;"
nginx['custom_nginx_config'] = "include /etc/nginx/conf.d/status.conf;"
設定を再読込する。
% sudo gitlab-ctl reconfigure
プラグインを導入する。
% ln -s /usr/share/munin/plugins/nginx_request /etc/munin/plugins
% ln -s /usr/share/munin/plugins/nginx_status /etc/munin/plugins
munin-nodeを再起動する。
% sudo systemctl restart munin-node
余談:Apacheの監視
% ln -s /usr/share/munin/plugins/apache_accesses /etc/munin/plugins/apache_accesses
% ln -s /usr/share/munin/plugins/apache_processes /etc/munin/plugins/apache_processes
% ln -s /usr/share/munin/plugins/apache_volume /etc/munin/plugins/apache_volume