abrtからのエラーが大量に出力されていた

/var/log/messagesをふと見ると↓の様にabrtが出力するエラーが大量に出ていたので対処

Aug 15 10:35:09 hogehoge abrt-server: 'post-create' on '/var/spool/abrt/Python-2018-08-15-10:35:09-18051' exited with 1
Aug 15 10:35:09 hogehoge abrt-server: Deleting problem directory '/var/spool/abrt/Python-2018-08-15-10:35:09-18051'
Aug 15 10:35:09 hogehoge python: detected unhandled Python exception in '/etc/munin/plugins/nginx_upstream_multi_'
Aug 15 10:35:09 hogehoge abrt-server: Not saving repeating crash in '/etc/munin/plugins/nginx_upstream_multi_'
Aug 15 10:40:06 hogehoge python: detected unhandled Python exception in '/etc/munin/plugins/nginx_upstream'
Aug 15 10:40:06 hogehoge abrt-server: Executable '/etc/munin/plugins/nginx_upstream' doesn't belong to any package and ProcessUnpackaged is set to 'no'
Aug 15 10:40:06 hogehoge abrt-server: 'post-create' on '/var/spool/abrt/Python-2018-08-15-10:40:06-18758' exited with 1
Aug 15 10:40:06 hogehoge abrt-server: Deleting problem directory '/var/spool/abrt/Python-2018-08-15-10:40:06-18758'
Aug 15 10:40:09 hogehoge python: detected unhandled Python exception in '/etc/munin/plugins/nginx_upstream_multi_'
Aug 15 10:40:09 hogehoge abrt-server: Executable '/etc/munin/plugins/nginx_upstream_multi_' doesn't belong to any package and ProcessUnpackaged is set to 'no'

ログで指摘がある様にabrtの設定でProcessUnpackagedをnoにするとyumでインストールされていない場合でもコアダンプを取るそうです。
また、OpenGPGCheckをnoにするとすべてのプログラムにおけるクラッシュを取得を取得するそうです。

それを踏まえて以下のabrt-action-save-package-data.confを編集

# diff abrt-action-save-package-data.conf*
13,14c13
< #OpenGPGCheck = yes
< OpenGPGCheck = no
---
> OpenGPGCheck = yes
22,23c21
< #ProcessUnpackaged = no
< ProcessUnpackaged = yes
---
> ProcessUnpackaged = no

こんな感じです。
abrtd再起動
# service abrtd restart

しばしmessegesをtailして様子を見ていると
新たなログが・・・ログが日本語なのはちょっとあれですね・・

Aug 15 22:15:09 hogehoge python: detected unhandled Python exception in '/etc/munin/plugins/nginx_upstream_multi_'
Aug 15 22:15:09 hogehoge abrt-server: sender の電子メールアドレスが指定されませんでした。今すぐ設定したいですか? 設定しなければ、'user@localhost' が使用されます。 [y/N]
Aug 15 22:15:09 hogehoge abrt-server: receiver の電子メールアドレスが指定されませんでした。今すぐ設定したいですか? 設定しなければ、'root@localhost' が使用されます。 [y/N]
Aug 15 22:15:09 hogehoge abrt-server: Undefined variable outside of [[ ]] bracket
Aug 15 22:15:09 hogehoge abrt-server: 電子メールを送信しています... 
Aug 15 22:15:09 hogehoge abrt-server: 電子メール通知を送信しています: root@localhost
Aug 15 22:15:09 hogehoge abrt-server: 電子メールが送信されました: root@localhost

pythonのエラーはあとでやるとしてabrtのメール送信設定がされてないようです。した覚えもないですからね・・・。
以下のconfでメールの設定をします。

# grep -v "#" /etc/libreport/plugins/mailx.conf
EmailFrom=root@hogehoge.net
EmailTo=hogehoge@hoge.com

abrtを再起動

# service abrtd restart

再度様子を見ていると、abrtからメール送信完了のログが・・・正直うざいっす。。。。

Aug 15 23:00:09 hogehoge abrt-server: 電子メールを送信しています... 
Aug 15 23:00:09 hogehoge abrt-server: 電子メール通知を送信しています: hogehoge@hoge.com
Aug 15 23:00:09 hogehoge abrt-server: 電子メールが送信されました: hogehoge@hoge.com

他にも出ているabrtのエラーを解決しない事には5分おきにメールが来ることになります。。

syslogから余計なログを消してみた

「ググったんかー」が口癖の昔の上司の教え曰く「不要なログは消せ」という教えを守るべく
syslogに出力される不要なログを消してみた。

