Posts Tagged ‘CentOS’

CentOS6 + zabbix : yum updateしたらrepomd.xmlが404 Not Foundになる件

火曜日, 12月 17th, 2013

サーバーの更新をしようとyum updateしたら、

[root@server yum.repos.d]# yum update
Loaded plugins: downloadonly, fastestmirror, priorities
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* extras: www.ftp.ne.jp
* updates: www.ftp.ne.jp
http://repo.zabbix.jp/zabbix/zabbix-1.8/rhel6/i386/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 – “The requested URL returned error: 404 Not Found”
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: zabbix-jp. Please verify its path and try again

という感じでエラーになった。

/etc/yum.repos.d/zabbix-jp.repo
を覗いてみると、zabbix-jpとzabbix-jp-relatedpkgsの両方がenabled=1になってる。

[zabbix-jp]
name=ZABBIX-JP – $basearch
baseurl=http://repo.zabbix.jp/zabbix/zabbix-1.8/rhel6/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-JP

 <省略>

[zabbix-jp-relatedpkgs]
name=ZABBIX-JP relatedpkgs – $basearch
baseurl=http://repo.zabbix.jp/relatedpkgs/rhel6/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-JP
gpgcheck=1

・zabbix-jpの方のbaseurlは存在しない(or 認証が入る)
zabbixサイトのインストール方法では、URLにrelatedpkgsが指定されている。
ということから、zabbix-jp-relatedpkgsの方だけを参照するようにしたら良いのかなということで、zabbix-jpのenabledを0に変更。以下のように。

[zabbix-jp]
name=ZABBIX-JP – $basearch
baseurl=http://repo.zabbix.jp/zabbix/zabbix-1.8/rhel6/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-JP

 <省略>

[zabbix-jp-relatedpkgs]
name=ZABBIX-JP relatedpkgs – $basearch
baseurl=http://repo.zabbix.jp/relatedpkgs/rhel6/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-JP
gpgcheck=1

するとエラーはでなくなりましたとさ。

CentOS5+Monitorix

日曜日, 6月 16th, 2013

自鯖のリソース監視をしてみるかなーと思い立つ。
自鯖はそこそこのスペックだけど、このサイトを上げているWebサーバー、自分のドメインを持つメール、MLシステム、諸事情で上げねばならなかったDNS、ウィルスチェック、MySQLなどなど、そこそこのプロセスが同時稼動しているので、軽量で手軽にセットアップできるものが無いかなと調べてみたら、、、
monitorixなるものを発見。あまり設定方法が記載されたサイトがヒットしなかったが、まぁ簡単なんでしょう、ってことで以下の手順でセットアップしてみた。

1. rpmforgeかepelのリポジトリに無いかなと思って検索してみたら、rpmforgeに存在した。

yum --enablerepo=rpmforge,epel list | grep [Mm]onitorix

2. そしてインストール。

yum --enablerepo=rpmforge install monitorix


・<省略>

============================================================
Package Arch Version Repository Size
============================================================
Installing:
monitorix noarch 2.5.2-1.el5.rf rpmforge 127 k
Installing for dependencies:
libdbi x86_64 0.8.1-2.1 base 37 k
lua x86_64 5.1.4-4.el5 epel 229 k
perl-Email-Date-Format noarch 1.002-4.el5 epel 15 k
perl-MIME-Lite noarch 3.029-1.el5.rf rpmforge 97 k
perl-MailTools noarch 1.77-1.el5.centos extras 91 k
perl-TimeDate noarch 1:1.16-5.el5 base 32 k
perl-rrdtool x86_64 1.4.7-1.el5.rf rpmforge 55 k
rrdtool x86_64 1.4.7-1.el5.rf rpmforge 916 k
ruby x86_64 1.8.5-29.el5_9 updates 279 k
ruby-libs x86_64 1.8.5-29.el5_9 updates 1.6 M
xorg-x11-fonts-Type1 noarch 7.1-2.1.el5 base 1.5 M

