「linux」タグアーカイブ

「うるう秒」挿入のお知らせ、何?

総務省 情報通信国際戦略局 技術政策課より

「うるう秒」挿入のお知らせ
http://www.soumu.go.jp/menu_news/s-news/01tsushin03_02000031.html

うるう秒とは(上記PDFがHTML化していないので、抜粋)
時刻は、かつて地球の公転・自転に基づく天文時(世界時)から決められていましたが、1958年より原子の振動を利用した原子時計(注)に基づく国際原子時が開始され、1秒の長さが非常に高精度なものとなった結果、原子時計に基づく時刻と天文時に基づく時刻との間でずれが生じるようになりました。
そこで、原子時計に基づく時刻を天文時とのずれが0.9秒以内におさまるように調整を行った時刻を世界の標準時(協定世界時)として使うことにしており、今回その調整を行うために「うるう秒」の挿入が行われるものです。うるう秒の調整は1972年から数年に1回程度行われています。

「うるう秒」の調整は、地球の回転の観測を行う国際機関である「国際地球回転・基準系事業(IERS:International Earth Rotation and Reference Systems Service、所在地:パリ)」が決定しており、これを受けて世界で一斉にうるう秒の調整が行われています。日本では、総務省及びNICTが法令に基づき標準時の通報に係る事務を行っており、IERSの決定に基づきNICTにおいて日本標準時にうるう秒の挿入を実施しています。
NICTでは、本年1月5日のIERSのうるう秒挿入の決定を受け、7月1日(日)に日本標準時に「うるう秒」の挿入を実施します。なお、最近では3年半前となる平成21年(2009年)1月1日にうるう秒の調整が行なわれました。

技術者的には、
当然、電波時計じゃない人は1秒腕時計がズレるが、たぶん、ほぼ気がつかない。
パソコンやサーバはNTP(Network Time Protocol )の設定されていれば、時間が修正されます。
(NTPの設定を知らんという人があれば、言ってください、記事化します。)

困るのは、1秒単位で統計している人やシステム、1秒単位で決済等を行う人やシステム。
たとえば、車のスピードを測り、交通情報を出しているところ、60秒が61秒になるので、少しだけ、渋滞が緩和した情報になる可能性がある。
GPS等を使っている場合は、位置調整でスピードと距離を使っている場合、少し誤差がでる可能性がある。
システムによっては、時間が逆行する場合があるので、この一秒を使って、オークションサイト等で不正が起きる可能性がある。

技術的にはIBMが分かりやすい。
【Technical Notes】Linux システムクロックの『うるう秒』調整
http://www-06.ibm.com/jp/domino01/mkt/cnpages7.nsf/page/default-0019DB89?OpenDocument&TableRow=1.2

Redhat up2date スキップしたい場合。

Redhat Enterprise
up2date -l でアップデート一覧を出し、
up2date -u で問答無用にすべてアップデートすることがあります。
しかし、モジュールがないとエラーがでて、そして、途方にくれますよね。
特に、開発系のものはよくある。
大量になければ、一つ一つアップデートすればいいでのが、
この1つだけスキップしたい!

/etc/sysconfig/rhn/up2date

pkgSkipList=perl*;kernel*;
のように書くです。

ちなみに、他でも書いていますが、up2date -l でup2date自体がでたら、先にup2date -u up2dateをした方がいい。
最近は自動で先にやってくれるか、危険。

ZABBIXエージェントを使用しないサーバ監視方法(ping監視)

ZABBIXエージェントを使用しないサーバ監視方法(ping監視)
Zabbix 1.8.7の場合

○ZABBIXサーバの設定
■初期設定
通知用のメール設定
[メニュー] → [管理] → [メディアタイプ] → [Email]から設定

■ZABBIXサーバの監視設定
ZABBIXサーバ自体の監視を有効に変更
※有効にする前に下記不要な監視(FTP,IAMP,POPのサービス監視)を無効にします。

・プロセス監視の設定変更
1.[設定]→[ホスト]→ [Zabbix server – アプリケーション]を選択。

2.「Template_Linux:Processes」項目の[アイテム]選択

3.「proc.num[inetd]」を選択して無効に変更

・サービス監視の設定変更
1.「Template_Linux:Services」項目の[アイテム]を選択

2.「net.tcp.service[ftp]」、「net.tcp.service[nntp]」、「net.tcp.service[imap]」、「net.tcp.service[pop]」を選択して無効に変更

・ZABBIXサーバ自体の監視を有効にする
1.[設定]→[ホスト]→ [Zabbix server – 無効]を[Zabbix server – 有効]に変更