今回の対象は、zabbixでSSHの監視を行うと監視のタイミングで出力される以下のログ

May 24 23:07:10 hogehoge sshd[13889]: Connection closed by 10.0.0.10 port 55814 [preauth]
May 24 23:08:11 hogehoge sshd[13951]: Connection closed by 10.0.0.10 port 40028 [preauth]
May 24 23:09:10 hogehoge sshd[14012]: Connection closed by 10.0.0.10 port 56596 [preauth]

こいつを消すためには

# vim /etc/rsyslog.conf

#### RULES ####
#add
if $msg contains 'preauth' then ~

とこんな感じで書いて

systemctl restart rsyslog

これできれいになりました。

ssh-copy-idでサーバー間パス無しログイン設定をした。ssh-copy-id

以前にもcluster shellを設定した際にやりましたが、サーバー間パス無しログインのメモ

まずは、接続元で鍵を作ります。
# ssh-keygen
Generating public/private rsa key pair.
略・・・

# ssh-copy-id root@接続先IP -p ポート指定

ssh-copy-idを使えば簡単ですね。

yumでssh2をインストールした。

wordpressのupdate用にSSH2をyumでインストールしたメモ

まずはphp-pearをインストール

# yum install php-pear

次にlibssh2 libssh2-devel

# yum install libssh2 libssh2-devel

更にpecl installでssh2を入れる

# pecl install ssh2
WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update
pecl/ssh2 requires PHP (version >= 4.0.0, version <= 6.0.0), installed version is 7.2.5 No valid packages found install failed

怒られてしまったので言われるままにpecl channel-updateを実行

[root@higherhope html]# pecl channel-update pecl.php.net
Updating channel "pecl.php.net"
Update of Channel "pecl.php.net" succeeded

再度挑戦

# pecl install ssh2
pecl/ssh2 requires PHP (version >= 4.0.0, version <= 6.0.0), installed version is 7.2.5 No valid packages found install failed

peclではPHP 7.2.5に対応するssh2は無いらしいのでyumでリベンジ

# yum install php-pecl-ssh2
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: ftp.riken.jp
* epel: mirror.dmmlabs.jp
* extras: ftp.riken.jp
* remi-php72: mirrors.thzhost.com
* remi-safe: mirrors.thzhost.com
* updates: ftp.riken.jp
Resolving Dependencies
--> Running transaction check
---> Package php-pecl-ssh2.x86_64 0:1.1.2-1.el7.remi.7.2 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
php-pecl-ssh2 x86_64 1.1.2-1.el7.remi.7.2 remi-php72 44 k

Transaction Summary
================================================================================
Install 1 Package

Total download size: 44 k
Installed size: 171 k
Is this ok [y/d/N]: y
Downloading packages:
php-pecl-ssh2-1.1.2-1.el7.remi.7.2.x86_64.rpm | 44 kB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : php-pecl-ssh2-1.1.2-1.el7.remi.7.2.x86_64 1/1
Verifying : php-pecl-ssh2-1.1.2-1.el7.remi.7.2.x86_64 1/1

Installed:
php-pecl-ssh2.x86_64 0:1.1.2-1.el7.remi.7.2

インストール成功

念のためサービス再起動して終了

# systemctl restart nginx
# systemctl restart php-fpm

centos7でカーネルを指定して起動する

Ryzenで構築し直した自宅サーバーのkernelを4系にしたらどうもコンソールが表示されない。
リモートからのSSHやXRDPだとつながるがコンソールがつながらないのは不便なので
kernelを3系に戻して起動したときのメモ
Centos7からはgrub.cfgの編集をしてはダメなようで手順は
redhat公式サイトに載っている通りです。

現在のkernelを確認

# uname -r
4.16.2-1.el7.elrepo.x86_64

現在軌道に使用されているデフォルトkernelを表示

# grub2-editenv list
saved_entry=CentOS Linux (4.16.2-1.el7.elrepo.x86_64) 7 (Core)

起動に使用できるkernelの一覧を表示

# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (4.16.2-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-862.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-693.21.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-4012dc7197c64ed79c6e5dadbbfcdddc) 7 (Core)

grubは0から始まるので2行目の3.10.0-862.el7.x86_64で起動したいので

# grub2-set-default 1

確認

# cat /boot/grub2/grubenv |grep saved
saved_entry=1

設定を保存・反映する。
自宅サーバーはUEFIでcentosなので以下の様に

# grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

再起動して確認
# reboot

zabbix4系Zabbix 4.0.0alpha6をインストールしてみた。

最新のzabbix 4.0.0alpha6を試してみました。
zabbixを入れるサーバーのPHPのバージョンは以下

