ギャバンITサービス
お菓子の家が作れるシステムエンジニアです

logrotateの設定

ログファイルって勝手に膨れる。 /varとか別パーティションにしてるとき、dfで占有量のパーセンテージの数字の大きさに気づいて「デカなったなぁ」ってなることもある。 ある程度のサイズになったりとか、日付単位でログ残しときたいとか考えることもある。 sambaとかapacheとかapt/dnfしたときに設定が勝手に入ってくれるけど、バックアップのログとか自分用のログがあるときは自分でコントロールする必要がある。 OSを切り替えるときに設定はいつも継ぎ足しているので、1回作ったらもうほとんど触らない。 そもそもlogrotateとは 説明してくれてる方がおられる。 作者さんありがとう。 【logrotate】の仕組みと書き方, オプション一覧, 設定反映と再起動について | SEの道標 milestone-of-se.nesuke.com 最近だと、qiitaでも読みやすく書いてある。 logrotate入門 #Linux - Qiita qiita.com ログの維持結果 自分用の処理で維持するログは/gvis/logに出力してる。 ここが膨れないようコントロールするとこうなる。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 $ cd /gvis/log $ ll 合計 87M drwxrwxr-x 2 nari nari 4.0K 2022-08-30 05:30:10 ./ drwxr-xr-x 8 nari nari 4.0K 2022-06-15 06:47:50 ../ -rw-r--r-- 1 nari nari 571 2022-08-30 04:23:10 000_serviceStart.log -rw-rw-r-- 1 nari nari 15M 2022-08-29 08:42:55 001_sysBackup.log -rw-rw-r-- 1 nari nari 4.7M 2022-08-26 08:44:12 001_sysBackup.log.1.gz -rw-rw-r-- 1 nari nari 4.7M 2022-08-19 08:43:35 001_sysBackup.log.2.gz -rw-rw-r-- 1 nari nari 4.7M 2022-08-12 08:39:21 001_sysBackup.log.3.gz -rw-rw-r-- 1 nari nari 4.6M 2022-08-05 08:37:06 001_sysBackup.log.4.gz -rw-rw-r-- 1 nari nari 4.6M 2022-07-29 08:37:26 001_sysBackup.log.5.gz -rw-rw-r-- 1 nari nari 2.8M 2022-07-22 08:36:46 001_sysBackup.log.6.gz -rw-rw-r-- 1 nari nari 4.6M 2022-07-15 08:36:34 001_sysBackup.log.7.gz -rw-rw-r-- 1 nari nari 4.6M 2022-07-08 08:38:03 001_sysBackup.log.8.gz -rw-rw-r-- 1 nari nari 2.8M 2022-07-01 08:38:26 001_sysBackup.log.9.gz -rw-rw-r-- 1 nari nari 0 2022-08-30 04:23:07 002_GVISbackup.log -rw-rw-r-- 1 nari nari 4.3M 2022-08-29 08:22:41 002_GVISbackup.log.1.gz -rw-rw-r-- 1 nari nari 4.2M 2022-08-24 08:23:57 002_GVISbackup.log.2.gz -rw-rw-r-- 1 nari nari 3.9M 2022-08-19 08:24:02 002_GVISbackup.log.3.gz -rw-rw-r-- 1 nari nari 3.9M 2022-08-16 08:21:03 002_GVISbackup.log.4.gz -rw-rw-r-- 1 nari nari 3.6M 2022-08-10 08:18:41 002_GVISbackup.log.5.gz -rw-rw-r-- 1 nari nari 3.6M 2022-08-04 08:19:03 002_GVISbackup.log.6.gz -rw-rw-r-- 1 nari nari 3.5M 2022-07-29 08:18:40 002_GVISbackup.log.7.gz -rw-rw-r-- 1 nari nari 3.7M 2022-07-25 08:18:13 002_GVISbackup.log.8.gz -rw-rw-r-- 1 nari nari 3.6M 2022-07-15 08:17:12 002_GVISbackup.log.9.gz -rw-rw-r-- 1 nari nari 1.2K 2022-08-29 08:02:04 003_gcpLog.log -rw-rw-r-- 1 nari nari 320 2022-08-26 08:02:10 003_gcpLog.log.1.gz -rw-rw-r-- 1 nari nari 404 2022-08-19 08:02:08 003_gcpLog.log.2.gz -rw-rw-r-- 1 nari nari 468 2022-08-12 08:02:25 003_gcpLog.log.3.gz -rw-rw-r-- 1 nari nari 450 2022-08-05 08:02:07 003_gcpLog.log.4.gz -rw-rw-r-- 1 nari nari 415 2022-07-29 08:02:05 003_gcpLog.log.5.gz -rw-rw-r-- 1 nari nari 346 2022-07-22 08:02:04 003_gcpLog.log.6.gz -rw-rw-r-- 1 nari nari 389 2022-07-15 08:02:02 003_gcpLog.log.7.gz -rw-rw-r-- 1 nari nari 397 2022-07-08 08:02:02 003_gcpLog.log.8.gz -rw-rw-r-- 1 nari nari 378 2022-07-01 08:01:58 003_gcpLog.log.9.gz -rw-rw-r-- 1 nari nari 174 2022-08-29 09:45:56 004_gdr.log -rw-rw-r-- 1 nari nari 209 2022-08-26 09:45:58 004_gdr.log.1.gz -rw-rw-r-- 1 nari nari 213 2022-08-19 09:45:46 004_gdr.log.2.gz -rw-rw-r-- 1 nari nari 246 2022-08-12 09:46:36 004_gdr.log.3.gz -rw-rw-r-- 1 nari nari 215 2022-08-05 09:47:05 004_gdr.log.4.gz -rw-rw-r-- 1 nari nari 245 2022-07-29 09:49:42 004_gdr.log.5.gz -rw-rw-r-- 1 nari nari 174 2022-07-22 09:46:53 004_gdr.log.6.gz -rw-rw-r-- 1 nari nari 216 2022-07-15 09:46:39 004_gdr.log.7.gz -rw-rw-r-- 1 nari nari 220 2022-07-08 09:45:31 004_gdr.log.8.gz -rw-rw-r-- 1 nari nari 192 2022-07-01 09:45:08 004_gdr.log.9.gz -rw-r--r-- 1 nari nari 9.0K 2022-08-30 04:23:11 100_samba.log -rw-r--r-- 1 nari nari 4.8K 2022-08-30 04:23:11 200_http.log -rw-r--r-- 1 nari nari 31K 2022-08-30 04:23:14 300_docker.log $ 000_serviceStart.logとかは、OS起動した後でデータディスクマウントしてからsamba/apache2/dockerの順番に起動してくときのログが出るようになってて、常に上書きしてるから膨れない。 ...

