sar(sysstat)とは LoadAverageやCPU使用率、ディスクI/Oの状態を表示できるコマンド。 何より便利なのは、過去にさかのぼれる点。 sarのインストール
![sar(sysstat)によるボトルネック特定 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/86cbd852c9ffd6f1c10615e3d17416ce04e9f302/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9c2FyJTI4c3lzc3RhdCUyOSVFMyU4MSVBQiVFMyU4MiU4OCVFMyU4MiU4QiVFMyU4MyU5QyVFMyU4MyU4OCVFMyU4MyVBQiVFMyU4MyU4RCVFMyU4MyU4MyVFMyU4MiVBRiVFNyU4OSVCOSVFNSVBRSU5QSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9Yjc1NTFmZThlN2MwNWY3ZjAxNjVjY2QzZWY3YTJjNjE%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwa2lkYWNoMSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9NmM0Zjk3YWIyZTVjYjk4NDc3YzViYTAyZGQzMjczYjQ%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Dd43c8de0e9849eed999d11f20a884731)
sar(sysstat)とは LoadAverageやCPU使用率、ディスクI/Oの状態を表示できるコマンド。 何より便利なのは、過去にさかのぼれる点。 sarのインストール
sar で収集したリソース使用情報が sadf コマンドで TSV として出力 (2014/8/6追記) sar で収集したリソース使用情報が sadf コマンドで TSV として出力できる - 宮川拓の日記 ↑全く知りませんでした 私がよく利用するoption (2013/8/6追記. よく忘れるので) $ sar -r -s 00:00:00 -e 01:00:00 -f /var/log/sa/sa03 オプション 内容 例 -q load average $ sar -q -u cpu使用率 $ sar -u -b I/O回数とデータ量 $ sar -b -r メモリとスワップ使用率 $ sar -r -s 開始時間 $ sar -s 00:00:00 -e 終了時間 $ sar -e 03:00:00 -f 日付 ※ $ sar -f /var/log/sa/sa03 ※「
UnixおよびLinux系サーバの特長の1つは、SSHサービスを実行することでシステム管理者が安全にリモート接続をできるようにしてあることだ。もっともセキュリティ管理者に言わせれば、こうしたSSHサービス自体に対する攻撃も現在では当たり前の手口となってしまっている、ということになるだろう。そこで本稿では、SSHサービスを実行するマシンをブルートフォースアタック(総当たり攻撃)から防護する手段を解説することにする。そのために利用するのは、pam_ablプラグインというSSH用のプラグイン可能認証モジュール(PAM:pluggable authentication module)である。 pam_ablの入手については、モジュールをダウンロードしてコンパイルを自分で行うか、リポジトリからバイナリパッケージをダウンロードして直接インストールすればいい。モジュールをコンパイルする場合は、ソースのダ
連載目次 本日、Docker 1.0がリリースされました。開発元であるDocker社は公式ブログで、「エンタープライズでの活用に耐え得るものになった」と述べています。また、これと同時に企業向けサポートやトレーニング、コンサルティングも開始すると発表(参考:公式ブログ)。今後、企業での活用も増えることが予想されます。 1.0のリリースに合わせて、Dockerの名称変更がアナウンスされました。前回の「アプリ開発者もインフラ管理者も知っておきたいDockerの基礎知識」で概要、特徴や動作環境を説明したDockerの本体となるソフトウェアは、今後「Docker Engine」と呼ばれることになります。これにDocker社が提供するWebサービスである「Docker Hub」、APIを介して連携するサードパーティのソフトウェア/サービスによるエコシステムを含めたDockerによるプラットフォーム全体
はじめに サーバを運用したり環境を構築したりしていて「あれ。あのプロセスで吐いてるログどこだっけ・・」など困るときがあります。 そんなときに頼りになるかもしれないコマンドを 3つご紹介します。 @madeth 師匠に教えていただきました。 1. proc でプロセスが使っているファイルを見る 困ったこと プロセスの吐くログのパスがどうしても分からない・・。 解決法 (編集 2014/09/10) 知りたいプロセスの ID を調べます。 $ ps aux | grep unicorn deploy 3335 xxx xxx xxx xxx X XX 15:14 0:07 unicorn master -c /var/www/myproject/unicorn/staging.rb -E staging -D プロセスID (この場合は 3335) をもとに root 権限でファイルディスクリ
シングスブログ 中小企業のマーケティングやブランディングのコンサルティング。事業開発 (ビジネスモデルの開発)、デジタルマーケティングやウェブサイト改善など事業の持続的・長期的な成長・発展に貢献できるサービスを提供しています。 2018.2.20追記: Logwatchのコマンドが変わっていたので、書き直しました。ログ監視ツール Logwatch を使ってみる (アップデート版) Logwatch は、いろいろなログをまとめて集計し、レポートとして毎日定期的にメールで届けてくれる。不正アクセスや不具合の発見とサーバの監視に便利なツール。 Logwatch のインストール Logwatch は Perl で書かれていて Perl 5.8 が必要です。 yumからのインストールは、 $ yum install logwatch で、 ソースからのインストールは、こちらから。 Logwatch
ルーター経由接続によるインターネット常時接続環境である(当サイトはIIJmioひかりによるインターネット常時接続環境) 固定または非固定のグローバルIPアドレス環境である(当サイトはGMOとくとくBBの固定グローバルIPアドレス環境(逆引きも可能)) ※メールサーバーを構築する場合は逆引き可能な固定グローバルIPアドレス環境が望ましい(非固定グローバルIPアドレスや、固定グローバルIPアドレスでも逆引きしたホスト名とメール送信元ホスト名が異なる場合にメール受信を拒否するメールサーバーがまれに存在するため) OSのインストール時を除き、サーバーの操作はWindowsからコマンド操作で行なう ■コンテンツ ※ホスト名やドメイン名、IPアドレスは各自の環境に置き換えること ※各目次に表記してあるバージョンは、当サイトで確認をとったCentOSのバージョンを示しており、そのバージョンでないとできな
Linuxをルーターにする。ここでは、一般的な市販のルーターと同じように以下のことができるようにする。 ※Linuxをモデムで直接PPPoE接続する場合のみで、市販ルーター経由接続環境の場合は不可 【Linuxルーターでできるようにすること】 ・グローバルIPアドレス1個で、内部の複数のマシンが同時にインターネットを利用できるようにする・・・IPマスカレード ・各種サーバーサービスに必要なポート以外の外部からのアクセスは遮断する・・・ファイアウォール ・サーバー機とルーター機が異なる場合でも外部からサーバー機の各種サーバーサービスへアクセス可能にする・・・NAT 【必要な機器】 ・ネットワークアダプタ(NIC)×2(インターネット(外部向け)接続用とLAN(内部向け)接続用の2枚) 【前提とするネットワーク条件】 ネットワークアドレス:192.168.1.0/24 LinuxルーターIPア
前回はkeepalivedを使ってWebサーバを冗長化してみました。 今回はkeepalivedのもう一つの機能であるVRRPを使って、ロードバランサ自身を冗長構成にしてみたいと思います。 ┌─────┐ │ client │ └──┬──┘ │[10.10.31.200] │ ━━━━━━━┯━━━━┷━━━━━┯━━━━━━━━━ 10.10.31.0/24 │ │ │ │ │ ←(10.10.31.10) → │ │ ←{10.10.31.100}→ │ [10.10.31.11]│ │[10.10.31.12] ┌─┴─┐ ┌─┴─┐ │ lv1 │ │ lv2 │ └─┬─┘ └─┬─┘ [192.168.31.11]│ │[192.168.31.12] │ ←(192.168.31.10)→│ │ │ ━━━━━━┯┷━━━━━━━━━━┷┯━━━━━━━━ 192.168.3
前回までで、 複数のWebサーバにロードバランスする というところまではできました。 これでリアルサーバへ負荷分散することができたのですが、冗長性がありませんでした。つまり、リアルサーバがダウンしても、ロードバランサはそれを認識できず、ダウンしているリアルサーバなのにパケットを送ってしまっていました。 このとき、クライアントから見ると、たまにサーバから応答がないように見えてしまいます。 というわけで今回は冗長化のお話、 リアルサーバのヘルスチェック を紹介したいと思います。 今回はkeepalivedを使います。 おおざっぱにいうと、keepalivedは2つの機能を提供します。 1. ヘルスチェック機構と連携したIPVSでのリアルサーバの管理 (--check) 前回ipvsadmコマンドを使って行ったような、バーチャルIPアドレス (VIP) やリアルサーバの管理を設定ファイルに記述す
DSASのロードバランサは高価なアプライアンス製品ではなく、LinuxのLVS (Linux Virtual Server)を利用しています。 安価、というか、ハードウエア以外は金銭的コストがゼロなので、一般のクライアントからのアクセスを受ける外部ロードバランサのほかに、内部サービス用のロードバランサも配置しています。それぞれactive, backupで2台ずつあるので合計で4台もロードバランサがあることになります。(こんな構成を製品を使って組んだら数千万円すっとびますね) また、ネットワークブートでディスクレスな構成にしているので、ハードディスが壊れてロードバランサがダウンした、なんてこともありません。 ですので「ロードバランサは高くてなかなか導入できない」という話を耳にする度にLVSをお勧めしているのですが、どうも、 なんか難しそう ちゃんと動くか不安 性能が出ないんじゃないか 等々
あとで書く、と言った手前なので書くとします。 DSASの中の人がすごい勢いで LVS の話を書いてくれてます。この辺。LVS を使うと Linux と箱でロードバランサが作れちゃいます。普通に買ったら数百万とかしちゃうやつ。 DSAS の中のひとに感謝しつつ、いい機会なのでやってみよう! と思っていろいろ試して昨日あたりからはてなの中でも LVS + keepalived で動かしはじめてます。いまのところ問題なし。 そのロードバランサをどこに使ってるかですが、普通ロードバランサというとインターネットからの入り口のところに置いてウェブサーバーの負荷分散に使うイメージがあります。が、今回ははてなでは MySQL のスレーブの手前に置くという役割でとりあえず使いはじめました。 +-----------+ +-----------+ | mod_perl | | mod_perl | +----
多数のクライアントがアクセスするような負荷の高いサービスや停止させられないサービスを運用する場合、複数のサーバーを使ってサービスの負荷分散や冗長化を行うのが一般的だ。本記事では、「Linux Virtual Server(LVS)」を使ってこのような構成を実現する方法について紹介する。 Linuxサーバーをロードバランサにする「Linux Virtual Server」(LVS) 最近では多数のCPUコアを持つサーバーが安価で利用できるようになり、サーバー1台の処理能力は飛躍的に向上している。しかし、リクエストの処理に多くのリソースを使用するようなサービスや、短時間に多数のリクエストを処理する必要があるサービスでは、1台のサーバーだけでは処理能力が不足する場合がある。このような場合、複数台のサーバーで同じサービスを運用し、ロードバランサを使ってリクエストを振り分けることで負荷の分散を図るこ
ブラウザからPHPスクリプトにアクセスして、PHPプログラムからsudoコマンドを実行する方法です。 私の場合は、手元のfedoraが動いているサーバで試してみましたが、「anysense-devel」さんの記事通りに実行出来ましたので、ご紹介、というか今後の自分のためにもメモしておきます。 以下、参照元「anysense-devel」さんの記事です。 ご存知の通りPHPからコマンドを実行するにはexec()やsystem()等を使えばいいんですが、Apacheに実行権限が無いファイルを扱う場合はsudoしてから実行する必要があります。 <?PHP $cmd = "echo 'password' | sudo -S ls /root"; exec($cmd, $output); print_r($output); ?> みたいに-Sを付けてやればパイプでパスワードを渡すことが出来ます。 こ
普段Webサーバを運用していて、めんどくさいトラブルのひとつに「Segmentation fault」があります。 あれー?なんか500エラーがでるなーなんて思ってログを見るとSegmentation faultになってるときは死にたくなります。 そもそもSegmentation faultはメモリ上にあるデータに対して不正が行われたときに起こるもので、 インフラエンジニアにとってはなかなか手がだせないところでもあります。 それでもなんとかして治さないといけないわけなので せめてどのプログラムが悪さしてるかどうかぐらいは調べ上げてみます。 apacheでのログ apache + mod_perl での環境です。 こんな感じでエラーがでます。 #tail error_log [notice] child pid 26028 exit signal Segmentation fault (11
原因はおそらくwebサーバ〜DBサーバ間のセッションがネットワーク的に不安定だったからだと思うけど、DBサーバで netstat -an すると 大量の CLOSE_WAIT のセッションが残ってしまって、MySQL の最大コネクション数にまで達してしまってwebの表示が出来なかった。CLOSE_WAIT をいきなり消すことは出来ないので、早めに消えるようにしたいときは tcp_keepalive_time TCPセッションが確立されて検査が実施されるまでの時間 時間になると tcp_keepalive_intvl と tcp_keepalive_probes の値にしたがって検査を実施する tcp_keepalive_intvl 次の検査を実行するときの待ち時間 tcp_keepalive_probes 検査の回数のそれぞれの値を小さくしてあげればよい。変更方法は vi で :wq する
サーバの構築は難しいが、それ以上に困難なのがそれを動かし続けること、そしてトラブルに迅速に対応することだ。サーバの動作状況を監視し、障害の予兆や発生をより早く検知できる体制を整えよう。(編集局) いまは正常に動作しているシステムだとしても、さまざまな原因でトラブルが発生する可能性があります。管理者は、こうしたネットワークシステムの動作を正常に保ち続ける必要があります。LAN内に設置したファイルサーバは企業活動においてクリティカルな存在になっています。インターネットを利用するに当たって、メールやDNS、Webといったサーバはすでに必須になってきているため、サービスが止まってしまうと業務自体が停止するといっても過言ではない状況になっています。 システムに障害が起こらないように、そして万が一障害が発生してもすぐに検知し、復旧できる体制を整えておきましょう。システムを復旧する方法については前回解説
This service will check your server to see if it is possible for a third party to relay mail from your server. This service will test several techniques for sending relayed mail, but no mail will actually be sent to your server. If your server passes all tests performed by this serivice, no relays accepted in blue will be dispayed at the bottom of the output report. If any or all of the tests f
ここでは、ネットワーク上のサーバー及びクライアントマシンの時刻同期をとるためのプロトコルであるNTP(Network Time Protocol )について解説していきます。PCの時刻はマザーボード上のリアルタイムクロック(RTC)によって時間が表示されていますが、この時間はあまり正確ではなく、毎日少しづつ時間が狂っていきます(電池の消耗度にもよりますが、年間約10分程度)。NTPサーバーは、タイムサーバーに接続されたラジオ・クロックや原子時計から時刻を取得し、UTC (協定世界時)に同期させることができます。PCの時刻が狂っていると、メールの送受信時刻が狂ったり、こまめにとっているログの取得時間なども狂ってくることになります。Linuxでは標準でNTPサーバーが付属しているので是非、活用して時刻同期を行いましょう。
EPELリポジトリ導入(EPEL)を参照してEPELリポジトリを導入する※CentOS7の場合 [root@centos ~]# yum -y install phpMyAdmin ← phpMyAdminインストール [root@centos ~]# vi /etc/httpd/conf.d/phpMyAdmin.conf ← phpMyAdmin用Apache設定ファイル編集 <Directory /usr/share/phpMyAdmin/> AddDefaultCharset UTF-8 <IfModule mod_authz_core.c> # Apache 2.4 <RequireAny> Require ip 127.0.0.1 Require ip ::1 Require ip 192.168.1.0/24 ← 追加(内部ネットワーク(例:192.168.1.0/24)から
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く