ChefTips: Chef Server のログについて

Chef Server が出力するログについてまとめます。

## ログの出力先について

Chef Server を導入後、Chef Serverが出力するログは以下に出力されます。
 
* /var/log/opscode
* /var/opt/opscode

参考/引用: [Log Files](https://docs.chef.io/server_logs.html)

Chef Serverログのローテション・クリーンアップについては、導入時自動で 設定してくれているようです。私自身、大規模環境でChef Serverを運用した経験はありませんが、導入時のDefault設定で困ったことは今のところありません。

## chef-server.rb について

他のChef Serverの設定項目と同じく、ログローテション、クリーンアップの設定変更については

* `chef-server.rb` ファイルに記述
* `chef-server-ctl reconfigure` コマンドで反映

という流れで変更します。


・chef-server-ctl reconfigure コマンド の説明
https://docs.chef.io/ctl_chef_server.html#reconfigure
 
・Chef Server設定ファイル chef-server.rb について
https://docs.chef.io/config_rb_server.html
 
・chef-server.rb で利用可能な オプション記述について
https://docs.chef.io/config_rb_server_optional_settings.html


もしこのログはDefaultだとログローテション・クリーンアップされないので、設定追加したほうがいいよ！という情報をお持ちの方がいらっしゃいましたら、コメントなどで教えてくださると助かります。



## 追加される logroted の設定

あまり意識する必要はありませんが、実際のログローテションの設定としては、logrotated と svlogd の仕組みを使って行われているようです。簡単に設定箇所を抜粋します。

```shell-session
$ cat /etc/opscode/logrotate.conf
missingok
compress
notifempty
include /etc/opscode/logrotate.d

$ ls -l /etc/opscode/logrotate.d/
total 12
-rw-r--r--. 1 root root 236 Oct 26  2016 nginx
-rw-r--r--. 1 root root 114 Oct 26  2016 opscode-solr4
-rw-r--r--. 1 root root  92 Oct 26  2016 redis_lb
```
 
定期実行は以下のcronが設定されます。

```shell-session
$ cat /etc/cron.hourly/opc_logrotate
#!/bin/sh
PATH=/opt/opscode/embedded/sbin:$PATH
command -v logrotate >/dev/null 2>&1 || exit 0
nice -n 19 ionice -c3 logrotate -s /var/log/opscode/logrotate.status /etc/opscode/logrotate.conf
```




## 追加される svlogdの設定

```shell-session

$ ls -l /opt/opscode/service/
total 0
lrwxrwxrwx. 1 root root 25 Oct 26  2016 bookshelf -> /opt/opscode/sv/bookshelf
lrwxrwxrwx. 1 root root 21 Oct 26  2016 nginx -> /opt/opscode/sv/nginx
lrwxrwxrwx. 1 root root 26 Oct 26  2016 oc_bifrost -> /opt/opscode/sv/oc_bifrost
lrwxrwxrwx. 1 root root 21 Oct 26  2016 oc_id -> /opt/opscode/sv/oc_id
lrwxrwxrwx. 1 root root 34 Oct 26  2016 opscode-chef-mover -> /opt/opscode/sv/opscode-chef-mover
lrwxrwxrwx. 1 root root 30 Oct 26  2016 opscode-erchef -> /opt/opscode/sv/opscode-erchef
lrwxrwxrwx. 1 root root 32 Oct 26  2016 opscode-expander -> /opt/opscode/sv/opscode-expander
lrwxrwxrwx. 1 root root 29 Oct 26  2016 opscode-solr4 -> /opt/opscode/sv/opscode-solr4
lrwxrwxrwx. 1 root root 26 Oct 26  2016 postgresql -> /opt/opscode/sv/postgresql
lrwxrwxrwx. 1 root root 24 Oct 26  2016 rabbitmq -> /opt/opscode/sv/rabbitmq
lrwxrwxrwx. 1 root root 24 Oct 26  2016 redis_lb -> /opt/opscode/sv/redis_lb
 
$ ps auxwww | grep svlogd
root     13206  0.0  0.0 112648   976 pts/0    R+   04:27   0:00 grep --color=auto svlogd
opscode  14851  0.0  0.0   4328    88 ?        S     2016   0:00 svlogd -tt /var/log/opscode/rabbitmq
opscode  14943  0.0  0.0   4328     0 ?        S     2016   0:00 svlogd -tt /var/log/opscode/postgresql/9.2
opscode  15001  0.0  0.0   4328    40 ?        S     2016   0:00 svlogd -tt /var/log/opscode/oc_bifrost
root     15025  0.0  0.0   4328    32 ?        S     2016   0:00 svlogd -tt /var/log/opscode/oc_id
opscode  15069  0.0  0.0   4328    24 ?        S     2016   0:00 svlogd -tt /var/log/opscode/opscode-solr4
opscode  15109  0.0  0.0   4328    16 ?        S     2016   0:00 svlogd -tt /var/log/opscode/opscode-expander
opscode  15172  0.0  0.0   4328    48 ?        S     2016   0:00 svlogd -tt /var/log/opscode/bookshelf
opscode  15216  0.0  0.0   4328    88 ?        S     2016   0:00 svlogd -tt /var/log/opscode/opscode-erchef
opscode  15273  0.0  0.0   4328     0 ?        S     2016   0:00 svlogd -tt /var/log/opscode/opscode-chef-mover
opscode  15277  0.0  0.0   4328     0 ?        S     2016   0:00 svlogd -tt /var/log/opscode/redis_lb
opscode  15283  0.0  0.0   4328    80 ?        S     2016   0:00 svlogd -tt /var/log/opscode/nginx
```