ポジローぽけっと

昨日より今日、今日より明日を信じて、トライトライ

etckeeperのログを可視化したくなったら

簡易表示でよければgit標準cgiのgitwebを使う

install

gitが入っていればgitwebは入ってるはず。

gitwebは/usr/share/gitweb/gitweb.cgiにあるcgiなので、
cgiを動作させるために以下をインストールする

sudo apt install fcgiwrap spawn-fcgi

gitwebの設定

sudo vi /etc/gitweb/gitweb.conf

$projectrootに*.gitディレクトリを配置するディレクトリを設定する
以下の例は/var/lib/git

our $git_temp = "/tmp";

# The directories where your projects are. Must not end with a slash.
# our $projectroot = "/path/to/your/repositories";
our $projectroot = "/var/lib/git";
# Base URLs for links displayed in the web interface.
#our @git_base_url_list = qw(git://<your_server> http://git@<your_server>);

/var/lib/gitにetckeeperの.gitである/etc/.gitへのシンボリックリンクを張る ※otherから見れるように権限も変える

sudo chmod -R 755 /etc/.git
sudo ln -s /etc/.git /var/lib/git/etckeeper.git

nginxの設定

/etc/nginx/conf.dに以下のようなgitweb.confを作成する

server {
    listen [ip]:[port];
        server_name [server_name];
        location /gitweb.cgi {
        include fastcgi_params;
        gzip off;
        fastcgi_param   SCRIPT_FILENAME  /usr/share/gitweb/gitweb.cgi;
        fastcgi_param   GITWEB_CONFIG  /etc/gitweb/gitweb.conf;
        fastcgi_pass unix:/var/run/fcgiwrap.socket;
    }
    location / {
        root /usr/share/gitweb;
        index gitweb.cgi;
    }
}  

作成後はnginxに設定を読み込ませるため

sudo service nginx restart

以上で、http:/[ip]:[port]/にアクセスすればgitwebが見れる。

init.dで起動するプロセスが異常終了した場合に再起動かけたかったら

monitを使う

install

sudo apt install monit

setting

cd /etc/monit/conf.d
sudo vi example.conf

最もシンプルなexampleは以下(example.confは/etc/monit/monitrcから読み込まれる)、
(/etc/init.d/exampleは自身でexample.pidを生成し、serviceから呼び出せる場合

check process example with pidfile /var/run/example.pid
start program = "/usr/sbin/service example start"
stop  program = "/usr/sbin/service example stop" 

設定できたら

sudo service monit restart

test

起動しているexampleを停止したら、monitが再起動かけるかテスト

sudo tail -f /var/log/monit.log &
sudo service example stop

[JST Aug 14 21:13:56] error    : 'example' process is not running
[JST Aug 14 21:13:56] info     : 'example' trying to restart
[JST Aug 14 21:13:56] info     : 'example' start: /usr/sbin/service

[JST Aug 14 21:15:57] info     : 'example' process is running with pid 7267

monit自身が異常終了したらどうするの?

monitは/etc/inittabに登録する

※これはまだ試してない

参考

Easy, proactive monitoring of processes, programs, files, directories, filesystems and hosts | Monit

15分で始めるmonitによるサーバ監視 - SHANON Engineer's Blog

CentOS 6.5にmonitをインストールしてプロセス監視をする - Qiita

initとプロセス再起動

debianでgitlabを動かしたくなったら

本家の方法通り進めて

Installation methods for GitLab | GitLab

アクセス先の変更は以下に習えばよい

GitLabのURL変更方法(CentOS) - ゆるふわエンジニアのブログ

注意点

メモリ消費が多く

  • sakura VPS 512MBだと動作が重い
  • oom-killerが動く
root@tk2-242-30956:/var/log# cat /var/log/syslog | grep kill
Aug 13 19:20:05 tk2-242-30956 kernel: [3114495.468746] postgres invoked oom-killer: gfp_mask=0x10200da, order=0, oom_score_adj=0
Aug 13 19:20:05 tk2-242-30956 kernel: [3114495.472019]  [<ffffffff81142ddd>] ? oom_kill_process+0x21d/0x370

自分のこの環境ではこれ以上は遊べない