少しすると、エラーメールが届いた。内容は画像P21を見ていただきたい。プロセスが100%になっている(P22)
グラフが見にくいですが、100%に張り付いています(これはあくまでzabbix関連のプロセスが100%になっているだけで、CPUのloadが100%という意味では無い。
しかし、エラーメールが来るのは、大切なエラーを見過ごしかねないので、ロードを下げる。
http://confignote.blogspot.jp/2014/05/zabbix-discoverer-processes-more-than.html
に回答があった。早速 /etc/zabbix/zabbix-server.conf に StartDiscoverers=3 (元は1だった)にして、zabbix-server を再起動したら出なくなった。
基本的には3:zabbix-agentの設定と同じですが、設定ファイルの /etc/zabbix/zabbix-agentd.conf の修正した所は(抜粋)
Server=zabbix-serverが動いているホストのIP
ListenIP=設定するホスト自身のIP
ServerActive=zabbix-serverが動いているホストのIP
Hostname=このホストの名前、後で設定するWEB上のホスト名と合わせる事。
そして、zabbix-agentをスタートし、zabbix server をインストールしたホストに移り(私はKVM)ブラウザから locahost/zabbixにアクセスし、ホストの設定をしていきます。注:この時点ではWEB上でホストの設定をしておりませんので、var/log/zabbix にある zabbix_agentd.log には ”4902:20160402:115404.867 no active checks on server [192.168.xxx.xxx:10051]: host [xxxx.kinryokai.net] not found”のようにエラーが表示されますが、WEBからホストの設定をすると問題なくなりますので、無視してください
P17の様に設定→ホスト→ホストの作成とクリックするとP18が開きますので、ホスト名(agentd.confに設定した名前と合わせる事)、表示名(何でも良い)を入力し、所属グループはその右にある、その他のグループから選択し、《 をクリックし、設定します。後はデフォルトでいいので、
テンプレートをクリックし、(P19)選択をクリック、すると新しいウィンドウが開き、そこから使いたいテンプレートにチェックマークを入れ、選択をクリックし、元の画面で追加をクリックすると名前の下に反映します(この画面は選択した後のものです)。最後に追加をクリックすると、P20の様にホストが追加されます。エージェントの状態も時間が経つと Z 状のアイコンが緑になります。
表示が見にくいようなら、ブラウザの横幅を調整すると見やすくなります。
いよいよ、メンバーであるホストを設定していきますが、zabbix-server が動いているサーバー(KVMの親サーバー)自身も監視するので、これにも設定していきます。zabbixーagentは最初ににインストールしてあります。
# gedit /etc/zabbix/zabbix_agentd.conf
修正した所は(抜粋)
Server=127.0.0.1
ListenIP ←コメントアウトのまま、ただしこれはzabbix-server自身でもある為、zabbix-agentのみの時は自身のIPを入れる
ServerActive=127.0.0.1 → 2016-4-1追記、下記参照
Hostname=このagent(serverでもある)が動いているhostname。後で設定するWEB上のホスト名と合わせる事。
Serverに設定するIPはもちろんzabbix-serverが動いているホストのIP。今回は127.0.0.1。これは各ホストのチェックの時、サーバー側からRQを出し、それにエージェント側のホストが返答する。(パッシブチェック)
ServerActiveも同じIPだが、これはこの設定を一度すると、最初にエージェントがサーバーにチェックに行き、その後はエージェント自身がサーバーにデーターを渡す。(アクティブチェック)
つまりパッシブだけならServerActive の設定はいらないので、コメントアウトのまま。
実は未だに理解が出来ていないが、これを設定すると、ホストが見つからないとエラーが出ていた。パッシブチェックでも問題ないのでコメントアウトのままにしている。
928:20160331:140604.308 no active checks on server [127.0.0.1:10051]: host [Zabbix server] not monitored
# service zabbix-agent start
# chkconfig zabbix-agent on
でzabbix-agentをスタートさせる。
次にWEBから設定していきます。
localhost/zabbixにアクセスし、P15の様に設定、ホストとクリックすると、Zabbix sever(agentd.confのHostnameに設定した名前)が表示されますが、ステータスが無効になっていますので、そこをクリックすると、P16の様に有効になります。又、エージェントの状態の一番左側の Z みたいなアイコンは少し時間が経つと緑色に変わります。もし、これが赤なら何か問題が有りますので、再度設定をチェックしてください。
表示が見にくいようなら、ブラウザの横幅を調整すると見やすくなります。
WEBにアクセスして、設定をしていきますが、その前に selinux を disabled にしておきます。selinuxの設定は
# getenforce
で見れます。これが disabled になっていない時はhttps://www.kinryokai.net/modules/news/article.php?storyid=207を参考に設定してください。(permissiveでもいいと思いますが、未確認)
その後、ブラウザから localhost/zabbix/ にアクセスします(P1)(もしログイン画面が出た場合はユーザー名 admin、パスワード zabbix で入れます)画面では setup.php も表示されていますが、一番最初にアクセスすると、自動的にsetup.phpに飛びます。Nextをクリックすると
P2の表示がでますので、すべてOKになっているのを確認後、Next をクリック。
P3が表示されたら、User と Password を入れますが、これらはデフォルトでそれぞれ admin zabbix になっています。その後、Test connection をクリックし、OKが表示されたら、Next をクリック。
P4が表示されたら、Name に このホストの hostname を入力しましたが、ここはブランクでもかまわないようです。そして、Next をクリック。
P5が表示され、データーを確認後、Next をクリック。
P6が表示され、Created が OK になっているのを確認後、Finish をクリック。
P7の表示になり、Username と Password をデフォルトの admin と zabbix と入力後、Sign in をクリック。
P8が表示されます。この画面で、Zabbix server is running がOKになっているのを確認します。
私はここがどうしてもOKにならず、だいぶ時間を無駄にしましたが、原因はselinuxがdisabledになっていませんでした。
あまり良い事ではないとは思いますが、私は常々selinuxをdisabledにしているので、このホストではenableになっているのに気がつくのが遅れました。
教訓:設定は必ず一から確認する事。
そして、設定をしていきますが、先ずはデフォルトで設定されているadminの削除ですが、その前にsuper adminを作らないといけないので、
タブにある administration、Users とクリックし、CONFIGURATION OF USERS にあるドロップダウンリストで、Users を選び、Create user をクリックします。(P9)
P10が開き、入力の必要なテキストボックスを入れていきますが、Groups の所はその右にある add をクリックすると、新しいウィンドウが開きその中に
zabbix administrators が有りますので、チェックマークを付けた後、select をクリックすると、Groupsに反映されます。
又、Laungagesは Japanese (ja JP)がいいでしょう。その後、上のタブにある Media をクリックすると
P11が開きます(この画面はP12も同じ画面に入っています)P11にある Add をクリックすると、P12が開きますので、
Typeがemail、Send to にはメールを受け取りたいメアド、すべてにチェックマークが付いている事、enabled になっていることを確認後、
Add をクリックするとMediaとしてe-mailが追加されます。
そして、上のタブのPermissions をクリックすると、P13が開きますので、ドロップダウンリストで Zabbix super admins を選び、
Add をクリックすると、ユーザーが追加されます。
その後、ログアウトして、新しい super adminとして追加したユーザーでログイン後、元々有ったAdminをdeleteしますが、見当が付くと思いますので、画像は載せません。
次に使わない media(障害の連絡に使う)が有りますので、disabled にしておくために、Administrations、Media types とクリックすると、
P14が開きますので、Jabber と SMS にチェックを入れ、ドロップダウンリストで Disable selected を選び Go をクリックするとこれらはdisableされます。
参考URL:http://changineer.info/server/monitoring/monitoring_zabbix.html#MySQL_innodb
http://www.server-world.info/query?os=CentOS_6&p=zabbix&f=1
zabbixを動かすためには、WEBサーバー(apache)、PHP、データーベース(mysql)、が要りますが、その設定は終わっているものとします。apache,mysql等のデーター場所はデフォルトのままです。
まずは、ZABBIXに必要なPHP関連をインストールする。
# yum install php-mysql php-gd php-xml php-bcmath
次にZABBIXのレポジトリーを導入します。
# yum install http;//repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm
(XOOPSが悪さをするので:を;に変えてある)
そうすると /etc/yum.repos.d にzabbix.repo が出来ますが、enableになっていますので、変更し、disableにしておきます。
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://repo.zabbix.com/zabbix/2.4/rhel/6/$basearch/
enabled=0 ← 1を0に変更
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://repo.zabbix.com/non-supported/rhel/6/$basearch/
enabled=0 ← 1を0に変更
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
# yum install --enablerepo=zabbix zabbix zabbix-get zabbix-server zabbix-server-mysql zabbix-agent zabbix-web zabbix-web-mysql zabbix-web-japanese
ありゃー、エラーが出る
エラー: パッケージ: zabbix-web-japanese-2.4.7-1.el6.noarch (zabbix)
要求: zabbix-web = 2.4.7-1.el6
インストールしています: zabbix-web-1.8.22-1.el6.noarch (epel)
zabbix-web = 1.8.22-1.el6
問題を回避するために --skip-broken を用いることができません
これらを試行できます: rpm -Va --nofiles --nodigest
# yum remove zabbix-web
再度インストール
# yum install --enablerepo=zabbix zabbix zabbix-get zabbix-server zabbix-server-mysql zabbix-agent zabbix-web zabbix-web-mysql zabbix-web-japanese
またしてもエラー。今度は
エラー: パッケージ: zabbix-server-2.4.7-1.el6.x86_64 (zabbix)
要求: fping
エラー: パッケージ: zabbix-server-2.4.7-1.el6.x86_64 (zabbix)
要求: iksemel
エラー: パッケージ: zabbix-server-mysql-2.4.7-1.el6.x86_64 (zabbix)
要求: libiksemel.so.3()(64bit)
問題を回避するために --skip-broken を用いることができません
これらを試行できます: rpm -Va --nofiles --nodigest
これらは標準のレポジトリーではインストール出来ないが、EPELにある。私はEPELのレポジトリーはインストール済みだが、disable しているので、
# yum --enablerepo=epel install iksemel fping
libiksemel.so.3はiksemel を入れると一緒に入れるみたい。と言うのもiksemel をインストール後 updatedb して locate libiksemel.so.3 をすると、 /usr/lib64 に入っていた。
またまた、インストール
# yum install --enablerepo=zabbix zabbix zabbix-get zabbix-server zabbix-server-mysql zabbix-agent zabbix-web zabbix-web-mysql zabbix-web-japanese
やっとインストール出来た。次にデーターベースにzabbixのDBを作成します。
# mysql -u root -p
パスワードを入力後
mysql> create database zabbix;
mysql> grant all privileges on zabbix.* to zabbix@'localhost' identified by '使いたいパスワード';
mysql> grant all privileges on zabbix.* to zabbix@'%' identified by '使いたいパスワード';
mysql> flush privileges;
mysql> exit
お分かりだとは思いますが、DB名:zabbix、ユーザー名:zabbix、パスワード:使いたいパスワード になります。これらは後でserverの設定で使用します。
データーベースに初期データーを投入します。
# cd /usr/share/doc/zabbix-server-mysql-*/create/
# mysql -u root -p zabbix < schema.sql
# mysql -u root -p zabbix < images.sql
# mysql -u root -p zabbix < data.sql
それぞれパスワードの入力が必要です。
今回私は /etc/my.cnf の設定を変更しています。
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
#log-error=/var/log/mysql/mysqld.log
character-set-server=utf8
default-storage-engine=InnoDB
innodb_buffer_pool_size=512M
innodb_log_file_size=16M
innodb_log_files_in_group=2
#skip-grant-tables これは [ERROR] Can't open the mysql.plugin table が出た時に使った
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
default-character-set=utf8
但し、mysqlのインストール後にログのサイズを変更したため、mysqld を止めてから /var/lib/mysqlにある、ib_logfile0 と ib_logfile1 を消すその後 mysqld を起動する。(mysqlが自動で作る)
clientのキャラクターセットは
# mysql -u root -p -e 'show variables like "character%"'
で表示される、character_set_client等の値がutf8になっていなかった為。変更したので再起動
# service mysqld restart
サーバー設定(/etc/zabbix/zabbix_server.conf)
変更したのは DBPassword= を記入しただけ、これ以外に DBName= DBUser= もあるがデフォルトでzabbix になっており、mysqlに設定をしたものと同じである。
サーバーを起動
# service zabbix-server start
# chkconfig zabbix-server on
zabbixはWEBを前提としていますので、WEBからも設定しますが、yum でインストールした時に /etc/httpd/conf.d/ に zabbix.conf が出来ています。
基本的には何もしなくてもいいのですが、私はメモリーをたくさん積んでいるので一部下記の様に変更しました。
<IfModule mod_php5.c>
php_value max_execution_time 300
php_value memory_limit 512M
php_value post_max_size 32M
php_value upload_max_filesize 16M
php_value max_input_time 300
# php_value date.timezone Europe/Riga
php_value date.timezone Asia/Tokyo
</IfModule>
# service httpd graceful
次はWEBから設定をしていきます。
ある時 mysqlを再インストールするために yumでremoveした後に/usr/share/mysqlもdeleteした。(これがトラブルの元)
再度yumでインストールしたが起動しない。
/var/logにあるmysqld.logを見ると [ERROR] Can't find messagefile '/usr/share/mysql/english/errmsg.sys' とあった。
でもこのファイルは存在するgoogle先生に聞くとhttp://kowta.blogspot.jp/2012/06/vps1gmysqlcentos62.htmlに回答があった。
# yum reinstall mysql-libs
でmysql-libsを入れる。
再度
# service mysqld start
でも走らない。再度ログをチェック、今度は
[ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
となっている。google先生に聞く。
http://ukonlly.hatenablog.jp/entry/20110908/1315491518に回答が。mysqldをストップし、/etc/my.cnfを
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
character-set-server=utf8
default-storage-engine=InnoDB
innodb_buffer_pool_size=128M
innodb_log_file_size=16M
innodb_log_files_in_group=2
skip-grant-tables ←これを記入
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
に変更し、mysqldを起動
# service mysqld start
# su mysql ユーザーをmysqlにする
bash-4.1$ mysql_upgrade
bash-4.1$ exit
# service mysqld stop
で/etc/my.cnfにある、先ほど記入した skip-grant-tables をコメントアウトし、mysqld を起動する。
今度は
InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 16777216 bytes!
とあった。今度はhttp://blog.enjoitech.com/article/196に回答があった.
mysqld を止めてから /var/lib/mysqlにある、ib_logfile0 と ib_logfile1 を消す(mysqlが自動で作る)その後 mysqld を起動する。
(私はmysqlのインストール後にログのサイズを変更したため、この操作が必要だった)
これで、 mysqld を起動するとやっと起動できた。
ネットワーク内はsamba4を動かし、ファイルサーバーを立てているが、外からに対しファイルサーバーを作る。
これには webdav を動かす。CentOSでインストールされるapache は2.0なのでwebdavは設定だけで出来る。
# gedit /etc/httpd/conf.d/webdav.conf
# This is to permit URL access to WebDav.
#
Alias /webdav "/webdata/webdav"
<IfModule mod_dav.c>
DAVMinTimeout 600
<Location /webdav>
DAV on
SSLRequireSSL
AuthType Basic
AuthName "Login WebDAV"
AuthUserFile "/webdata/HtPasswd/.htpasswd"
Require valid-user
Order deny,allow
Deny from all
Allow from all
</Location>
</IfModule>
この設定はアクセスできるユーザーが決められていて、必ずSSLを使う設定なので、
この前にSSLの設定が終わっている事(もちろんapacheの設定も)。
参照:https://www.kinryokai.net/modules/news/article.php?storyid=146
次にアクセスできるユーザーに制限をかけたので、そのユーザーを作る。
# htpasswd /webdata/HtPasswd/.htpasswd ユーザー名
私は以前に同じ事をし、ユーザーを作っていたのでこれでいいが、最初にユーザーを作るときは htpasswdの後に -c オプションを付けること。
但し、もし以前に設定があったら全部消えるのでご注意を。
パスワードを2回聞かれるので設定する。
ちなみにこのユーザーはあくまでwebdavのみのユーザーなので、もちろんローカルのユーザーは作らなくてよい。
でもって、コンテンツにapacheサーバーがアクセスする為に所有者をapache(CentOSの場合)にする
# chown -R apache:apache /webdata/webdav
今度はクライアントであるwindows7に設定をするが、色々調べるとwindowsのwebdavの造り込みの評判がよくない。
なので、クライアントプログラムをインストールすることにしたが、前の会社で使っていたteamfileと言うのを使う。
まずはダウンロード http://www.teamfile.com/modules/d3downloads/ にアクセスし、TeamFile WebDAVクライアント(フリーウェア)をクリックしダウンロードする。
TeamFileFileSetup-2.1.146.1709.exe(2016年3月現在)があるのでそれをダブルクリックしインストールする。
エクスプローラー(インターネット・エクスプローラーでは無いよ)を開き左ペインのコンピューターをクリックすると、右ペインのその他下に TeamFile が出来ている。
これを右クリックし、サーバーの追加を をクリック。
名前は適当に入力、URLは正確に、特に私はSSLのみを許可しているので https:// の Sは大事、最後に / を忘れずに。
ユーザーIDとパスワードは設定した者。
その後、接続テストタブをクリックし、テストモードにする。
この画面は”テスト”をクリックした後の画面。
青のアンダーラインの様に接続成功となっているばOK。
ここでTeamFileの下に出来たWEBDAV(これは自分で設定した名前)をクリックするが、
サーバーエラーになってしまう。
コンテンツがWEBサーバーの実行ユーザーであるapacheになっていないような感じだが、いくら見直しても問題ない。
/etc/httpd/conf.d/webdav.conf も問題ない。どつぼにハマる。
色々探ったが結局問題は httpd.conf だった。
原因は以前にwebdavはwebdav.confでしようとhttpd.conf の下記の部分をコメントアウトしていたせい。
#
# WebDAV module configuration section.
#
<IfModule mod_dav_fs.c>
# Location of the WebDAV lock database.
#DAVLockDB /var/lib/dav/lockdb
</IfModule>
このコメントアウトを取り、apacheを再起動するとファイルが表示された。
47:でデーターのリストがあるが、新しくページを作ることにした。
2015年9月9日から10月2日までのデーター
2015年10月4日から10月26日までのデーター
上のデーターオフセットがおかしくなっている。真夜中で太陽が無いのに充電している!!!調べねば。
2015年10月28日から11月20日までのデーター
このデーターは天気が悪かったので、補充電が何度も入っている。10月29日までは前回と同じで、夜でも太陽電池の充電電流があるが、その後はなくなっている。これは絶対計測に使用しているオペアンプのオフセットがずれた為だが、その理由は今もって解らない。これほどオフセットがズレる程の温度変化や電圧変化は無い。しかも突然直っている。
2015年11月21日から12月14日までのデーター
2016年1月23日から2月15日までのデーター
私はDDコマンドでコピーを作る際(又はクローンでサブホストを作った時)、本来ならサブホストは停止してから行うべきだと思いますが、オンラインでやりました。
結果はOKでしたが、状況によってはつじつまが合わなくなるかも?
1:LVMで作っていたらLVMを作ってからやるべき
私はサブホストのルート領域をLVMで作っていますが、横着をして直接ディスクのパーティションに同じサイズで作りましたが(parted使用)どうも微妙にサイズが違うみたいで、DDコマンド時に領域が足りないとエラーが出た。表示されたセクター数を見ると1セクター違っていた。のでテスト用にPV、VG、LVと作りLVのサイズはオリジナルのサブホストと同じサイズで作成した。
2:UUIDもコピーされるので、変更すること。
その際、注意しなくてはいけないのはKVMでサブホストを作成すると、最初に指定した領域(LVM)にさらに領域を作りそれをルートのパーティションにしているので、ここを参照してloop0p1を作ってください。そこで
# tune2fs -U random /dev/mapper/loop0p1
追記:2019-7-9 CentOS7になってxfsになったので、同じことが出来なかった。
loop0p1を作るところまでは同じで、loop0p1をアンマウントし、xfs_adminでUUIDを作る。
# umount /dev/mappaer/loop0p1
# xfs_admin -U 新しいUUID /dev/mapper/loop0p1
又は# xfs_admin -U `uuidgen` /dev/mapper/loop0p1
として、UUIDを変更してください。これがサブホストのルート領域になる
3:UUIDを変更したのでブート関係も変更が必要になる
当世の流行りで、grub.conf や fstab にUUIDを指定して、ディスクを特定してるが、これが災いする。
私はLVMでルート領域を指定しているので、ディスクの順序が入れ替わる事による弊害は無いので、サブホストにUUIDを使う意味が無い
ので、/boot/grub/grub.conf と /etc/fstab のUUIDを指定している所を全部 /dev/vda1 に変更した。(UUID=と出てくる所)
4:IPアドレスも同じになる
サブホストはサーバーにしているので、固定IPにしていますが、これも同じになりますので変更してください。
私はNetworkManagerを使わずに、直接 /etc/sysconfig/network-scripts/ifcfg-eth0 で指定しています。
5:ホスト名も同じになる
/etc/sysconfig/network に設定があるので変更のこと
そしてサブホストを起動すると、どういう訳か最初は必ずudevが悪さをしてネットワークが使えないので、/etc/udev/rules.d/70-persistent-net.rules を削除して再起動。(このファイルは削除しても自動で再度正しい物を作ってくれる)
今日、ディスクのスペースをチェックしていたら、WEBサーバーのデータースペース用に割り当てているパーティションの残容量が少なくなっていた。
私はGUIなのでアプリケーション→システムツール→ディスク使用料の解析 で調べて見るとXOOPSのcacheのサイズが極端に大きくなっていた。キャッシュの数にして30万件。
その殆どがpiCal関連であった。さらにログを調べると、その殆どがbingbotのからのクローラーである。
どうもgoogle先生に聞いてもbingbotのクローラーのアクセスが多すぎる。ここを参照
それはさておき、こうもcacheが肥大化すると問題なので、piCalのキャッシュをしないようにした。管理メニューのSYSTEM ADMINの一般設定、さらに一般設定で下の方に各モジュールのキャッシュの設定がある。