Transaction Summary
============================================================
Install 12 Package(s)
Upgrade 0 Package(s)

Total download size: 4.9 M
Is this ok [y/N]: yっとな。

3. vi /etc/httpd/conf.d/monitorix.conf
ひとまず許可するアクセス元のIPを設定(LAN内からと会社からアクセスできるように)。

allow from 127.0.0.1
allow from 192.168.NNN.0/24
allow from GGG.GGG.GGG.GGG/24

4. /etc/init.d/monitorix [start | restart]

5. /etc/init.d/httpd [reload | restart]

6. http://truering.info/monitorix

あー、なんて簡単なんでしょ。

でも、LISTENしているポートの内、HTTPSは表示されてないな。
HTTPSを含め、その他の特殊なポートはカスタマイズが必要な模様。RRDToolあたりを調べたらいいのかな。

眠くなったので本日は終了。

lvm2パッケージを消してしまった場合

木曜日, 7月 12th, 2012

CentOS 6 minimal で不要なパッケージ(私的に)

http://truering.info/?p=625

の続き。

仮想環境であれば、マザーボードの状態を監視するlm_sensorsは要らなかったな、、、と思って消したらlvm2を消してしまった。(lmなんちゃら==lvm2だったか???と思ってw)

論理ボリュームを利用しているにも関わらずlvm2パッケージを消してしまうと、再起動後は論理ボリュームが認識されずファイルシステムが読み取りとなる。
この場合は以下の手順で復旧できた。

1.電源投入
2.メンテナンスモードでログイン
3.読み取り専用を、書き込み可能状態にする。
投入するコマンドは以下の通り。
mount -o remount,rw /dev/mapper/VolGroup00-LogVol00_root
※/dev/mapper以降は、画面上に表示されているパスを入力する。
※df -hすると、/dev/mapper/VolGroup00-LogVol00_rootが/にマウントされていたので、
上記のパスだったが、そこは環境/状況に応じて切り替える必要があるかも。
4.lvm2を再インストールする。
yumが使えたら、
yum install lvm2
駄目なら、
rpm -ivh http://…/lvm2-2.02.95-10.el6.x86_64.rpm
※URLは、CentOSのミラーサイトなどからパッケージURLを求める。
5.再起動する。
※Hyper-V上のゲストOSの場合はうまく再起動できなかったので、強制電源OFFして起動しなおしたらうまくいった。

policycoreutilsパッケージを消してしまった場合

水曜日, 7月 11th, 2012

CentOS 6 minimal で不要なパッケージ(私的に)
http://truering.info/?p=625

の続き。

削除可能なパッケージを探す場合、yum removeで消そうとしてkernelとか主要パッケージが対象となるか(消さない)、ならないか(消す候補)で調べていったのだが、中には単体で消せそうだけど、消したら次回起動時にkernel panicやファイルシステムが読み取り専用で起動してしまうこともある。その1つが、policycoreutilsパッケージ。(恐らく、SELinuxの関連パッケージを消したら不要だと思うけど、無効にしただけだとどうか、、、は試したことがないような気がする)

policycoreutilsパッケージを消した時、kernel panicになり起動ができなくなるのだが、この場合は、SELinuxを無効に&Singleモードで起動し、policycoreutilsを再インストールすれば起動できるようになる。超ざっくりだけど手順は以下の通り。

1.電源投入。
2.Grubの起動直後のカウントダウン時に何かしらのキーを選択して、Kernel一覧を表示する。
※CentOS(2.6.xxx…)という項目が一覧表示され、古いKernelを選択できる画面。
3.先頭にある「CentOS(2.6.xxx…)」を選択したまま、e を選択。
4.さらに「kernel /vmlinuz…」を選択して、e を選択。
5.「kernel /vmlinuz…」のコマンド行の編集状態になるので、末尾に「selinux=0 single」を追記。
6.エンターキー押下などにより、編集状態を終了。
7.b を選択して起動。
8.yum install policycoreutils でインストール。
※起動直後はメンテナンスモードになって、rootのパスワードとかを入れないといけなかったかも。
9.再起動