nftables設定してみる

ファイアウォールって苦手。 実務ではハードウェアがやってくれてたから、使ったことない。 solaris8の頃に一度設定練習したことあるけど、それっきり。 ipchainsやったかなぁ。 個人的にはヤマハのルータで特定のポートの穴あけをしてみたり、awsとかgcpのネットワークでグローバルネットのうち自分の固定IPのみを許可させたりした程度。 それでも間違えたら入られちゃうから、真剣にテストしたっけ。 今回は実務でやってみるチャンスがあったので、その試験設定をメモ。 redhatのドキュメント 最初はfirewalldってのあったっけと思ってドキュメント読んでたら、こんなこと書いてあった。 7.4. ネットワーク | 9.0 リリースノート | Red Hat Enterprise Linux | 9 | Red Hat Documentation access.redhat.com 1 RHEL では、ipset パッケージおよび iptables-nft パッケージが非推奨になりました。iptables-nft には、iptable、ip6tables、ebtables、arptables などのさまざまなツールが同梱されています。このようなツールには新しい機能がなくなり、新しいデプロイメントに使用することは推奨されません。代わりに、nftables パッケージが提供する nft コマンドラインツールを使用することが推奨されます。既存の設定は、可能であれば nft に移行する必要があります。 他にもこうあった。 1 RHEL 9 では、iptables フレームワークは非推奨になりました。結果として、iptables バックエンドと、firewalld の 直接インターフェイス も非推奨になりました。 なるほど、nftables使えってことね。 firewalldもフェードアウントしてくんかな。これ古いし、使うのやめとこか。 iptablesの実装やりなおしみたいな感じ 昔は1つずつルールをコマンドラインで書いてたな。 nftablesってのはfirewalldとか停止して使うそうな。 コマンドラインじゃなく、設定ファイルを読み込ませて動かすみたい。 コマンドラインでの設定もできるみたいやけど、ちゃんと設定が書けるってのは読みやすくてありがたい。 企業の中のファイアウォール申請は「ソースとデスティネーションのxxポートを許可」とか書いてることが多いから見直しやすい。 親切にredhat9でサンプルを作ってくださってる方がおられた。 作者さんありがとう。タイムリーに必要だったので、めっちゃ参考にさせてもらった。 Red Hat Enterprise Linux 9 のファイアウォール設定 | Psychoco Laboratory psychoco.net 作者さんは管理者と日本国内のみ接続許可するようにするのが目的やったから、日本国内のIPリストを用意されてたけどそこはパス。 ...

