:::: MENU ::::

CentOS7のyum updateでkernelを除外

CentOS7上で、yum更新した後、再起動した際に、起動できないことが度々起こりました。

具体的には、通常にyum更新をかけると、kernelのアップデートがあった場合に、アップデートされ、次回の起動時には、アップデートされたkernelで起動しますが、これが下記のエラーで止まったまま、正常に起動しないということです。

dracut-initqueue[685]: Warning: /dev/root does not exist

このエラーは今まででも何度か体験しているので、yum 更新でkernelを除外設定にした。

yum設定ファイルを編集

# vi /etc/yum.conf

....

exclude=kernel* <--追記

(サーバーとして運用しているので、xorg*やcentos*も実際には追記しています)

 

アップデートされた場合でも、勝手に新しいkernelで起動しない設定

# vi /etc/sysconfig/kernel

....

UPDATEDEFAULT=no <--yesから変更

この2つの設定をしておくと、yum更新でkernelのアップデートが適用外となり、万が一、kernelアップデートされたとしても、現在のkernelで起動できるようになります。


QNAPをZabbixの監視対象にする

Zabbix Serverで監視対象のホストを順次登録しているのですが、NASのQNAPシリーズも監視対象にしたい。

しかし、QNAPのアプリではZabbixは存在しないので、下記の手順でインストールした。

QNAP側 (Zabbix Agent)

  1. Zabbixのフォーラムにて、配布されているQPKGファイルをダウンロード
    https://www.zabbix.com/forum/showthread.php?t=40955
  2. QNAPに管理者でログインし、App Centerを開く
  3. 「手動でインストール」 をクリックし、ダウンロードしたQPKGファイルを選択し、インストール
  4. Zabbix _agentのインストールが完了後、起動をON
  5. 次に、QNAPへTelnet若しくはSSHで管理者にてログイン
  6. zabbixの設定ファイルを編集
    # vim /etc/zabbix/zabbix_agentd.conf
    ….
    Server = xxx.xxx.xxx.xxx (Zabbix ServerのIPに設定)
    ….
  7. zabbix agent再起動
    QNAP側で、起動しているので、一旦停止して起動させます。

    # /etc/init.d/zabbix_agentd.sh stop
    # /etc/init.d/zabbix_agentd.sh start
  8. zabbix agent起動確認
    # ps aux|grep zabbix
    13738 zabbix 696 S /usr/bin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.c
    13743 zabbix 860 S /usr/bin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.c
    ….

Zabbix Server 側

  1. Zabbix Serverへ管理者でログイン
  2. 設定のホスト作成でQNAP用のホストを作成
    IPアドレスにQNAPのIPアドレス
    テンプレートにTemplate OS Linux

これで、しばらく待ち、エージェントの状態が緑になればOKです。

赤のまま表示されていれば、ファイヤーウォールの影響か、ポートの指定、IPの指定等を確認したほうが良いでしょう。