# php -v
PHP 7.2.5 (cli) (built: Apr 24 2018 19:12:06) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

zabbixの公式サイトからリポジトリをインストールしておきます。

# rpm -i https://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm

zabbix4をインストールします。

# yum install zabbix-server-mysql zabbix-proxy-mysql zabbix-web-mysql
読み込んだプラグイン:fastestmirror
略・・・・
--> 依存性解決を終了しました。
エラー: パッケージ: zabbix-web-mysql-4.0.0-1.1alpha5.el7.noarch (zabbix)
要求: php-mysql
利用可能: php-mysql-5.4.16-42.el7.x86_64 (base)
php-mysql = 5.4.16-42.el7
利用可能: php-mysql-5.4.16-43.el7_4.x86_64 (updates)
php-mysql = 5.4.16-43.el7_4
利用可能: php-mysql-5.4.16-43.el7_4.1.x86_64 (updates)
php-mysql = 5.4.16-43.el7_4.1
利用可能: php-mysqlnd-5.4.16-42.el7.x86_64 (base)
php-mysql = 5.4.16-42.el7
利用可能: php-mysqlnd-5.4.16-43.el7_4.x86_64 (updates)
php-mysql = 5.4.16-43.el7_4
利用可能: php-mysqlnd-5.4.16-43.el7_4.1.x86_64 (updates)
php-mysql = 5.4.16-43.el7_4.1
利用可能: php-pecl-mysql-1.0.0-0.17.20160812git230a828.el7.remi.7.2.x86_64 (remi-php72)
php-mysql = 1:1.0.0
利用可能: php-mysqlnd-7.2.4-1.el7.remi.x86_64 (remi-php72)
見つかりません
利用可能: php-mysqlnd-7.2.5-1.el7.remi.x86_64 (remi-php72)
見つかりません
問題を回避するために --skip-broken を用いることができます。
これらを試行できます: rpm -Va --nofiles --nodigest

こけました。。。
php-mysqlndでコケたので個別で入れてみます。

# yum install php-mysqlnd
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.tsukuba.wide.ad.jp
* elrepo: ftp.yz.yamagata-u.ac.jp
* epel: mirror.dmmlabs.jp
* extras: ftp.tsukuba.wide.ad.jp
* remi-php72: mirrors.thzhost.com

略・・・

インストール:
php-mysqlnd.x86_64 0:7.2.5-1.el7.remi

依存性関連をインストールしました:
php-pdo.x86_64 0:7.2.5-1.el7.remi

完了しました!

無事にインストールできたので再度zabbix4をインストールします。

# yum install zabbix-server-mysql zabbix-proxy-mysql zabbix-web-mysql
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.tsukuba.wide.ad.jp
* elrepo: ftp.yz.yamagata-u.ac.jp
* epel: ftp.tsukuba.wide.ad.jp

略・・・

エラー: パッケージ: zabbix-web-mysql-4.0.0-1.1alpha5.el7.noarch (zabbix)
要求: php-mysql
利用可能: php-mysql-5.4.16-42.el7.x86_64 (base)
php-mysql = 5.4.16-42.el7
利用可能: php-mysql-5.4.16-43.el7_4.x86_64 (updates)
php-mysql = 5.4.16-43.el7_4
利用可能: php-mysql-5.4.16-43.el7_4.1.x86_64 (updates)
php-mysql = 5.4.16-43.el7_4.1
利用可能: php-mysqlnd-5.4.16-42.el7.x86_64 (base)
php-mysql = 5.4.16-42.el7
利用可能: php-mysqlnd-5.4.16-43.el7_4.x86_64 (updates)
php-mysql = 5.4.16-43.el7_4
利用可能: php-mysqlnd-5.4.16-43.el7_4.1.x86_64 (updates)
php-mysql = 5.4.16-43.el7_4.1
利用可能: php-pecl-mysql-1.0.0-0.17.20160812git230a828.el7.remi.7.2.x86_64 (remi-php72)
php-mysql = 1:1.0.0
インストール: php-mysqlnd-7.2.5-1.el7.remi.x86_64 (@remi-php72)
見つかりません
利用可能: php-mysqlnd-7.2.4-1.el7.remi.x86_64 (remi-php72)
見つかりません
問題を回避するために --skip-broken を用いることができます。
これらを試行できます: rpm -Va --nofiles --nodigest

またコケました今度はphp-mysqlの依存関係のようです。
php-mysqlを依存関係でインストールされないようexcludeにします。

