佐倉 佐紀のメモ
vi
置換ね
:%s/before/after/gc replace with before (y/n/a/q/l/^E/^Y)?(cオプションを付けたときに出て来る) y/n: Yes/No a: all もう確認しなくていいから全部置き換えちゃって q: quit 置換を止める l: (line?) これだけ置換して置換を止める ^E/^Y: ctrl+e/ctrl+yで上下にスクロール
UDP
High 12 =>なにか作ってるもよう・・・ 最後1オクテッド足りないような。
Med 1 => object add してる
ViewEffict =>おそらく画面で見ようとしたプリムの設計情報が送られてるとおもう。
基本的な内容
tar xzfv ~~ ~ いつもと同じ ~ ./configure~ make all~ make install~ make install-init~ make install-config~ make isntall-command~ ~
別途にpluginsを入れないとだめ!
これもコンパイルね
注意事項は下記に書いてある。
設定ファイルを変えたら↓
/usr/local/nagios/bin/nagios -v <main_config_file>
やるべし
大体はmain_config_file は、「nagios.cfg」を使ってる。
snmpの機能について
Snmpは標準で装備して無いように見せかけて実はされている > Net-snmpが入ってるないとコンパイルされない
または、独自にpluginを導入する
今回は
http://nagios.manubulon.com/
を使った。
参考サイト
学内配置ページ
http://202.26.159.212/nagios/
CentOSでの構築法
http://centossrv.com/nagios.shtml
マイコミ snmp詳細含む
http://journal.mycom.co.jp/column/yetanother/080/index.html
Nagios設定ファイル書き方
http://www.b-dash.net/solaris/nagios.html
Net-snmp
http://net-snmp.sourceforge.net/
snmpの加減設定について
http://sawano.members.icraft.jp/wp/2009/06/25/1360.html
MIB Treeにつて理解せねば
http://www.faqs.org/rfcs/rfc1157.html
にて定義
わかりやすいから下参照
http://codezine.jp/article/detail/2830?p=2
結局どうなってるんだ
iso(1)─org(3)─dod(6)─internet(1) ├mgmt(2) │ └mib-2(1) │ └mib-2(1) ┬system(1) -> 1 │ ├interfaces(2) -> 2 │ └host(25) │ └hrStorageTable(3) -> 3 │ │ │ └private(4) └enterprises(1)─ucdavis(2021) ├prTable(2) -> 4 ├memory(4) -> 5 └systemStats(11) -> 6
主なMIB設定の例
- mib: .1.3.6.1.2.1.1 / system
システム情報。監視対象機器の名前や設置場所に関する情報を取得。
- mib: .1.3.6.1.2.1.2 / interfaces
インターフェイスに関する情報。トラフィック量監視ではこの情報を利用。
- mib: .1.3.6.1.2.1.25.3 / hrStorageTable
RAM/Swap/HDDに関する統計情報。ディスク消費量監視にはこのデータを利用する。
- mib: .1.3.6.1.4.1.2021.2 / prTable
プロセス情報。特定プロセスの起動プロセス数を監視する場合はこの情報を利用。監視対象プロセスを登録する必要あり(別章で説明します)。
- mib: .1.3.6.1.4.1.2021.4 / memory
メモリに関する情報。
- mib: .1.3.6.1.4.1.2021.11 / systemStats
主にCPUに関する情報。
MIB-2 一覧 を見てもらいたい
準備
zlib データ圧縮ライブラリ
libpng PNG形式の画像用ライブラリ。zlibがインストールされている必要がある
GD 画像生成用ライブラリ。libpngがインストールされている必要がある
事前に入れておく。
# tar xvfz mrtg-2.9.25.tar.gz
# cd mrtg-2.9.25
# ./configure
# make
# make install
設定について・・・
cfgmaker <オプション> コミュニティ名@ホスト名
で設定する。
コミュニティは大体はPublic > snmpの設定で決めたコミュニティ
例
sirius-cでは設定ファイルは/usr/local/logに保存してる。
=========
/usr/local/mrtg-2/bin/cfgmaker \
--output=/usr/local/log/mrtg.cfg \
public@192.168.1.1
=========
生成された設定ファイルに
WorkDir: /usr/local/apache/htdocs/mrtg
Language: eucjp
IconDir: /mrtg/icons/
PHP,OpenSSL,MySQL,Apacheはコンパイルで入れるべし
そういうわけだ。
Xoops cube Program Links
http://sourceforge.net/projects/xoopscube/files/
こうやったぜ!
[root@centos ~]# /bin/cp /usr/share/doc/dhcp-*/dhcpd.conf.sample /etc/dhcpd.conf ← DHCPサーバー設定ファイルをサンプルより作成
[root@centos ~]# vi /etc/dhcpd.conf ← DHCPサーバー設定ファイル編集 ddns-update-style interim; ignore client-updates; not authoritative; ← 追加(以下のような警告メッセージがログに出力場合の対処)
If this DHCP server is authoritative for that subnet, please write an `authoritative;' directive either in the subnet declaration or in some scope that encloses the subnet declaration - for example, write it at the top of the dhcpd.conf file.
subnet 192.168.1.0 netmask 255.255.255.0 { ← 自身の環境にあわせて編集
# --- default gateway
option routers 192.168.1.1; ← ルーター経由接続環境の場合はルーターのIPアドレスを指定 PPPoE接続環境の場合はサーバーのIPアドレスを指定 option subnet-mask 255.255.255.0;
#option nis-domain "domain.org"; ← コメントアウト #option domain-name "domain.org"; ← コメントアウト option domain-name-servers 192.168.1.1;
← ルーター経由接続環境の場合はルーターのIPアドレスを指定
option domain-name-servers XXX.XXX.XXX.XXX,XXX.XXX.XXX.XXX;
← PPPoE接続環境の場合はプロバイダから通知されたDNSサーバーのIPアドレス(プライマリ,セカンダリ)を指定
option time-offset -18000; # Eastern Standard Time
# option ntp-servers 192.168.1.1;
# option netbios-name-servers 192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
# option netbios-node-type 2;
range dynamic-bootp 192.168.1.2 192.168.1.254; ← 割当てるIPアドレスを指定(192.168.1.2~192.168.1.254) default-lease-time 21600; max-lease-time 43200;
# we want the nameserver to appear at a fixed address #host ns { # next-server marvin.redhat.com; # hardware ethernet XX:XX:XX:XX:XX:XX; # fixed-address 207.175.42.254; #} }
}
以下はホストwin-client1にプライベートIPアドレスを固定で割当てる場合追加 host win-client1 { ← ホスト名 hardware ethernet XX:XX:XX:XX:XX:XX; ← win-client1に装着しているネットワークアダプタのMACアドレス※ fixed-address 192.168.1.10; ← win-client1に固定で割当てるIPアドレス }
CentOS はJavaのClassPassが「.」じゃなかった!
使えない・・・、非常にこまった、課題でできなかった、解決策
解決策 > export CLASSPATH=$CLASSPATH:.
これをすればおk .bashrcくらいに書き込めば怖いものなし
sl について
Jokeソフトである。 make installがないから手動インストール checkinstallはmake installがいるから自分で書くこと。
install: -cp -ir ./sl /usr/bin/
checkinstall
かなり便利自動RPM生成ツール http://asic-linux.com.mx/~izto/checkinstall/files/source/checkinstall-1.6.2.tar.gz http://asic-linux.com.mx/~izto/checkinstall/download.php
まぁ、あとは分かるだろう
rrdtool
http://www.itmedia.co.jp/enterprise/articles/0705/30/news022.html を参考に
http://oss.oetiker.ch/rrdtool/pub/?M=D
$ wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.2.tar.gz
$ tar xzfv rrdtool~~~.tar.gz
$ cd rrd~
$ ./configure
$ make
注意:glibでエラーがわしの環境だとでた・・・(コンパイルしたglibがつかえなかった
mv /usr/local/include/glib-2.0 /usr/local/include/glib-2.0---
そしてmake後にもどす。
# make install
Cacti
http://www.cacti.net/download_cacti.php $ wget http://www.cacti.net/downloads/cacti-0.8.7e.tar.gz $ tar xzfv cacti-~~~.tar.gz & cp -ir ./cacti~~ ${apache_dir}/cacti $ cd ${apache_dir}/cacti $ su - ==mysqlセットアップ==
# checkconfig --list mysqld (確認 ONにすること)
#mysqladmin -u root password <password>
#mysql -u root -p PASS use mysql; DELETE FROM user WHERE password=""; exit; ==mysqlセットアップ==
# mysqladmin -u root -p create cacti ※cactiのDB作成 Enter password: 管理者パスワードを入力
# mysql -u root -p < cacti.sql cacti ※cactiのDB作成(SQLの流し込み) Enter password: 管理者パスワードを入力
# mysqladmin -u root -p reload Enter password: 管理者パスワードを入力
# mysql -u root -p Enter password: 管理者パスワードを入力 use cacti; show tables; (一覧いっぱい!) grant all on cacti.* to cactiuser@localhost identified by 'cactipass'; ※ 'cactipass' はパスワード exit
# /usr/local/mysql/bin/mysqladmin -u root -p reload Enter password: 管理者パスワードを入力
#
# vi /var/www/html/cacti/include/config.php
以下のように編集(28行目から) ※おそらくそのままでOK
/* make sure these values refect your actual database/host/user/password */ $database_type = "mysql"; $database_default = "cacti"; $database_hostname = "localhost"; $database_username = "cactiuser"; $database_password = "cactipass";
#
# chown -R apache:apache /var/www/html/cacti/
パッチをあてる
http://www.cacti.net/download_patches.php cd ${cacti_dir} wget http://www.cacti.net/downloads/patches/0.8.7e/cli_add_graph.patch wget http://www.cacti.net/downloads/patches/0.8.7e/snmp_invalid_response.patch wget http://www.cacti.net/downloads/patches/0.8.7e/template_duplication.patch wget http://www.cacti.net/downloads/patches/0.8.7e/fix_icmp_on_windows_iis_servers.patch wget http://www.cacti.net/downloads/patches/0.8.7e/cross_site_fix.patch patch -p1 -N < cli_add_graph.patch patch -p1 -N < snmp_invalid_response.patch patch -p1 -N < template_duplication.patch patch -p1 -N < fix_icmp_on_windows_iis_servers.patch patch -p1 -N < cross_site_fix.patch
cactid(spine)をいれておく(いいらしい?
# http://www.cacti.net/downloads/spine/cacti-spine-0.8.7e.tar.gz
# tar xvzf cacti-spine~~~.tar.gz
# cd cacti-spine-0.8.6d
#
# ./configure
# make
# make install (cacti > spineでかんがえてw) make[1]: Entering directory `/usr/local/src/cacti-cactid-0.8.6d' /bin/sh ./config/mkinstalldirs /usr/local/cactid/bin mkdir -p -- /usr/local/cactid/bin
/usr/bin/install -c cactid /usr/local/cactid/bin/cactid
/bin/sh ./config/mkinstalldirs /usr/local/cactid/include mkdir -p -- /usr/local/cactid/include
/usr/bin/install -c -m 644 cactid.h /usr/local/cactid/include/cactid.h /usr/bin/install -c -m 644 common.h /usr/local/cactid/include/common.h /usr/bin/install -c -m 644 snmp.h /usr/local/cactid/include/snmp.h /usr/bin/install -c -m 644 locks.h /usr/local/cactid/include/locks.h /usr/bin/install -c -m 644 sql.h /usr/local/cactid/include/sql.h /usr/bin/install -c -m 644 util.h /usr/local/cactid/include/util.h /usr/bin/install -c -m 644 poller.h /usr/local/cactid/include/poller.h /usr/bin/install -c -m 644 nft_popen.h /usr/local/cactid/include/nft_popen.h /usr/bin/install -c -m 644 php.h /usr/local/cactid/include/php.h
make[1]: Leaving directory `/usr/local/src/cacti-cactid-0.8.6d'
#
# vi /usr/local/spine/etc/spine.conf
以下のように編集 ※おそらくそのままでOK
DB_Host localhost DB_Database cacti DB_User cactiuser DB_Pass cactipass
# chown -R apache:apache /usr/local/cactid/
時代はzabbix 日本語も対応ね
http://www.zabbix.jp/files/documents/zabbix16-installationguide-1.0.pdf
文字コード変換
いろんな方法があります。
vi上では
:w ++ff=unix
Linux上では
sed -e 's/^M//g' CRLF.txt >LF.txt~ find . -type f | xargs -n 10 nkf -w --overwrite~
ただしNKFは使用注意
下のコマンドはxoopsなどでUTFに変換する時に便利 再帰的にUTF化
find . -type f -name *.php -or -name *.html -or -name *.htm -exec nkf -w --overwrite {} \; ~
量が多いとおかしくなるので下のを推奨
find . -type f -name "*php" -exec nkf -w --overwrite {} \; find . -type f -name "*html" -exec nkf -w --overwrite {} \; find . -type f -name "*htm" -exec nkf -w --overwrite {} \; find . -type f -name "*txt" -exec nkf -w --overwrite {} \;
Mysql
mysqldump -q データベース名 -u USENAME -p > バックアップファイル名
mysql -pパスワード 新データベース名 < バックアップファイル名
- all-databases すべてのDB
- all-databases すべてのDB
日本語ファイルだったら文字化けすることがある
lessファイル名でチェック
mysqldump -q データベース名 --default-character-set=ujis -u USENAME -p > バックアップファイル名
ftpかなにかで移動したのちに
nkf -wE ファイル名 > 出力ファイル名
sed 's/ujis/utf8/g' 出力ファイル名 > 最終ファイル名
のち、lessか何かで日本語みれるかかくにんするべし
DBの破損
Table 'xxxxxxxx' is marked as crashed and should be repaired っとでたらそれは破損.
mysql>check table table_name; +---------------------------+-------+----------+-------------------------------------------------+ | Table | Op | Msg_type | Msg_text | +---------------------------+-------+----------+-------------------------------------------------+ | xoops_aonn.aon502_session | check | error | Table 'xoops_aonn.aon502_session' doesn't exist | +---------------------------+-------+----------+-------------------------------------------------+ 1 row in set (0.00 sec)
このように出る.
mysql>repair table table_name;
を実行してOKじゃなければあきらめるべし.
最新のLampはエラーがいっぱい
OpenSSLは./configするときにsharedをつけること Phpがコンパイルできません LAMPを始める前にかならず/usr/local/lib/pkgconfig と/usr/lib/pkgconfigをシンボリックに! SSLがコンパイルできたら/usr/local/ssl/libを/etc/ld.so.confに追記 ldconfigを忘れずに
Mysql5.5から仕様変更
http://www.nsl.tuis.ac.jp/xoops/modules/xpwiki/?mysql-5.5
書きました.
CentOS7のPasswordReset
Grubのコマンド編集# linux16 /vmlinuz ・・・・・ ro ・・・ → roを以下に書き換える rw init=/sysroot/bin/sh CTRL-Xを入力 :/# となってれば成功 chroot /sysroot passwd UserName
tar関連
xargsは引数の長さが20 x 1024文字が限界らしい. tarではxargsは危険.
find -name "XXXX*" -print0 | tar -cvz -T - --null -f XXXX.tar.gz bzip2で圧縮 find -name "XXXX*" -print0 | tar -cvj -T - --null -f XXXX.tar.bz2 アーカイブは遠方のストレージに取る find -name "XXXX*" -print0 | tar -cvj -T - --null | ssh USER@SERVER "cat - > XXXX.tar.bz2" 手元のサーバにCPU負荷をかけたくないけどbzip2圧縮はしたいかつ遠方からこっちにssh接続はしたくない(ファイアウォール的な問題等) find -name "XXXX*" -print0 | tar -cv -T - --null | ssh USER@SERVER "bzip2 -cz > XXXXX.tar.bz2" 遠方のサーバにそのまま解凍 find -name "XXXX*" -print0 | tar -cv -T - --null | ssh USER@SERVER "cd /tmp; tar x"
RHEL8以降TCP Wrapper はない
Firewalldで対処すること
# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="xxx.xxx.xxx.xxx" port protocol="tcp" port="22" accept" # firewall-cmd --remove-service=ssh --zone=public --permanent # firewall-cmd --reload # firewall-cmd --list-all --zone=public