redhat9でマウントしたisoイメージをリポジトリに追加

インターネットつなげない環境で、インストールで使うisoイメージをリポジトリに仕立てる。 1 2 3 # cp /mnt/disc/media.repo /etc/yum.repos.d/rhel9.repo # chmod 644 /etc/yum.repos.d/rhel9.repo # vi /etc/yum.repos.d/rhel9.repo viでこう編集する。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [BaseOS] name=BaseOS Packages Red Hat Enterprise Linux 9 metadata_expire=-1 gpgcheck=1 enabled=1 baseurl=file:///mnt/disc/BaseOS/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release [AppStream] name=AppStream Packages Red Hat Enterprise Linux 9 metadata_expire=-1 gpgcheck=1 enabled=1 baseurl=file:///mnt/disc/AppStream/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release リポジトリを有効にする。 ...

samba4でゴミ箱

前からやってみたかったのでサラっとやってみる。 ゴミ箱の作り方 たぶんsambaが2とか3のバージョンのときからあったと思う。 今のバージョンを確認してみる。 psで確認するとsmbdって名前で動いてるから、適当に–versionってやってみる。 1 2 3 $ /usr/sbin/smbd --version Version 4.11.6-Ubuntu $ いったんsamba4使ってるから方法探してみると、メモっておられる方がいた。 作者さんありがとう。 Linux samba4 でゴミ箱機能を有効にする - わすれないうちにメモしよう kt-hiro.hatenablog.com 共有設定に追記 自分はデータの入ったパーティションを必ず別ディスクにしてる。 dockerっていう領域。 1 2 3 $ df -h | grep docker /dev/sdb 629G 110G 488G 19% /docker $ dockerはコンテナと永続化業域が入ってる。 smb.confにはglobal指定と、共有ごとの指定がある。 global指定にはこう足した。 1 2 [global] vfs objects = recycle 次にdockerのための領域の共有に「recycle」で始まる行をいくつか追記。 ゴミ箱は隠しフォルダにしたかったので、ドットつきのフォルダ名を指定。 ...

mariadbを10.11(jammy)から11.4(noble numbat)へ切り替え

