Category Archives: Linux

Linux サーバー管理の注意事項まとめ

1.システム再起動
shutdown -h now NG
reboot OK
2. rm -rf を出来る限りに使わない

3.iptablesを有効

/sbin/iptables -A INPUT -m state –stateNEW -m tcp -p tcp –dport 22 -j ACCEPT
/sbin/iptables -A INPUT -m state –stateNEW -m tcp -p tcp –dport 80 -j ACCEPT
/sbin/iptables -A INPUT -m state –stateNEW -m tcp -p tcp –dport 3306 -j ACCEPT
/etc/init.d/iptables save
/etc/init.d/iptables restart
/etc/init.d/iptables status
iptables –L –n  //ファイアウォールルールを確認

4.selinuxを無効にする
getenforce
vim /etc/sysconfig/selinux
変更:
SELINUX=disabled
SELINUXTYPE=targeted

5.「getconf LONG_BIT」と「lsb_release -a」
[root@ip-172-31-27-223 ~]# lsb_release -a
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: CentOS
Description: CentOS release 6.5 (Final)
Release: 6.5
Codename: Final

[root@ip-172-31-27-223 ~]# getconf LONG_BIT
64
6.「mysql,nginx,php」などHost名として保存することNG
例 ps –ef|grep nginxで実行したら誤操作をする可能性がある

7.サーバー時間同期
yum install ntp
/etc/rc.d/init.d/ntpd start
ntpdate 133.100.8.2
crontab –e:
*/1 * * * root /usr/sbin/ntpdate 133.100.8.2 >/dev/null 2>&1
/etc/init.d/crond restart

8.ファイアウォールUDPポート123を開放してiptableサービスを動いている

9.設定ファイルを修正する前に必ずバックアップしてください

 

zabbixを利用して、複数のnginxのアクティブコネクション数を監視する方法

1.システム要件:
lnmp環境 3台nginx

2.nginx serverの設定ファイルにstatusモジュールを配置

location /ngst{
stub_status on;
access_log off;
allow 127.0.0.1;
allow xxx.xxx.xxx.xxx;
deny all;
}
3.nginx-statusの値を取得するスクリプト
#!/bin/bash
#HOST=`ifconfig eth0 | sed -n ‘/inet /{s/.*addr://;s/ .*//;p}’`
HOST=”192.168.103.2″
PORT=”8898″
function active {
/usr/bin/curl “http://$HOST:$PORT/nginx-status/” 2>/dev/null| grep ‘Active’ | awk
‘{print $NF}’
}
function reading {
/usr/bin/curl “http://$HOST:$PORT/nginx-status/” 2>/dev/null| grep ‘Reading’ |
awk ‘{print $2}’
}
function writing {
/usr/bin/curl “http://$HOST:$PORT/nginx-status/” 2>/dev/null| grep ‘Writing’ |
awk ‘{print $4}’
}
function waiting {
/usr/bin/curl “http://$HOST:$PORT/nginx-status/” 2>/dev/null| grep ‘Waiting’ |
awk ‘{print $6}’
}
function accepts {
/usr/bin/curl “http://$HOST:$PORT/nginx-status/” 2>/dev/null| awk NR==3 | awk
‘{print $1}’
}
function handled {
/usr/bin/curl “http://$HOST:$PORT/nginx-status/” 2>/dev/null| awk NR==3 | awk
‘{print $2}’
}
function requests {
/usr/bin/curl “http://$HOST:$PORT/nginx-status/” 2>/dev/null| awk NR==3 | awk
‘{print $3}’
}
# Run the requested function
$1

4.nginx-statusのテスト
/usr/bin/curl “http://192.168.103.2:8898/nginx-status/”
Active connections: 2
server accepts handled requests
1968 1968 3907
Reading: 0 Writing: 1 Waiting: 1

5.「zabbix_agentd.conf」の設定を変更
/etc/zabbix/zabbix_agentd.conf
UserParameter=nginx.accepts,/home/zabbix/nginx-status.sh accepts
UserParameter=nginx.handled,/home/zabbix/nginx-status.sh handled
UserParameter=nginx.requests,/home/zabbix/nginx-status.sh requests
UserParameter=nginx.connections.active,/home/zabbix/nginx-status.sh active
UserParameter=nginx.connections.reading,/home/zabbix/nginx-status.sh reading
UserParameter=nginx.connections.writing,/home/zabbix/nginx-status.sh writing
UserParameter=nginx.connections.waiting,/home/zabbix/nginx-status.sh waiting

iptablesの設定練習 第四章 ローカルPing許可、外部ping拒否

1.説明:
ローカルから別のホストをping操作許可、他のホストからpingを拒否

コマンド:
# iptables -A INPUT -d 172.16.103.1 -p icmp –icmp-type 0 -j ACCEPT
# iptables -A OUTPUT -s 172.16.103.1 -p icmp –icmp-type 8 -j ACCEPT

2.説明:
すべてのTCPフラグ1および0のパケットがローカルにアクセスを拒否
コマンド
# iptables -A INPUT -d 172.16.103.1 -p tcp –tcp-flags all all -j DROP
# iptables -A INPUT -d 172.16.103.1 -p tcp –tcp-flags all none -j DROP

3.デフォルトのポリシーを設定
# iptables -P INPUT DROP
# iptables -P OUTPUT DROP
# iptables -P FORWARD DROP

iptablesの設定練習 第三章 SSHサービスを開放

説明:

SSHサービスを「172.16.x.1-172.16.x.50」に開放する,新しいリクエストの速度1分2個以内、サービスポートを介して応答パケットのみ許可

操作コマンド:

# iptables -A INPUT -d 172.16.103.1 -p tcp –dport 22 -m iprange –src-range 172.16.4.1-172.16.4.50 -m state –state NEW -m limit –limit 2/minute -j ACCEPT
# iptables -A INPUT -d 172.16.103.1 -m state –state ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -s 172.16.103.1 -m state –state ESTABLISHED -j ACCEPT

iptables 設定の練習 第二章 月曜日から金曜日までFTPサービス定期開放

説明
月曜日から金曜日の「8:30-18:00」、FTPサービスは「172.16.0.0」のホストにアクセス権限を与える。データダウンロードリクエスト回数1分以内5個です

コマンド:
1.# iptables -A INPUT -d 172.16.103.1 -p tcp –dport 21 -m time –timestart 08:30 –timestop 18:00 –weekdays Mon,Tue,Wed,Thu,Fri -s 172.16.0.0/16 -m state –state NEW -j ACCEPT
2.# iptables -A INPUT -d 172.16.103.1 -p tcp –dport 21 -m state –state RELATED -m limit –limit 5/minute -j ACCEPT

3.# iptables -A INPUT -d 172.16.103.1 -p tcp –dport 21 -m state –state ESTABLISHED -j ACCEPT

4.# iptables -A OUTPUT -s 172.16.103.1 -m state –state ESTABLISHED,RELATED -j ACCEPT

iptablesの設定練習 第一章 月曜日webサーバアクセス拒否

# iptables -A INPUT -d 172.16.103.1 -p tcp –dport 80 -m time –weekdays Mon -j REJECT

//月曜日アクセウ拒否

# iptable s -A INPUT -d 172.16.103.1 -p tcp –dport 80 -m string –algo kmp –string “admin” -j DROP
//admin文字列を含むページアクセス拒否

# iptables -A INPUT -d 172.16.103.1 -p tcp –dport 80 -m state –state NEW -m limit –limit 100/second -j ACCEPT
//リクエスト速度100/sを超えない
# iptables -A OUTPUT -s 172.16.103.1 -m state –state ESTABLISHED -j ACCEPT
//「ESTABLISHED」のみリスポンス

CentOSでsmartctlをインストール、使い方

1.説明:
Self-Monitoring, Analysis and Reporting Technology(セルフモニタリング・アナリシス アンド・リポーティング・テクノロジー、略称: S.M.A.R.T.(スマート))は、ハードディスクドライブの障害の早期発見・故障の予測を目的としてハードディスクドライブに搭載されている機能である。この機能は、各種の検査項目をリアルタイムに自己診断し、その状態を数値化する。ユーザーはその数値を各種のツール(後述)を用いることで知ることが出来る。
smartctl–wikipedia

2.インストール
yum install smartmontools

3.使い方

3.1、smartctl -i <device> ://SMARTサポートかどうかを確認
SMART support is: Enabled
SMARTが起動
smartctl –smart=on –offlineauto=on –saveauto=on <device>
3.2.

smartctl -H <device> ://ハードディスクの健康状態をチェック
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

3.3.

smartctl -A <device> ://SMARTメーカーの属性と値

3.4、

smartctl -l error <device> ://エラー履歴

3.5、

smartctl –test=TEST <device> ://ハードドライブのセルフテスト

3.6.

smartctl -l selftest <device> ://HDDのテスト情報

3.7

smartctl -a <device> : //SMARTの全部情報

3.8

smartctl –all /dev/sda

 

 

Ubuntuにサービスコードを管理する方法

方法1

サービスコードのリストを表示
service –status-all

サービスコードを起動
sudo update-rc.d -f myservice default

サービスコードを停止
sudo update-rc.d -f myservice remove
方法2
コードをインストール
sudo install sysv-rc-conf
コードを実行
sudo sysv-rc-conf
方法3
sudo apt-get install chkconfig
chkconfig –list

方法4
sudo apt-get install bum

 

awkの実用コマンド例

1.空白行をフィルタリング
awk ‘!a[$0]++

2.重複行をフィルタリング
awk ‘NF-=2’

3.最後の2列をフィルタリング
awk ‘a=!a’

4.奇数行を印刷
awk ‘!(a=!a)’

5.偶数行を印刷
awk ‘END{print NR}’

6.wc -lをアナログ
awk ‘BEGIN{print “‘\””}’

7.単一引用符を印刷
awk ‘BEGIN{print “\””}’

二重引用符を印刷
awk ‘BEGIN{RS=””;FS=”\n”}{print NF}’

列交換
awk ‘/[^!-~]/’

最後の行の最後のワードを印刷
awk ‘{print $1 > “file”}’ file

8.テキストの行数
awk -vRS=”\n\n” -vOFS=” ” ‘$1=$1’

ubuntuでjreをインストールする

操作方法:

1.jre-7u55-linux-x64.tar.gzのダウンロード

http://www.java.com/en/download/manual.jsp

2.sudo mkdir /usr/lib/jvm
sudo mv ./jre1.7.0_55 /usr/lib/jvm

3.sudo gedit ~/.bashrc 環境変数を設定、次の内容を追記して、保存終了

export JAVA_HOME=/usr/lib/jvm/jre1.7.0_55
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

4.source ~/.bashrc

5.sudo update-alternatives –install /usr/bin/java java /usr/lib/jvm/jre1.7.0_55/bin/java 300

6.java -version