policycoreutilsパッケージを消してkernel panicになってしまう以外に、、、lvm2パッケージを削除してしまって、再起動後は(論理ボリュームが正常に認識されずに)ファイルシステムが読み取り専用になる、、、なんてことも。この話も後程。

CentOS 6 minimal で不要なパッケージ(私的に)

火曜日, 7月 10th, 2012

ここ最近、CentOS 6をインストールする時はminimal構成でセットアップしてから必要なパッケージをインストールしている。
例えば、以下のように。

yum install acpid (仮想の場合は不要。論理スイッチないし)
yum install logwatch
yum install ntp
yum install wget
yum install yum-cron

そして、/etc/init.d配下を覗いて不要そうなデーモンを削除する。(パッケージ名は、rpm -q –whatprovides /etc/init.d/xxxxx で調べる)

yum remove device-mapper-multipath (CentOS5では、kernelも対象になるのでNG)
yum remove iscsi-initiator-utils (CentOS5では、kernelも対象になるのでNG)
yum remove libcgroup
yum remove fcoe-utils
yum remove lldpad
yum remove rpcbind
yum remove yum-updatesd

これでスッキリするんじゃなかろうか。

上記削除パッケージは、yum removeで消そうとして、kernelとか主要パッケージが対象となるか(消さない)、ならないか(消す候補)で調べていったのだが、中には単体で消せそうだけど、消したら次回起動時にkernel panicやファイルシステムが読み取り専用で起動してしまうこともあるので注意が必要だ。(その話は、後述)

EOLを迎えたCentOS 4のリポジトリについて

木曜日, 5月 10th, 2012

EOLを迎え、各所のミラーリングサイトからは消滅してしまっているが、以下の方法で未インストールだったパッケージなどのインストールはできる模様。

—– /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever – Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
baseurl=http://vault.centos.org/4.9/os/i386/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=1
protect=1
—–

既存のmirrorlistかbaseurlをコメント化するなどして、新たに
http://vault.centos.org/4.9/
を参照するbaseurlを追記する。(上記のbaseurlの行がこれに該当する)

http://vault.centos.org/4.9/の後ろに来る「os」や「i386」は、セクションやOSのアーキテクチャによって切り替えること。

updateセクション([update])なら、
baseurl=http://vault.centos.org/4.9/updates/i386/
となるし、

OSが64bit版なら、
baseurl=http://vault.centos.org/4.9/os/x86_64/
になる、ということ。

D-Subアダプタ破損 -> リモートセットアップ

金曜日, 3月 9th, 2012

 IDCから撤去してきたPowerEdge SC1425のディスプレイアダプタ(D-Sub)が壊れてしまったのか、電源ON直後のBIOS起動画面からディスプレイ全体に白と黒の縞々が点滅し、何も見えない状態になってしまった。

 やや古めのサーバー機でコンソール用ポートもないし、PCIインタフェースのグラフィックボードも挿せないしで、どうしようかなぁ~と悩みながら色々と調べていると、セットアップ時からVNCを利用してリモートからセットアップが行えることが分かった。

 SSHは生きているので、まずは起動中に以下の作業を。

cd /boot
wget http://ftp.riken.jp/Linux/centos/6/os/x86_64/isolinux/initrd.img
wget http://ftp.riken.jp/Linux/centos/6/os/x86_64/isolinux/vmlinuz