母艦として利用してるローカルlinuxも、xrdpコンテナもベースosをjammyからnumbatへ切り替えた。 ローカルkubernetesもminikubeからmicrok8sに切り替えて、利用イメージをnumbatへ切り替えた。 google cloudの中のベースosもxrdpも同じくnumbatへ切り替えた。 面倒やし書かへんけど、業務利用してるawsの中のamazonlinux2023で動かしてるコンテナもnumbatのxrdpに変えてみた。 今月けっこうがんばったな。 もしかしてと思ってdockerhub見たら、mariadbもベースosがnumbatのが出てるやん。 ただ上がるだけやったら放置やけど、LTSが出とる。 コンテナのバージョンアップしたほうがええな。 検証利用やし、メモなしで業務利用のawsの中のmariadbをnumbatにバージョン上げてダンプファイル突っ込んだら、あっさり動いた。 今回は母艦の中のdockerで動いてるmariadbをnumbatに上げる。 mariadbのダンプファイルはテキストになってて、createしたりinsertしたりするからデータの保全はほぼ常にできてる。 バージョンの特定 世間一般へのアナウンスは11.4がLTSってなってた。 MariaDB | endoflife.date endoflife.date dockerhubにタグがあって11.4がある。 hub.docker.com 11.4-nobleは11.4.2ってのと同じdigestになってるから、11.4.2を使えばええっぽい。 11.4.2より新しい11.5ってのもあるけど、LTSやないみたいやから要らん。 ubiってもしや? なんと、タグ名にubiってのがついてるのがある。 もしかしてUniversalBaseImageの略? redhatのこととちゃうんか? ググったら出てきた。 UBI based Docker Official Images - MariaDB.org mariadb.org 「エンタープライズ向けユーザにお知らせでーす」って赤い帽子かぶってるやん。 いろんなプラットフォームで動いてくれるのはええことかなって思う。 サポートの都合でredhat一択っていうユーザ企業もあるやろし。 redhatは母艦にあるubuntuに比べたら、使ってるカーネルが古い傾向があったはず。 dockerは親ホストとコンテナがカーネル共有するから、わけわかめな誤動作出たらイヤやしubiは使わん。 ibmの息がかかったプロダクトはredhat/centosみたいな末路たどるんとちゃうかってイヤな予感。 mysqlがubi使ってもええけど、mariadb大丈夫か? もしDBMSを切り替えるとしたら、postgresqlでもええけど、あのデータベースは運用途中で勝手に最適化動いて遅くなるのがイマイチ。 何年か前に業務で、javaのガベージコレクションがまとめて動いたときみたいな、悲惨な応答速度になることが夜間バッチであったな。 別のデータベースの可能性を探しながら様子見るしかないな。 どのへんが変わったか データベースそのものを変えるときはsql発行で使えんようになったものとか、使ってる処理に制限が出て影響出えへんかを気にする。 シンプルなsqlだけ使ってたら気にせずでええんやけど、ストアドとか使ってたらdbmsの変更すらできん。 世の中にはこのせいでoracleから抜け出せへんユーザ企業あるやろしな。 同じデータベースで、しかもバージョン変更だけやし、djangoから利用するのが前提やから、それほど気にせずアプリケーションテストでほぼ大丈夫なはずやけど、リリースノートは軽く読む。 MariaDB 11.4.2 Release Notes | MariaDB Documentation mariadb.com けっこういっぱい書いてある。 LTSやししゃぁないんかもしれん。 mysqldumpはmariadb-dumpに変わったんかな。 データの流し込みのとき気をつけなアカンかもな。 真面目に英語読んだのは5行。あとは読む気が萎えた・・・。 バグ対処とかいろいろあるんやろな。 型とかsqlは致命的な変更なさそうに思うけど大丈夫なんかなぁ。 事実を列挙するだけやのうて、使う側目線でもうちょっと読みやすかったらええのに。 どう保全するか 扱ってるデータベースには、djangoアプリからお金の情報/時間の情報/活動記録として数値とテキスト、名刺とか受け取り資料のpdf/jpegがblob列に入ってる。 帳簿は7年分を別途でpdf保管してるから、数字とかテキストを目検で追いかけたり、登録可否を確認する。 古いほうのバージョンのdbmsからのダンプを登録できる(インポート) 7年分の合計金額が1円単位であう(sql集計の確認) djangoのmatplotlibで円グラフ表示させてるパーセンテージが小数点以下でズレてへん(djangoでの集計) 月次の活動記録のテキストとpdf/jpegを任意で拾って化けてたり読み取り不良になってへん(blob列のデコード) mariadbに設定してるmax_allowed_packetを超えへんサイズのpdfがblob列にinsertできる(blob列へのbase64保管) 極端に挙動が遅くなってたりせんか(django画面での応答速度) 意識しながらdjangoの画面を開いて確認やな。 ...

 ⭐️