■テンプレートの追加
・テンプレートのダウンロード

http://www.zabbix.jp/modules/bwiki/index.php?ZABBIX-JP%B4%C6%BB%EB%A5%C6%A5%F3%A5%D7%A5%EC%A1%BC%A5%C8%C7%DB%C9%DB%A5%DA%A1%BC%A5%B8

(ZABBIX-JP監視テンプレート配布ページ)
Template_OS_Linux
Template_App_bind
Template_App_cupsd
Template_App_dhcpd
Template_App_ldap
Template_App_postfix
Template_App_sshd
Template_App_samba
Template_App_httpd

・ダウンロードしたテンプレートのインポート
1.[設定]→[テンプレート]→[テンプレートのインポート]を選択

2.「インポートするファイル」を指定してインポートボタンを押下

■ping監視用のテンプレートを作成
・テンプレートの作成
[設定]→[テンプレート]→[テンプレートの作成]を選択

下記を設定して保存
~~~~~~~~~~~~~~~~~
名前 :Template_ping_check
グループ :Templates
~~~~~~~~~~~~~~~~~

・アイテムの作成
[設定]→[テンプレート]→[Template_ping_check – アイテム]を選択

・[アイテムの作成]を選択

下記内容でアイテムを作成
~~~~~~~~~~~~~~~~~
説明        :Ping Check
タイプ       :シンプルチェック
キー         :icmpping
データ型       :数値(整数)
データの形式     :10進数
値のマッピングの使用 :なし
アプリケーションの作成:icmpping
~~~~~~~~~~~~~~~~~

・トリガーの作成
[設定]→[テンプレート]→[Template_ping_check – トリガー]を選択

・ [トリガーの作成]を選択

下記内容でトリガーを作成
~~~~~~~~~~~~~~~~~
名前:Ping Check
条件式 :{Template_ping_check:icmpping.last(0)}=0
深刻度:重度の障害
~~~~~~~~~~~~~~~~~

○監視ホストの追加
1.[設定]→[ホスト]→[ホストの作成]

2.下記内容を設定して[保存]
~~~~~~~~~~~~~~~~~
名前:XXXXXXXXX
グループ:Linux servers
DNS名:XXXXXXXXXXXXXXX
IPアドレス:192.168.XXX.XXX
接続方法:IPアドレス
リンクしているテンプレート:Template_ping_check
~~~~~~~~~~~~~~~~~
※XXXXには任意の値を設定

3.監視データの確認
[監視データ] → [ダッシュボード] に追加したホストが表示される

zabbix-jp-1.8インストール手順

zabbix-jp-1.8インストール手順

【参考サイト】
http://wiki.livedoor.jp/you_hiko/d/Zabbix%201.8%A4%F2CentOS%205%B7%CF%A4%CB%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB%A4%B9%A4%EB%BC%EA%BD%E7#content_1_1

CentOS 5
Zabbix 1.8.7

■YUMのリポジトリをインストール

# rpm -ivh http://www.zabbix.jp/binaries/relatedpkgs/rhel5/x86_64/zabbix-jp-release-5-3.noarch.rpm

■現在使用しているリポジトリのZABBIXバージョンの確認

# alternatives --display zabbix-jp-release
zabbix-jp-release -ステータスは自動です。
リンクは現在 /usr/share/zabbix-jp-release/zabbix-jp-1.6.repo を指しています。
/usr/share/zabbix-jp-release/zabbix-jp-1.1.repo - 優先項目 10
/usr/share/zabbix-jp-release/zabbix-jp-1.4.repo - 優先項目 20
/usr/share/zabbix-jp-release/zabbix-jp-1.6.repo - 優先項目 40
/usr/share/zabbix-jp-release/zabbix-jp-1.8.repo - 優先項目 30
現在の「最適」バージョンは /usr/share/zabbix-jp-release/zabbix-jp-1.6.repo です

■優先順位を上げるバージョンを切り替える

# alternatives --config zabbix-jp-release

4 プログラムがあり ‘zabbix-jp-release’ を提供します。

選択       コマンド
-----------------------------------------------
1           /usr/share/zabbix-jp-release/zabbix-jp-1.1.repo
2           /usr/share/zabbix-jp-release/zabbix-jp-1.4.repo
*+ 3           /usr/share/zabbix-jp-release/zabbix-jp-1.6.repo
4           /usr/share/zabbix-jp-release/zabbix-jp-1.8.repo

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:4

■zabbixのインストール

# yum -y install zabbix zabbix-agent zabbix-server zabbix-server-mysql zabbix-web zabbix-web-mysql

■MySQLにzabbixデータベースを作成