—– vi grub/grub.conf —–
title remote setup
root (hd0,0)
kernel /vmlinuz lang=ja_JP.UTF-8 keymap=jp106 method=http://ftp.riken.jp/Linux/centos/6/os/x86_64 vnc
ksdevice=eth0 ip=192.168.1.2 netmask=255.255.255.0 gateway=192.168.1.1 dns=192.168.128.1
initrd /initrd.img
—–
※grub.confに上記のの行を追加。
※DHCPにすると、割り当てられたIPが分からないので、固定で。
※次回起動時のデフォルトも、追加した「remote setup」が選ばれるように。

 よっしゃーと思って再起動したら、指定したIPにアクセスできない、、、

 そこで、nmapでVNCを上げているDELLのMACアドレスを持つサーバーを探してみたら、、、固定IPが有効になっておらず、DHCPのIPアドレスになってた、、、(Linuxだと、ブロードキャストPingに応答してくれるのだが、この時点では応答してくれなかった)

 VNCでアクセスしてみたら、無事CentOSのセットアップ画面が見え、無事セットアップも完了した。

 ※注意!!※
 ここ最近、CentOS 6をminimalセットアップしてきたが、基本的にONBOOT=”no”の設定になっていた。(なので、直ぐにはネットワークが利用できない状態だった)
 セットアップ後に再起動したら使えなくなってただの鉄の塊になっては困るので、VNCでセットアップする時はひとまずminimal以外にして進めたのだが、インストール環境後は無事DHCPが有効になっており、またIPアドレスも再度同じものが割り当てられたので、すぐさまSSHでリモートアクセスすることができた。minimal以外にしたのが良かったのか、VNC経由でセットアップしたら(minimalでも)DHCPを有効にしてくれるのかは、現時点では不明。

 minimal以外にしたら、以前のセットアップのようにIPアドレス設定も行えるかと思っていたのだが、そういう画面も出る間もなくMBRの書込みやフォーマット、セットアップが始まったので、リモートアクセスが確認できるまではちょっとドキドキだったw。

 いずれにしろ、サーバー機1台が無駄にならずによかったよかった。

Hyper-V+CentOS5=時刻ズレ

火曜日, 3月 6th, 2012

Hyper-V上のCentOS6は時刻がズレない。Hyper-V上ってことを検知して、刻みを補正するように対応したのだろうか。
ntpdでガシガシ補正されているだけかもしれないが、同じ環境上のCentOS 5ではガンガンとズレる。

例の如く、Kernelの起動オプションに補正用の設定を施し、様子を見るがそれでもズレる。
あれ???と思って調べてみたら、どうやらタイムゾーンがJSTにも関わらず、9時間ほど進んでいる。

以下の要領で、GMTにしたら起動直後も正しいのだが、、、
cp /usr/share/zoneinfo/GMT /etc/localtime
なんか気持ち悪い。

あ、起動直後は合っているように見えても、NTPで補正されて本来のGMTの時刻になる。
ってことは以前も、JSTではない状態で、さらにNTPの補正でズレてたのかも。

cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
して、再起動後はタイムゾーンはAsian/TokyoでJSTになってるが、やはり+9時間でえらい先に行ってる。何かしらの理由がありそうだけど、暫くしたらNTPで補正されて正しくなった。これでまたまた様子見。

Hyper-V + CentOS

水曜日, 2月 8th, 2012

先日、Hyper-VのゲストOSにCentOS 6をセットアップした。
初めてCentOS 6をセットアップした時に躓いたのはネットワークが正常に認識されないこと。
これはどうやら、デフォルトで追加されるネットワークのハードウェアデバイスが「ネットワーク アダプター」になっていることのようで、一旦削除してから「レガシ ネットワーク アダプター」を追加する必要があるようだ。

その後、別の環境を作る必要がでてきたので、、、
1.最初に作ったVHDファイルをコピー&リネーム
2.新規に仮想マシンを追加
3.HDDには、手順1.でコピーしたVHDファイルを指定
という流れで作った。

この時できた環境も「ネットワーク アダプター」になっているため、同様に「レガシ ネットワーク アダプター」を追加し直してやる必要があった。

そしていざ起動してみたらeth0が認識されずネットワークが有効にならない。
/etc/init.d/network restart
などしてみるが、エラーになる。

system-config-network
で、eth0を再作成しようとしたけどうまく行かない。
ここで試しに、eth1にしてみたらうまく登録でき、
/etc/init.d/network restart
したらeth1で有効になった。

おそらくだが、最初に「ネットワーク アダプター」になっている時に起動してしまったために、うまく利用できないデバイスをeth0と登録してしまい、その残骸が残ってeth0が使えなくなっているのだなーと。

