tomcat 設定１－2 log 


```bash

#まずはbefore
context.xml
/usr/local/tomcat/webapps/manager/META-INF
↓↓↓↓↓
---------------------------
<Context antiResourceLocking="false" privileged="true" >
  <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
                   sameSiteCookies="strict" />
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>
---------------------------


↓↓↓↓↓<Valve classNameの部分を全てコメントアウトしている。
---------------------------
<Context antiResourceLocking="false" privileged="true" >
  <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
                   sameSiteCookies="strict" />
  <!-- 
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>
---------------------------

#次にtomcat-users.xml
/usr/local/tomcat/conf/
デフォルト↓↓↓
---------------------------
<!--
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="tomcat" password="<must-be-changed>" roles="tomcat"/>
  <user username="both" password="<must-be-changed>" roles="tomcat,role1"/>
  <user username="role1" password="<must-be-changed>" roles="role1"/>
-->
</tomcat-users>
---------------------------

after↓↓↓(上記のデフォルトから<tmcat-usersからの下記三行へ変更)
---------------------------
<!--
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="tomcat" password="<must-be-changed>" roles="tomcat"/>
  <user username="both" password="<must-be-changed>" roles="tomcat,role1"/>
  <user username="role1" password="<must-be-changed>" roles="role1"/>
-->
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="tomcat" password="paSSZwOrd1234" roles="admin-gui,manager-gui"/>
</tomcat-users>

```bash

```bash 

#サービスファイルの登録
vi /etc/systemd/system/tomcat.service

内容は以下の通りとする。

-------------------------
[Unit]
Description=Apache Tomcat8.5.78
After=network.target remote-fs.target nss-lookup.target

[Service]
User=tomcat
Group=tomcat
Type=oneshot

ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
------------------------- 

□上記設定反映後、ミドルウェアを使用した再起動も可能になる
#権限の変更をする。
chmod 755 /etc/systemd/system/tomcat.service

#下記リロードコマンドによりtomcat.serviceファイルの設定を行進
sudo systemctl daemon-reload

#下記コマンドによりtomcatの自動起動の状態を確認
sudo systemctl list-unit-files --type=service | grep tomcat

#下記コマンドによりtomcatの自動起動を設定
sudo systemctl enable tomcat

```bash 

/usr/local/tomcat/bin/version.sh

#※こちらは/usr/local/tomcat/bin/にはないですが、ステータス確認コマンドです
sudo systemctl status tomcat
#tomcatユーザーでサービスの操作を行う。サービスファイルを登録すると以下のコマンドで起動停止の操作ができます。
/usr/local/tomcat/bin/startup.sh
sudo systemctl start tomcat

/usr/local/tomcat/bin/shutdown.sh
sudo systemctl stop tomcat

#firewalldを無効化
この設定を忘れると猫に会えません
systemctl stop firewalld
systemctl disable firewalld 

#起動しているかどうかの確認について
サーバーIP:8080
もしくは設定しているポートNo.
サーバーIP:portno. or ドメイン:portno

起動関連は以上です

#ファイアウォール (Firewalld) が有効な場合の設定
/etc/firewalld/services/
にtomcat.xmlを作成する

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>Apache Tomcat 8</short>
  <description>Apache Tomcat 8</description>
  <port protocol="tcp" port="8080"/>
</service> 


#以下のコマンドを打って設定反映させます
firewall-cmd --list-services --zone=public --permanent

#Firewalld に上で作成した tomcat の通信を許可するように、次のように firewall-cmd を実行します。

firewall-cmd --add-service=tomcat --zone=public --permanent
firewall-cmd --reload

#もう一度、現在通信を許可しているサービスを確認すると、今度は tomcat が追加されたことが確認できます。
firewall-cmd --list-services --zone=public --permanent

dhcpv6-client ssh tomcat


#ここまででtomcatを再起動し、Manager APPを押下後
user
pass
を入力してください

そのあと、http://ip:port/manager/htmlにログインできます
黄色くか書かれた配備の中のWARファイルの配備
の欄からWARファイルをデプロイできるようになります。

#手動で移動させる際は下記です。
mv ファイル名 /usr/local/tomcat/webapps/ファイル名

https://tomcat.apache.org/tomcat-8.0-doc/appdev/sample/
上記のサンプルとか使えるかもです。がしかし使用する際は確認したほうがいいでしょう。

#実際にデプロイされたかどうかを確認するには、下記のリンクから確認できます。
デプロイした際にファイル名のディレクトリが確認できます。
所在はここ
/usr/local/tomcat/webapps/warファイル名のディレクトリ名

URLだと以下です
http://ip:port/warファイル名のディレクトリ名
↓↓↓
http://1ip:port/sample/

```

```
■ログファイルについて

rm -rf logs後にリンボリックを作成しないと/var/log/tomcat/
配下にログはできません

#logの権限も変えないとエラーを吐くのでご注意
chown -R  tomcat:tomcat /usr/local/tomcat/
chown -R  tomcat:tomcat /var/log/tomcat/