# mysql -uroot -p
mysql> create database zabbix;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'xxxxxxx';
mysql> flush privileges;
mysql> quit

■初期データベースをインポート

# mysql -u zabbix -p -D zabbix < /usr/share/doc/zabbix-server-1.8.7/schema/mysql.sql
# mysql -u zabbix -p -D zabbix < /usr/share/doc/zabbix-server-1.8.7/data/data.sql
# mysql -u zabbix -p -D zabbix < /usr/share/doc/zabbix-server-1.8.7/data/images_mysql.sql

■PHP設定

# vi /etc/php.ini
; Defines the default timezone used by the date functions
; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone
date.timezone = Asia/Tokyo

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

; Maximum execution time of each script, in seconds
; http://www.php.net/manual/en/info.configuration.php#ini.max-execution-time
memory_limit = 128M
post_max_size = 16M
max_execution_time = 300
max_input_time = 300

■初期設定
1.Zabbixサーバー側

# vi /etc/zabbix/zabbix_server.conf
### Option: DBHost
#       Database host name.
#       If set to localhost, socket is used for MySQL.
#

# DBHost=localhost

### Option: DBName
#       Database name.
#       For SQLite3 path to database file must be provided. DBUser and DBPassword are ignored.

DBName=zabbix

### Option: DBUser
#       Database user. Ignored for SQLite.

DBUser=zabbix <- データベースユーザ名を設定

### Option: DBPassword
#       Database password. Ignored for SQLite.
#       Comment this line if no password is used.

DBPassword=XXXXXXXX <- コメントアウトを外してデータベースパスワードを設定

### Option: DBSocket
#       Path to MySQL socket.

DBSocket=/var/lib/mysql/mysql.sock

2.Zabbixサーバー起動

#/etc/rc.d/init.d/zabbix-server start

3.Zabbixエージェント側

# vi /etc/zabbix/zabbix_agentd.conf
### Option: Server
#       List of comma delimited IP addresses (or hostnames) of Zabbix servers.
#       No spaces allowed. First entry is used for receiving list of and sending active checks.

Server=127.0.0.1

### Option: Hostname
#       Unique, case sensitive hostname.
#       Required for active checks and must match hostname as configured on the server.
#       System hostname is used if undefined.

Hostname=Zabbix server

### Option: ListenIP
#       List of comma delimited IP addresses that the agent should listen on.
#

ListenIP=127.0.0.1

4.Zabbixエージェント起動

# /etc/init.d/zabbix-agent start

5.自動起動設定

# chkconfig zabbix-server on
# chkconfig zabbix-agent on

ディスク・パンクしたときにファイル容量を見る

ディスクが急に90パーセントになって、驚くことがありますよね。
そうです。普通は/var/logのログを見て、消せるものは消す。というのが
あるのですが、/var/logでも、DBの実データも巨大化していない。
しかし、確かにでかい。というときに。

このコマンド(linux OS)

du
指定したファイル以下の全ファイル階層による使用量を表示します。
そして、-hで単位で表示してくれる。なのでGとかを見つけてください。
( HELP-manより:
それぞれのサイズに、例えばメガバイトなら M のようなサイズ文字 を
付 加 す る 。 10 の 累乗ではなく 2 の累乗を用いるので、 M は
1,048,576 バイトを表す。)

こんな感じで出ます。下記は/からの容量です。これをうまくgrep等を使って、容量が多いものを見つけ出してください。
# du -h /
0 /misc
0 /net
16K /etc/xml
8.0K /etc/cluster
128K /etc/setuptool.d
8.0K /etc/cups/ppd
8.0K /etc/cups/interfaces
・・・・・・・

dkmsとは そして、bulidが終わらない。

■dkms(Dynamic Kernel Module Suppor)とは
Dell社が提供しているもので、モジュールを各カーネルに合わせて簡易な形でビルドとインストールして配置・管理するための仕組み。
ドライバー等のモジュールで使用します。

・Dell の DKMS ページ
http://linux.dell.com/dkms/
http://linux.dell.com/dkms/dkms-ols2004.pdf

下記のコマンドを使用する。
dkms build -m ドライバ名 -v ドライバのバージョン -k カーネルのバージョン –config Configの場所(/boot/の下にある場合が多い) –kernelsourcedir カーネルソースのディレクトリ –arch カーネルのarch
dkms install -m ドライバ名 -v ドライバのバージョン -k カーネルのバージョン –config Configの場所(/boot/の下にある場合が多い) –kernelsourcedir カーネルソースのディレクトリ –arch カーネルのarch

カーネルのarchは
uname -m
で情報取得