で、調べてみたら、、、
/etc/udev/rules.d/70-persistent-net.rules
に「ネットワーク アダプター」の時のものと思われるMACアドレスとデバイス名eth0との関連付けと思われる記載があり、また「レガシ ネットワーク アダプター」の方のMACアドレスとeth1の関連付けがあった。この内容を修正した後、
/etc/sysconfig/network-scriptsのifcfg-eth1をifcfg-eth0に変更。この時、ifcfg-eth0にはHWADDR=”NN:NN:NN:NN:NN:NN”の記載が無かったが念のため追記して再起動したら、「レガシ ネットワーク アダプター」がeth0として有効になった。すっきり。

以前、NICを2枚持つUbuntuマシン2台をセットアップしたら(俺じゃないけど)、マシンA(NIC:A→eth0、NIC:B→eth1)、マシンB(NIC:A→eth1、NIC:B→eth0)と認識されてしまい、マシンB(NIC:A→eth0、NIC:B→eth1)としたかったのだが、その時は改善できなかった。この時の理由も、↑のようなことだったのかなー、と思う今日この頃である。(実際に確認してみたけど、そうなってるわ。実際に改善できるかはまだ未確認だけど)

CentOS 5 + Redmine 1.3.x

火曜日, 2月 7th, 2012

CentOS 5にRedmineのセットアップを試みている。

Redmine 1.3.0のソースをダウンロードしてセットアップを行おうとしたが、セットアップしてもらったCentOS 5に、私の方で目的のサーバーとしての設定を全然行っていなかったのでそっちが先か、、、とセットアップを行ってきた。マシン数台を同時にやってきたのと割り込みやらで、少々時間が掛かった。今日、Redmineのセットアップを再開した。CentOS 5とRedmine 1.3.0の組み合わせだったので、以下のサイトにある手順で進めた。 (Redmine 1.2.xとCentOS 5の手順もある)

Redmine 1.3をCentOS 6にインストールする手順 | Redmine.JP Blog
ttp://blog.redmine.jp/articles/redmine-1_3-installation_centos/

すると、以下のような問題(と解決方法も)が。

1.CentOS 5のImageMagickのVerが古い。

RMagickをインストールしようとしたら、CentOS 5標準のImageMagickではVerが古いと言われた。
しゃーなしに、ソースをダウンロードしてきてビルド&セットアップ。

再度RMagickのインストールを試みたら、MagickWandのヘッダが無いっていうエラーが出てたのだが、、、
どうやって回避したっけ。ん~、忘れたw。

2.rake db:migrate RAILS_ENV=production でエラーになる。

調べてみたら、rubytreeのバージョンがうまく認識できていないってことが原因らしい。(Redmineのバグらしいってことも)
trunkのソースを取ってきたら良いともあったので、再度Redmineのサイトを見たら Redmine 1.3.1がリリースされてた。2/6に。
それで再度試してみたけど、結果は同じだった。

その後、試行錯誤している内に、以下のようなことをやった。

2.1.databaseの設定

databaseの設定が行われてないって言われる。その前後で「development」っていうキーワードも出ていたのを目にしていた。
セットアップ手順の中に「database.yml」の設定の話があり、そこでは「production」のみ設定する話になっていたが、
「config/database.yml.example」の中には「development」の項目もあったので、そっちにも同じような設定を施してみた。

2.2.rubytree 0.5.2のセットアップ

rubytreeのVerを検知している個所を弄るかとgrep rebytreeしてみたら、0.5.2をベースにしているような記載がヒットした。
セットアップしたrubytreeは最新版?(0.8.2)だったので、0.5.2を入れてみたらrubytree >= 0云々のエラーは出なくなった。

そしてようやくRedmineのTOPページまでは表示されるようになったのであった。ふぅ~、、、
※TOPページが表示されるようになったタイミングで↑を記載しているので、上記「1」もそうだが、「2.1」と「2.2」の順番もどっちが先なのかは忘れてしまたw。