# yum install zabbix-server-mysql zabbix-proxy-mysql zabbix-web-mysql --exclude=php-mysql*
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.tsukuba.wide.ad.jp
* elrepo: ftp.yz.yamagata-u.ac.jp
* epel: mirror.dmmlabs.jp

略・・・

インストール:
zabbix-proxy-mysql.x86_64 0:4.0.0-1.1alpha5.el7 zabbix-server-mysql.x86_64 0:4.0.0-1.1alpha5.el7 zabbix-web-mysql.noarch 0:4.0.0-1.1alpha5.el7

依存性関連をインストールしました:
OpenIPMI-libs.x86_64 0:2.0.19-15.el7 OpenIPMI-modalias.x86_64 0:2.0.19-15.el7
dejavu-fonts-common.noarch 0:2.33-6.el7 dejavu-sans-fonts.noarch 0:2.33-6.el7
fontconfig.x86_64 0:2.10.95-11.el7 fontpackages-filesystem.noarch 0:1.44-8.el7
fping.x86_64 0:3.10-4.el7 gd-last.x86_64 0:2.2.5-2.el7.remi
iksemel.x86_64 0:1.4-6.el7 jbigkit-libs.x86_64 0:2.0-11.el7
libX11.x86_64 0:1.6.5-1.el7 libX11-common.noarch 0:1.6.5-1.el7
libXau.x86_64 0:1.0.8-2.1.el7 libXpm.x86_64 0:3.5.12-1.el7
libevent.x86_64 0:2.0.21-4.el7 libjpeg-turbo.x86_64 0:1.2.90-5.el7
libpng.x86_64 2:1.5.13-7.el7_2 libtiff.x86_64 0:4.0.3-27.el7_3
libtool-ltdl.x86_64 0:2.4.2-22.el7_3 libwebp.x86_64 0:0.3.0-7.el7
libxcb.x86_64 0:1.12-1.el7 libxslt.x86_64 0:1.1.28-5.el7
net-snmp-libs.x86_64 1:5.7.2-28.el7_4.1 php-bcmath.x86_64 0:7.2.5-1.el7.remi
php-gd.x86_64 0:7.2.5-1.el7.remi php-ldap.x86_64 0:7.2.5-1.el7.remi
php-mbstring.x86_64 0:7.2.5-1.el7.remi php-pecl-mysql.x86_64 0:1.0.0-0.17.20160812git230a828.el7.remi.7.2
php-xml.x86_64 0:7.2.5-1.el7.remi unixODBC.x86_64 0:2.3.1-11.el7
zabbix-web.noarch 0:4.0.0-1.1alpha5.el7

完了しました!

今度は無事に無事にインストールが完了しました。
zabbix4の機能を試すのがたのしみです。

phpのupdateをしたらzabbixが見れなくなったので対処

PHPのupdateを行った際、以下のエラーがログに出てzabbixのguiが見れなくなったので対処

2018/04/24 16:12:45 [error] 19731#19731: *1 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught Exception: Cannot start session. in /usr/share/zabbix/include/classes/core/CSession.php:50
Stack trace:
#0 /usr/share/zabbix/setup.php(60): CSession::start()
#1 {main}
thrown in /usr/share/zabbix/include/classes/core/CSession.php on line 50" while reading response header from upstream, client: 192.168.0.2, server: tokyo-monitor_2, request: "GET /zabbix/setup.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "192.168.0.10"

PHPのupdateの際にphp-fpm関連の権限が変わったぽい

色々しらえると以下のパーミッションが怪しい

# ls -al /var/lib/php/
合計 4
drwxr-xr-x 5 root root 53 3月 25 02:21 .
drwxr-xr-x. 32 root root 4096 3月 25 11:12 ..
drwxrwx--- 2 root apache 6 3月 25 02:21 opcache
drwxrwx--- 2 root apache 6 3月 25 02:21 session
drwxrwx--- 2 root apache 6 3月 22 0:21 wsdlcache

このサーバーはngninxで動いているのでapache権限ではないので修正する。

# cd /var/lib/php/
# chown -R root:nginx ./*
# ls -al
合計 4
drwxr-xr-x 5 root root 53 3月 25 02:21 .
drwxr-xr-x. 32 root root 4096 3月 25 11:12 ..
drwxrwx--- 2 root nginx 6 3月 25 02:21 opcache
drwxrwx--- 2 root nginx 6 3月 25 02:21 session
drwxrwx--- 2 root nginx 6 3月 22 0:21 wsdlcache

nginxとphp-fpmを再起動して

#systemctl restart nginx ; systemctl restart php-fpm

見れるようになりました。

PHPをupdateするたびにやらなきゃいけません・・・