次世代システム研究室の Y.I. です。 logrotate について小さな学びがありましたので “自戒” と “備忘録” も兼ねてまとめます。 学びとは、「logrotate の設定が正しくてもログローテーションされない事がある」、「dry-run による実行確認は大事」、です。 ローテーション対象の親ディレクトリのパーミッションが 775 or 777 だとローテーションされない ローテーションを指定して実行したところ、下記エラーメッセージが表示されました。 [ error: skipping “/var/log/ap_server/app.20190401.log” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root
インターネット上にサーバを公開していると、sshやhttpdへDDoS攻撃やディレクトリトラサーバル攻撃を公開しているページすべてに行うようになツールを投げられたり、乗っ取りしようとして来たりといろいろと攻撃されることが多い。 DDoSやらツールでの攻撃を受けると大量のパケットやリクエストが飛んできてサーバへの負荷が重く、サービスの継続にも支障が出たりする。 そんな時は、攻撃してきているグローバルIPからの接続をファイアウォールなどでしばらく拒否してやるといった対応が必要になる。 そういったことをするためのツールがこのfail2banだ。 結構有名なツールだし、LPIC(303かな?201と202でも出てくるかも…)でもよく出てくるので名前を聞いたことのある人も多いと思う。 各種ログを元に、定義されたフィルターに適合したアクセス元の接続を拒否するようiptables(firewalld)で
Apacheではサーバーへの大量パケットが投げられるというDDOS攻撃の対策として mod_evasive というモジュールを利用することが出来ます。 これは大量アクセスへ対策するもので、デフォルトのままで 同一ページへ1秒間に2回以上のアクセスでブロックリスト追加 同一サイトへ1秒間に50回以上のアクセスでブロックリスト追加 最後のアクセスから10秒後にブロックリスト解除 という挙動をしてくれるものです。 手順として httpd -l を実行。出て来る一覧に mod_so.c が存在することを確認します。 無ければhttpd24u-develというものをインストールする必用があるようです。 httpd -M | grep evasive コマンドで evasive~~ が存在しないことを確認します。存在していれば既に導入済みです。 インストールします sudo yum install e
PostgreSQLはcontribディレクトリに格納された拡張機能を使う事ができます。この章ではcontribモジュールのインストール方法および使い方について説明します。 PostgreSQL インストール PostgreSQL データベースの作成 PostgreSQL contribモジュールの使い方 (いまここ) PostgreSQL パラメタの設定方法 PostgreSQL ベンチマークツールの紹介 PostgreSQL WAL(Write Ahead Log)の基本説明 PostgreSQL バックアップとリストア PostgreSQL PITR(Point In Time Recovery)基本概念の説明 PostgreSQL PITR(Point In Time Recovery)操作方法の説明 PostgreSQL PITR(Point In Time Recovery)タ
I am trying to run a CentOS 8 server through VirtualBox (6.1.30) (Vagrant), which worked just fine yesterday for me, but today I tried running a sudo yum update. I keep getting this error for some reason: [[email protected]] ~ >> sudo yum update CentOS Linux 8 - AppStream 71 B/s | 38 B 00:00 Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mir
※この記事は2021年1月28日時点の情報です。 昨年2020年12月09日に、CentOS8が2021年でサポートを終了するというアナウンスがされ、 我々IT業界に大きな衝撃が走りました。 サポート終了がアナウンスされた公式サイトブログ https://blog.centos.org/2020/12/future-is-centos-stream/ これまでCentOS8を採用していた現場では、今後バグフィックスやセキュリティ修正などが リリースされないCentOS8を使い続けることは、まずNGなので当然移行を検討することになります。 同プロジェクトはCentOS Streamへの移行を勧めています。以下手順で移行が簡単にできるとのこと。 Converting from CentOS Linux to CentOS Stream root@centos-linux# dnf instal
記事投稿者:山下 晴規 記事公開日:2014/02/12 最終更新日: (この記事は約1年以上経過しています。) Linux用アンチウイルスソフト「ClamAV」のバージョンアップと、ウイルス検知テストを行った記録です。 環境情報 OSは CentOS 6.4、ClamAVは0.98 から 0.98.1 にバージョンアップしました。 バージョンが古いと怒られる。 ウイルスデータベース更新コマンド「freshclam」を実行した際に、「WARNING: Your ClamAV installation is OUTDATED!」と怒られました。 # freshclam ClamAV update process started at Tue Feb 11 13:53:44 2014 WARNING: Your ClamAV installation is OUTDATED! WARNING:
初めに perlにはstart_serverというデーモン管理プログラムがあるのですが、 これがlogrotate時にログファイルを再オープンするような機能を、 どうも持ってなさそうだったので、別の方法として表題の手法を取りました。 (環境はCentOS7です) 準備 例えば下記のようなwebアプリがあったとして (例はperlですが、別にrubyでもpythonでもnodeでも何でも構いません) use strict; use warnings; use 5.010; use Plack::Request; my $i = 0; my $app = sub { my ($env) = @_; my $req = Plack::Request->new($env); say "STDOUT : request $i"; warn "STDERR : request $i"; $i++; m
ブログは久しぶりだが、golangも久しぶりだ。 歳を取るというのは困ったもので、コマンドが思い出せない・・・。 自分のためにメモを残そう。 環境変数 GOPATHだけ設定しておけば事足りる。 ディレクトリ GOPATHの下に、bin, pkg, srcディレクトリを作れば良い。 作業場所は、srcの下になる。 githubなどで管理しないなら、srcの下に直接ディレクトリを掘って、そこで作業すれば良いだろう。 githubなどを使うなら、src/github.com/<githubのアカウント>/<githubのリポジトリ>、というディレクトリを作って、そこで作業すれば良いだろう。 go.mod 最近は、go.modを使うのがよさそうだ。 作業するディレクトリの一番上で、go mod init、でデフォルトのgo.modファイルができる。 あとはgo getすれば関連するパッケージなんか
2022年8月、Go 1.18対応版にアップデートしました 久しぶりのGoネタです。Go 5 Advent Calendar 2020の18日目が空いていたので書きました。 Goで実装されたコマンドでは、ビルドした時点のバージョンを埋め込むため以下のようなMakefileを用意することがあると思います。 .PHONY: build build: go build -ldflags '-X main.Version=$(VERSION)' しかしこの方法では、go installなどMakefileを経由せずビルドしたバイナリには適切なバージョンが埋め込まれない問題があります。個人的な意見では、可能な限りgo getでインストールできる状態を維持した方が良いと思っていますが、バージョンを埋め込むためには他に方法がないので仕方がないと理解していました。しかしGo 1.19現在、runtime/
すみません、ISUCONのアレに火がついてしまったので..。 Advent Calendarとはとくに関係がありません。 qiita.com qiita.com こちらの記事をみて、気になってしまったので interpolateParams の追加とMySQLチューニングをしてベンチマークを回してみました。 ベンチマークの環境が公開されているのは素晴らしいですね。 github.com 8vCPU/16GB Memのc5a.2xlargeなEC2のインスタンスを起動して、以下の手順にしたがってdockerとdocker-composeをインストールしました。OSはUbuntu 20.04を使いました。 docs.docker.com docs.docker.com 上記のbenchmarkのrepositoryをgit cloneし、compose build && compose upし
ACCESS(5) ACCESS(5) 名前 access - Postfix アクセステーブルの書式 書式 postmap /etc/postfix/access postmap -q "string" /etc/postfix/access postmap -q - /etc/postfix/access <inputfile 解説 access(5) テー ブルは Postfix SMTP サーバにメールを選択的に受け入れる か、または拒否するかをオプションで指示します。 access は特定の ホ ス ト 名、 ドメイン名、ネットワーク、ホストアドレスまたはメールアドレスを許可 したり拒否できます。 例はこのマニュアルページの "例" セクションを参照してください。 通常、access(5) テーブルには postmap(1) コマンドへの入力に使われるテ キ ス トファイルが指定
Posted by OOHASHI on Mar 2nd, 2017 こんにちは、ひさっしーです! 今回は、久しぶりにGitネタです。 Gitを使っている方のあるあるかと思いますが、急いで作業している時にコミットメッセージを書き間違えたままcommitしてしまった!なんてことありますよね。 また、グランフェアズではBitbucketで課題を発行してタスクをこなすことがあるので、コミットメッセージに「refs #25」などをつけてコミットを該当の課題と関連付けたりするのですが…これを書き忘れたり、間違えて違う番号にして関連付けをミスったり…ということもあったりします。 コミットメッセージを書き間違えた! 課題との関連付けをし忘れた! そういった迷えるうっかりさんを救う、「コミットメッセージを後から変更する方法」を今回はご紹介します! 【初級編】直前にコミットしたメッセージを変更する 例えばこ
何が起こったの? CentOSプロジェクトがCentOS Streamに開発をシフトしていくことを宣言しました。これに伴ってRHEL 8の再構築としてのCentOS Linux 8は2021年に終了予定となりました。 ref: https://blog.centos.org/2020/12/future-is-centos-stream/ CentOSはLinuxの2大ディストリビューションの一つであるRed Hat Enterprise Linuxから商用パッケージを抜いてリビルドしたバージョンです。 商用パッケージが抜いてあるため、サポート無しで良ければ無料で本番環境で利用できるという事でOSの商用サポートを必要としないようなケースでよく利用されています。 今回、CentOS Linuxが終了してCentOS Streamになる事でCentOS終了!? という感じで一瞬ビビりましたがそ
「PerlではこうだけどGolangだとこう書く」のリストです。 これまでPerlを使ってきて、Golangに入門した方向け。すごくニッチです。 スクリプトとコンパイル言語、動的型付けと静的型付けと全く違う言語であり本来比較にならないかと思います。 しかし基礎構文レベルの細かいことでPerlだとこうだけどGolangだとどうやるんだろ?なんて調べることが多く、自分の勉強がてらまとめてみました。 公式リファレンス Perldoc The Go Programming Language Specification 手元確認バージョン Perl v5.16.3 Golang 1.11.1 (Playground) 表の項目は細かい方に合わせています。数値と文字列で比較演算子が異なるPerlや、データ型が多いGolangなど。 コメント 意味 Perl Golang
Google chromeを利用してWebを閲覧していると、サーバー証明書に問題があるときに証明書エラーの警告画面を出してくれる。 これはユーザーの保護のためにはとても重要な機能だ。 重要な機能なのだが、検証のために自己証明書を利用していたり、プライベートIPでアクセスしたい時など、証明書エラーを回避したい時がある。 そして、Selenium + Headless Chromeを利用していると、このエラーページが回避できない。(以下のような空白のページが返る、スクショも真っ白になる。) Webアプリケーションの自動テストの時など困る。 回避策としては、これはHeadless(画面無し)状態固有の制限事項なので、Virtualdisplay(Xvfb)を利用して非ヘッドレスモードで起動する方法もある。 が、Xvfbが使えない環境もあると思うので、Chromeの機能だけで実現できないかどうか調
Go言語とSeleniumを使ってE2Eテストコードを作ろうと思いましたが、「 invalid session id」が発生しました。 本記事では、Invalid session idが発生した原因と解決策について記事にしています。 原因 色々な原因があると思いますが、私の場合は、Chrome DriverのバージョンとChromeのバージョンの不一致が原因でした。 Chrome Driverは、Go言語/SeleniumとChromeとを繋ぐドライバーです。これにはバージョンが存在します。 また、Chromeにもバージョンが存在します。 これらが一致していないとプログラムは動作しませんでした。 解決策 私は、もともとbrew(Macなので)でChrome Driverを入れてました。 そのため、解決策は、Chrome Driverをアップグレードすることです。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く