作業した直後、エージェントの状態が赤のままで、調べてみたら、QNAP側のzabbix agentが起動していなかったと言うオチでした。
QNAP上でzabbixを再起動した際に、横着して、zabbix_agentd.sh restartとやっちゃったんです。(_😉


zabbix 2.4.xから3.0へアップデートしたら画面が真っ白

職場のzabbixを2.4.xから3.0へアップデートしたのでメモ

アップデート方法は、ほぼ下記のURL通りです。(手抜き)
http://qiita.com/ryouma_nagare/items/9bcf8f5e3e514103b515

違う点は、pg_dumpでなくて、mysqlを使っている点と、リポジトリの差し替えで、CentOS 6.xの環境だったので、rhelの7を6へ変更したくらいです。

まぁ、すんなりとアップデートが終わり、再起動してみた。

# service start zabbix-server
# service start zabbix-agent

それで、いつも通りにWEBのログイン画面にアクセスすると、画面が真っ白

失敗したのか、zabbixのログを見ても、表示されないエラーは見当たらず、Apacheのログを確認したところ、

PHP Parse error: syntax error, unexpected ‘[‘ in /usr/share/zabbix/index.php on line 29

どうやら、zabbix 3.xからは、php5.6以降が必須らしい。
phpのバージョンを調べたら、5.3.xだったので、早速、phpのアップデートです。
ちなみに、php7は、まだ様子見なので、5.6.xをインストールしました。

下記URLを参考に、remiで5.6をインストールです。
http://syaka.site/2016/03/6/

phpのアップグレード完了後に、Apacheを再起動して、再度WEB画面にアクセスすると、

Not Found The requested URL /zabbix/ was not found on this server.

2.4.xのバージョンまで、同じURLで接続出来ていたのに?と、/etc/httpd/conf.d/zabbix.conを確認したところ、zabbix.conf.rpmsaveに名前変更されたままでしたので、zabbix.confに戻しました。

そして、再度、WEB画面にアクセス。
表示されました! が・・・何だかエラーっぽいのが沢山表示されている。

ふむ、timezoneがどうとか言ってるようで、いつの日からか、timezone設定しなきゃいけなかったのを思い出し、/etc/php.iniを編集して、timezoneを有効にした。

date.timezone = Asia/Tokyo

さらに、Apacheを再起動して、再接続したら、エラーっぽい表示はなくなりましたが、今度は、php内のオプションを変更してね〜とな。

あとは、phpのオプション設定変更と、不足しているモジュールを導入してあげれば良いようです。

/etc/php.ini

post_max_size = 16M
max_execution_time = 300
max_input_time = 300
always_populate_raw_post_data = -1

不足しているモジュールは、bcmathとxml関連なので、

# yum install php-bcmath php-xml

これで、無事に正常動作が確認できました。 はぁ、疲れた。


rainloopでページにアクセス出来ない症状

職場のWebメールをrainloopに変更したところ、ある一人から、アクセス出来ません!と報告がきた。

拝見した所、下記のエラー

Page refresh in case of javascript errors

MacのSafariの環境でエラーが出ていたので、とりあえず他のブラウザーで試してみてと提案。

Google ChromeもFirefoxも入っていなかったので、ダウンロードしようとしたところ、どちらもMac OS X 10.6以降が必須なのでダウンロード出来ませんと表示。

えっ? Mac OS Xのバージョンは?

はい、10.5.xと古かったのです。

rainloopの必要要件では、対象ブラウザーが明記されているものの、バージョンまでは書かれてないようですが、恐らく、これが原因なのでしょう。

http://www.rainloop.net/docs/system-requirements/


homebrewのアップデートで失敗は、phinzeが原因

久しぶりにbrewの更新をかけたら、下記のエラー

$ brew update
==> Tapping homebrew/core
Cloning into '/usr/local/Library/Taps/homebrew/homebrew-core'...
....
Error: Could not link phinze/cask manpages to:
  /usr/local/share/man/man1/brew-cask.1

Please delete these files and run `brew tap --repair`.

どうやらphinzeは、しばらくメンテされていないようで、uptapしてあげれば良さそうです。

$ brew untap phinze/cask
$ brew update; brew cleanup; brew cask cleanup

Webmin/Usermin接続が拒否される場合

めったに開かないのですが、久しぶりにWebmin/Userminへアクセスしたところ、接続(アクセス)が拒否されるようになっていました。

当然、サーバーは起動しているのを確認し、Webmin/Userminの再起動も行っています。

ところが、古いブラウザでは接続出来るようなのです。

調べてみると、どうやら証明書の鍵長が1024ビット未満の場合には、アクセスが拒否するらしく、古い設定のままのWebmin/Uerminは、デフォルトで512ビットで作られているのが原因のようです。(現在のデフォルト設定は、2048になってます)

これを解決するには、証明書を再作成すると直るようですので、下記の記事を参考にしてみました。

http://www.prox.ne.jp/faq/2_368_ja.html

Webminが開けない

なるほど、そのようにWebmin上で作成するんですね。 って、お〜〜い、そのWebmin/Usermin自体につながらないっつうの!

一番、手っ取り早いのは、Webminサーバー内の設定を一時的に変更してあげる事ではないでしょうか。

$ cd /etc/webmin/
$ vim miniserv.conf ... ssl=0 # ←1を0に変更 ...
$ service webmin restart

コマンドラインで作成するには、下記参照

Replace webmin self-signed certificate to avoid sec_error_invalid_key error

http://d.hatena.ne.jp/kibitaki/20150718/1437231546


Subsonic 4.xから6.0betaへアップデート

このサイトでも何度かSubsonicのアップデート情報を書いてますが、さほど変わりはありません。

環境は、sl6上で、Subsonic 4.xから6.0betaへのアップデートです。

たぶん、rpm -Uvhでアップデートかけても大丈夫かと思いますが、今回のアップデート作業は下記の手順で行いました。

  1. Subsonicが起動していたら停止
    # service subsonic stop
  2. javaのインストール
    # sudo yum install java-1.7.0-openjdk
  3. 最新版をダウンロード
    (http://www.subsonic.org/pages/download.jsp)でrpmをダウンロード
  4. アップデート
    # sudo yum install --nogpgcheck subsonic-x.x.rpm

もし、アップデートが上手くいかなければ、古いパッケージを削除してからインストールしましょう。

# sudo yum remove subsonic

バージョンアップ後は、4.xからの設定等もそのまま引き継がれました。
5.xのバージョンをすっ飛ばしてのバージョンアップなので、結構UIが洗練されてますね。

6.0betaではHTML5Audioが採用されていますが、やっぱりiPhone/iPadのブラウザ上での再生はダメか。
また、DLNAを有効にしても、我が家のムービーファイルは再生出来なかった。(T_T)


Macのディスクユーティリティでマウント解除できない時の対処

私の使っているiMac内蔵のSSDがよく壊れます。
ディスクユーティリティで検証・修復しようとしても、”修復できません”との警告で、よく復旧作業を行うことがあります。

通常だと、「⌘(コマンド)+ R」のリカバリモードで起動し、ディスクユーティリティを起動して、壊れたSSD/HDDを消去するのですが、時々、”マウント解除できませんでした”と消去すらできない症状に遭遇します。
おそらく、リカバリーモードで起動しても、消去対象のSSD/HDDに何らかのアクセスがあるからマウント解除できないのでしょう。

ディスクユーティリティを抜け、コンソールで調べてみても良いかと思いますが、面倒臭いので、USBディスクで起動するとあっさり消去できますので、緊急起動用にインストールUSBを作成しておくと良いです。
ちょっと情報古いですが、インストールUSBの作り方はこんな感じで↓

OS X 10.8 Mountain Lion インストールUSBの作り方

コンソールで作業したい方は、psやlsofで消去対象のSSD/HDDを探して、プロセスを殺すと上手く行くかと思います。


$ sudo lsof /Volumes/<HDD名や共有名>
mds 60 root 50r DIR 48,12 16384 2 /Volumes/share
Finder 360 hoge 26r DIR 48,12 16384 2 /Volumes/share
zsh 75882 hoge cwd DIR 49,10 1554 2 /Volumes/share

この場合は、shareがFinderとzshで利用されているので、Finderで開いていないか、zshでshare内にいないか確認すればOKですね。

偶に、Finderが全て閉じているにも関わらず、アンマウントできないことがあるので、その場合には、FinderをOption+右クリックで「再度開く」により、Finderを再起動しましょう。

http://blog.fkoji.com/2013/03200100.html


3日間悩んだApache2.4系ユーザーディレクトリのForbidden

Apache2.4系を入れる必要があったので、CentOS6/Apache2.2からCentOS7/Apache2.4へ更新しました。

2.4系では、httpd.conf内の書式やアクセス制御の書式も変更になり、修正を施し、Apache起動まで確認できたところで、ユーザーディレクトリの設定を有効にしたところ、Fobiddenのエラーでハマってしまいました。

この時の環境では、

  • Firewall無効
  • SELinux無効
  • mod_userdir.soのモジュールが読み込まれているか確認
  • /etc/httpd/conf.d/userdir.con内を確認
    UserDir public_html
    <Directory “/home/*/public_html”>
    AllowOverride ALL
    Options ALL
    Require all granted
    </Directory>
  • userのパーミッションを711確認
  • user下public_htmlディレクトリのパーミッションを755確認
  • public_html下のindex.htmlに読み込み属性があるか確認
  • user下に.htaccessがあるか確認
    .htaccessが見つかった場合、アクセス制御書式が古くなっているのでorder deny allow形式からRequire形式に変更

おおよそ、これくらいの設定で普通なら閲覧できるはずなんです。

実は、今回運用したサイトの構成で、userのディレクトリは、グループ分けする必要があったので、下記のようになってます。

/home/group1/user1
/home/group1/user2
/home/group2/user3
/home/group2/user4

これらuser1からuser4までチルダ(~)を使ったURL(http://localhost/~user1)でアクセスすると、すべて、下記のエラー

Forbidden
You don’t have permission to access /~user1 on this server.

httpdのエラーログを見ても、permission denied.と記載されている。

/home/group/userの位置が悪いのか?と思い、/home/user5のユーザーを作成してみると、~/user5でアクセス出来る。

と言うことは、/etc/httpd/conf.d/userdir.conf内のディレクティブ/home/*/public_htmlが怪しい。
*の指定だと、homeとpublic_html間に何が入っても有効なはずじゃないのか?と思い、下記のディレクティブを追加してみた。

<Directory "/home/*/*/public_html">
AllowOverride ALL
Options IncludesNoExec ExecCGI FollowSymLinks
Require method GET POST OPTIONS
</Directory>

これで、Apacheを再起動したところ、チルダ(~)による各ユーザーのホームページが閲覧できるようになった。

結果オーライだが、/home/*/*/public_htmlの書式は、何かスマートじゃないよね?
何かよい書き方もしくは方法があったら、教えてください。


CentOS7でネットワーク不調だった原因

CentOS7をインストール後に、nfsに接続できなかったり、digでDNS情報が引けなかったりと、四苦八苦してました。

NFSでは、下記の環境

  • Firewall無効
  • SELinux無効
  • NFS関連のプログラムはインストール済み
  • 関連プログラムは、起動済み
  • tcp_wrapperrrで制限はしていない
  • Google等へのpingでネットワーク疎通確認
  • autofsも起動している

autofsで指定しているフォルダにアクセスしても、手動でmountコマンドを打っても、しばらく経ったあとに、Connection timed out.で接続できない。
また、接続先を変更してみても、接続できないので、サーバー側で弾かれているわけではなさそう。

ググってみると、状況によっては、IPアドレスと名前のマッピングも関係する場合があるとの情報もあったので、hostsやDNS関連も確認した。

この作業の途中で、DNSのdigコマンドで自分のホストを確認しようとしてみたところ、なぜかdigの情報がGoogle等では引けるのに、自分のDNSでは引けないことに気づく。

なぜ?と、徐ろに、ipコマンドを打ってみた。

# ip addr
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
 link/ether 00:0cxx:b0:xx:e0 brd ff:ff:ff:ff:ff:ff
 inet 192.168.1.37/32 brd 192.168.1.37 scope global ens32

もう、お分かりになったでしょう!

サブネットマスクが32になっているではありませんか。

CentOS7のネットワーク設定で、nmtuiコマンドによりネットワーク設定を行ったわけですが、IPアドレス入力欄で192.168.1.37だけを入力した時に、自動的に192.168.1.37/32へ設定されていたようでした。

もう一度、nmtuiを起動して変更しても構いませんが、下記を編集して手動で対処した。

# vi /etc/sysconfig/network-scripts/ifcfg-en32
PREFIX=24  #32から24へ変更して保存
# systemctl restart network

これにて、NFSもdigも一件落着しました。


ページ:1234567...25