やりたいこと
複数のサーバの負荷状況を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