コマンド例:
dkms build -m hogehoge -v 2.9.1 -k 2.6.9-89.0.16.EL –config /boot/config-2.6.9-89.0.16.EL –kernelsourcedir /lib/modules/2.6.9-89.EL/build/ –arch i686
dkms install -m hogehoge -v 2.9.1 -k 2.6.9-89.0.16.EL –config /boot/config-2.6.9-89.0.16.EL –kernelsourcedir /lib/modules/2.6.9-89.EL/build/ –arch i686

■dkmsでbuildが何時間も終わらない。エラーも出ない。
make oldconfig….で何時間も止まってしまった方へ
kernelsourcedirと実際動いているのカーネルのバージョンが違う場合、この現象がでる場合があるようです。

当然、エラーがでると思うのですが、buildが終わらないままです。
カーネルをアップデートするか、ソースを同じものを用意して、再度buildしてみてください。

「共有オブジェクトファイルを開けません」と出たら。

linuxのコンパイル時や実行時で「共有オブジェクトファイルを開けません」または「cannot open shared object file」と
出て止まったら・・・
まず、makeのパラメータを疑うのですが、しかし、そのままメッセージを信用してみましょう。
そうです。共有オブジェクト→共有ライブラリの設定です。
#vi /etc/ld.so.conf.d/lib.conf←ここのファイル名は適当でよいので新規に用意します。
/usr/local/lib の一行を書き込む。使用したいライブラリーパスです。
それでファイルを閉じる。
共有ライブラリをシステムに認識させるためのコマンドを実行。
#ldconfig
ライブラリが登録されたか、表示オプションで確認。
#ldconfig -pで確認です。

LINUXでフォントをお探しな方へIPA Fonts

IPA(独立行政法人情報処理推進機構)という、いわゆる行政法人な機構が
真面目にフォントを作ってくれました。
最近まで知らなかったのですが例の渡邊フォントの事件があってから真剣に調べた。

・渡邊フォントの詳細はWIKIへ
http://ja.wikipedia.org/wiki/%E6%B8%A1%E9%82%8A%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88

・IPA フォント
http://ossipedia.ipa.go.jp/ipafont/

LINUXで使用する場合は、フォントを解凍して、
フォントのディレクトリに入れて、フォントキャッシュ更新です。
fc-cache -fv

・各OSのインストールについて
http://ossipedia.ipa.go.jp/ipafont/fontinstall.html

Redhat Enterprise Linux 5でのパッケージ追加(GUIで)

Redhat Enterprise Linux 5でうっかり、パッケージを
インストールし忘れたときに追加する方法。
意外に忘れるので、記述。
メニューの「アプリケーション」→「ソフトウェアの追加・削除」
「パッケージマネージャー」が開いたら、パッケージの場所を
記述するため、「編集」→「リポジトリ」
「リポジトリーマネージャー」が開いたら「追加」のボタンを
押す。
「新リポジトリーを追加」が開いたら、名前・説明の項目は適当で
場所はパッケージのDVDのある位置を指定して「OK」のボタンを押す。

パッケージ リポジトリー
パッケージ リポジトリー

すると、ブラウズに見慣れた名前のパッケージグループが表示される。

Redhat ES ver3.0でVNCの設定

注意:この内容に関して、弊社で一切保証するものではありません。
久々にVNCの設定で忘れていたし、検索したら結構資料が削除されていたので
書きました。

UIの「サービスの設定」で立ち上がりますが、接続はできません。
それはまず、ユーザーの設定が必要になります。

#vi /etc/sysconfig/vncserversで
VNCSERVERS=”1:aoki”
とユーザー名(今回は社長の名前、Redhatにあるユーザーにしてください)
を入れます。

$vncserverで実行するとパスワードを聞いてきて、
設定ファイルも作ってくれます。ディスプレイ番号が表示されますので
出力も良く見てください。

You will require a password to access your desktops.

Password:
Verify:

New ‘localhost.localdomain:13 (aoki)’ desktop is localhost.localdomain:13

Creating default startup script /home/aoki/.vnc/xstartup
Starting applications specified in /home/aoki/.vnc/xstartup
Log file is /home/aoki/.vnc/localhost.localdomain:13.log

クライアントからIP:ディスプレイ番号の指定でLOGINすると、
あれあれ、画面が退化しているとお思いの貴方!そう、まるで昔のソラリス!

では次に画面の設定をします。

$vi ~/.vnc/xstartupで


#!/bin/sh
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
と書き直してください。

$vncserverで起動して、VNCで接続してみてください。
Redhatのデフォルト画面が表示されるはず。