#ログ設定シンボリックリンク
mkdir /var/log/tomcat
#シンボリックリンク(log)作成1
ln -s /var/log/tomcat /usr/local/tomcat/logs

[tomcat@IP logs]$ pwd
/usr/local/tomcat/logs



[tomcat@IP tomcat]$ ll
total 0
[tomcat@IP tomcat]$ pwd
/var/log/tomcat
[tomcat@IP tomcat]$ ls -l
total 0


#シンボリックリンク(log)作成2
cd /usr/local/tomcat/
rm -rf logs
ln -s /var/log/tomcat /usr/local/tomcat/logs
pwd

 pwd
/usr/local/tomcat/
ls -lt
total 144
lrwxrwxrwx 1 tomcat tomcat    15 Nov 24 11:41 logs -> /var/log/tomcat
drwxr-x--- 3 tomcat tomcat  4096 Nov 24 11:37 work
drwx------ 3 tomcat tomcat  4096 Nov 24 11:37 conf
drwxr-x--- 2 tomcat tomcat  4096 Nov 24 11:35 bin
drwxr-x--- 2 tomcat tomcat  4096 Nov 24 11:35 lib
drwxr-x--- 2 tomcat tomcat  4096 Nov 24 11:35 temp
-rw-r----- 1 tomcat tomcat 19481 Nov 11 22:14 BUILDING.txt
-rw-r----- 1 tomcat tomcat  6210 Nov 11 22:14 CONTRIBUTING.md
-rw-r----- 1 tomcat tomcat 57011 Nov 11 22:14 LICENSE
-rw-r----- 1 tomcat tomcat  1726 Nov 11 22:14 NOTICE
-rw-r----- 1 tomcat tomcat  3372 Nov 11 22:14 README.md
-rw-r----- 1 tomcat tomcat  7136 Nov 11 22:14 RELEASE-NOTES
-rw-r----- 1 tomcat tomcat 16507 Nov 11 22:14 RUNNING.txt
drwxr-x--- 7 tomcat tomcat  4096 Nov 11 22:14 webapps

pwd
/var/log/tomcat
ls -lt

 ll
total 20
-rw-r----- 1 tomcat tomcat 6574 Nov 24 11:45 catalina.2021-11-24.log
-rw-r----- 1 tomcat tomcat 6574 Nov 24 11:45 catalina.out
-rw-r----- 1 tomcat tomcat    0 Nov 24 11:45 host-manager.2021-11-24.log
-rw-r----- 1 tomcat tomcat  735 Nov 24 11:45 localhost.2021-11-24.log
-rw-r----- 1 tomcat tomcat    0 Nov 24 11:45 localhost_access_log.2021-11-24.txt
-rw-r----- 1 tomcat tomcat    0 Nov 24 11:45 manager.2021-11-24.log


```

```

#設定ファイル格納場所
/usr/local/tomcat/conf/logging.properties
manager, host-managerを出力しないようにする場合以下の設定でできます。

```

```
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler

.handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################

1catalina.org.apache.juli.AsyncFileHandler.level = FINE
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.

#2localhost.org.apache.juli.AsyncFileHandler.level = FINE
#2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
#2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.

#3manager.org.apache.juli.AsyncFileHandler.level = FINE
#3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
#3manager.org.apache.juli.AsyncFileHandler.prefix = manager.

#4host-manager.org.apache.juli.AsyncFileHandler.level = FINE
#4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
#4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.

#java.util.logging.ConsoleHandler.level = FINE
#java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.AsyncFileHandler

#org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
#org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.AsyncFileHandler

#org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/test].level = INFO
#org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/test].handlers = 4host-manager.org.apache.juli.AsyncFileHandler
```

```
#ls-lt
結果以下のログの順番で出力されます。
 17 16:48 catalina.2021-11-17.log
 17 16:48 catalina.out
 17 16:48 localhost.2021-11-17.log
 17 16:45 localhost_access_log.2021-11-17.txt

```
次の設定は長くなりそうなので、その３に行きます。
#下記は何のエラーなのか？

```

/usr/local/tomcat/bin/shutdown.sh


Using CATALINA_BASE:   /usr/local/tomcat/
Using CATALINA_HOME:   /usr/local/tomcat/
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Nov 21, 2021 8:25:17 PM org.apache.catalina.startup.Catalina stopServer
SEVERE: Could not contact [localhost:8005]. Tomcat may not be running.
Nov 21, 2021 8:25:17 PM org.apache.catalina.startup.Catalina stopServer
SEVERE: Catalina.stop:
java.net.ConnectException: Connection refused (Connection refused)
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:607)
        at java.net.Socket.connect(Socket.java:556)
        at java.net.Socket.<init>(Socket.java:452)
        at java.net.Socket.<init>(Socket.java:229)
        at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:504)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:391)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:481)

```
上記のエラーについて、chmodに関連するエラーです。
実行ユーザーとディレクトリの設定を今一度ご確認ください。
次は以下の３
https://qiita.com/yuuki-furue/items/bc887feb658aa87bf4c7