經常使用服務器的安裝

nfs-utils rpcbind 兩軟件php


在/etc/exports中添加共享目錄    權限(all,rw,ro,async sync no_root_squash root_squash all_squash anonudi,anongid user )
showmount -t +共享服務器地址 exportfs -arv 重啓nfs      查看共享目錄
mount -t nfs -onolock,nfsvers=3 +共享服務器地址的目錄 掛載目錄地址
umount -l +卸載共享目錄                             目錄權限
vi /etc/init.d/nfs    修改rpcnfsdocunt=8 改爲32
echo 252144 >/proc/sys/net/core/rmem-default/max/wmem_default/wmem_maxcss


pure-ftpd
--without-inetd
--with-altlog
--with-puredb
--with-throttling
--with-peruserlimits 
--with-tlshtml


mkdir /usr/local/pure-ftpd/etc
cp /usr/local/src/pure..../configuration/pure-ftpd.conf /usr/local/pure-ftpd/etc/
cp /usr/local/src/pure..../configuration/pure-config.pl /usr/local/pure-ftpd/sbin/
chmod 755 /usr/local/pureftpd/sbin/pure-config.pl
/usr/local/pureftpd/sbin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf 啓動pureftpd服務
建立共享目錄  修改目錄用戶權限
mkdir -p /data/www 虛擬用戶目錄
useradd www 創建系統用戶
useradd www -s /sbin/nologin  不能這樣建用戶 不然登錄不起出現interrupt
/usr/local/pureftpd/bin/pure-pw useradd ftp -uuser2 -d /data/www 建立虛擬用戶和系統用戶關聯
/usr/local/pureftpd/bin/pure-pw mkdb 建立虛擬用戶數據庫
/usr/local/pureftpd/bin/pure-pw list 查看虛擬用戶列表
/usr/local/pureftpd/sbin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf
ln -s /usr/local/pureftpd/sbin/pure-ftpd /usr/sbinjava



vsftpd 如何建立虛擬用戶
yum -y install vsftpd* pam* db4*
useradd cisco -s /sbin/nologin 創建虛擬帳號相關聯的系統帳號
vim /tmp/cisco.login 創建虛擬用戶文件(包括用戶名和密碼)
chmod 600 /tmp/cisco.login 修改虛擬用戶文件權限
db_load -T -t hash -f /tmp/cisco.login /tmp/cisco.login.db 把虛擬用戶文件生成系統識別的二進制庫文件
mkdir /tmp/cisco.conf 創建虛擬用戶配置目錄
cd /tmp/cisco.conf
vi test 這個文件名必須和創建的虛擬用戶文件中的用戶必須一致
local_root=/home/cisco/test
anonynous_enable=no
write_enable=no
local_umask=022
anon_upload_enable=no
anon_mkdir_write_enable=no
idle_session_timeout=600
data_connection_timeout=120
max_clients=120
max_per_ip=5
local_max_rate=500mysql


mkdir /home/cisco/test
chown -R cisco:cisco /home/cisco/test
修改驗證文件
vi /etc/pam.d/vsftpd
auth sufficient /lib64/security/pam_userdb.so db=/tmp/cisco.login
account sufficient /lib64/security/pam_userdb.so db=/tmp/cisco.loginlinux


vi /etc/vsftpd/vsftpd.conf
guest_enable=yes
guest_username=cisco (創建的系統用戶名)
virtual_use_local_privs=yes
user_config_dir=/tmp/cisco.conf
啓動服務ios


samba服務器:
yum -y install samba samba-client
vi /etc/samba/smb.conf
共享不要密碼
[cisco]
comment=share all
path=/tmp/sambadir
browsenable =yes
public=yes
writable=no
security=share
workgroup=WORKGROUP
window客服的:\\ip 客服端
linux客服端:smbclient//ip/共享目錄名
共享目錄也能夠掛載需安裝:cifs-utifs
mount -t cifs //ip/共享目錄名 掛載點
共享須要密
security = user
[cisco]
comment=share for users
path=/tmp/smbdr
public=yes
browseable=yes
writable=noweb


添加用戶smb
pdbedit -a smb算法


smbclient -U smb //ip/共享目錄名
mount -t cifs -ousername=smb,password=cisco //ip/共享目錄名sql


squid 安裝配置  正向代理
 添加:cache_mem 128 MB 設置內存大小
打開cache_dir目錄 並設定緩存目錄的大小   cache_dir ufs /data/cache 1024 16 256
緩存對象:refresh_pattern \.(jpg|gif|png|css|js|mp3|mp4 ) 1440 20 2880 ignore-reload
抓包工具 tcpdump
tcpdump -nn port 3128


acl http proto http
acl good_domain dstdomain .cisco.com .sina.com .sohu.com
http_access allow good_domain
http_access deny !good_domain


squid的反向代理
修改http_port 80 accel vhost vport
cache_peer 訪問網站ip parent 80 0 originserver name=a
cache_peer_domain a www.baidu.com


透明代理 其餘配置和正向代理同樣
http_port 3128 transparent
設置防火牆規則
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp -s 192.168.19.0/24 --dport 80 -j REDIRECT --to-ports 3128


squid 日誌不記錄圖片、js、css等靜態文件
在squid.conf中加入:
acl nolog urlpath_regex -i \.css \.js \.swf \.jpg \.gif \.png \.jpeg
access_log /var/log/squid/access.log common !nolog 其中common 爲日誌格式


如何查看squid的緩存命中率
使用命令:  squidclient -h host -p port mgr:info
好比:  /usr/local/squid/bin/squidclient -h 127.0.0.1 -p 8080 mgr:info
使用這個命令的前提是,你在你的squid.conf 中配置了相關的選項
acl manager proto cache_object
http_access allow manager
squid的用戶認證配置   本身查詢
刪除squid緩存
如何清除squid 緩存
1 首先在squid 的主配置文件中添加acl 列表,並容許受信任的主機有權限清除緩存  
  acl  managercache   src 192.168.1.145 127.0.0.1
  acl   Purge  method PURGE
  http_access allow  managercache Purge
  http_access  deny Purge
2 清除squid 中一條緩存
  /usr/local/squid/bi/squidclient -h  192.168.1.145 -p80 -m PURGE http://www.linuxidc.com/404.html
3 批量清除squid 緩存中的文件
   腳本 以下
    #!/bin/sh
   squidcache_path="/usr/local/squid/var/cache/"
   squidclient_path="/usr/local/squid/bin/squidclient"
   grep -a -r $1 $squidcache_path/* | strings | grep "http:" | awk -F'http:' '{print "http:"$2;}' > cache_list.txt
   for url in `cat cache_list.txt`; do
   $squidclient_path -m PURGE -p80 $url
   done
   注:squidcache_path 是squid 緩存路徑;squidclient_path 是squidclient 命令的 路徑; -p  是指定squid 監聽的端口;並給clearcache.sh    執行權限;#chmod +x  clearcache.sh
4  使用方法
   用法:
  一、清除全部Flash緩存(擴展名.swf):
      ./clear_squid_cache.sh swf
  二、清除URL中包含sina.com.cn的全部緩存:
    ./clear_squid_cache.sh sina.com.cn
  三、清除文件名爲zhangyan.jpg的全部緩存:
     ./clear_squid_cache.sh zhangyan.jpg


squid 防盜鏈
acl has_referer referer_regex.
acl allow_referer referer_regex -i baidu\.com
acl allow_referer referer_regex -i google\.com
acl allow_referer referer_regex -i yahoo\.com
acl allow_referer referer_regex -i sina\.com
acl allow_referer referer_regex -i sohu\.com
http_access allow !has_referer
http_access deny !allow_referer
deny_info http://img1.test.com/p_w_picpaths/noposter.jpg allow_referer 拒絕的網站返回當前指定的網頁


tomcat的安裝
官網下載: wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.69/bin/apache-tomcat-7.0.69.tar.gz
解壓,mv /apache-tomcat-7.0.69 /usr/local/tomcat
cp -pv  /usr/local/tomcat/bin/catalina.sh /etc/init.d/tomcat
chmod 755 !$
chkconfig --add tomcat
chkconfig tomcat on
/etc/init.d/tomcat start      tomcat先停在啓動     service tomcat stop;service tomcat start
在vi/etc/init.d/tomcat
#chkconfig: 2345 63 37
. /etc/init.d/functions
JAVA_HOME=/usr/local/jdk版本號 需大寫不然會出現啓動錯誤
CATALINA_HOME=/usr/local/tomcat
tomcat配置新的主機
修改connector port 8080 爲80  需中止後啓動才能生效
在</host>下添加新的主機 
<Host name="www.111.com網站名" appBase="/data/tomcatweb"    jsp存放的目錄 "
 unpackWARs="false" autoDeploy="true" xmlValidation="false"
 xmlNamespaceAware="false">
 <Context path="" docBase="" debug="0" reloadable="true" crossContext="true"/>
 </Host>


#注意將docBase的路徑,這邊是放空的形式,表示根目錄在appBase指定的目錄下。切記:不能夠爲.或者./這樣的形式。
#<Context path="" docBase="" debug="0" reloadable="true" crossContext="true"/>
#裏面的docBase 若是是直接放空的話,那網站根目錄就是appBase所指向的路徑即"/data/tomcatweb" 若是指定爲./ROOT #那就是/data/tomcatweb/ROOT。這樣你就要將相應的網站腳本放到相應的目錄中去。


測試腳本:
<html><body><center>
Now time is: <%=new java.util.Date()%>
</center></body></html>




resin的安裝
./configure --prefix=/usr/local/resin   --with-java-home=/usr/local/jdk1.8.0_31
 make  && make install
 /etc/init.d/resin start
vim /usr/local/resin/conf/resin.xml
改配置文件
jdk的安裝:
vi /etc/profile.d/java.sh
JAVA_HOME=/usr/local/jdk版本號
JAVA_BIN=/usr/local/jdk版本號/bin
JRE_HOME=/usr/local/jdk版本號/jre
PATH=$PATH:/usr/local/jdk版本號/jre/bin:/usr/local/jdk版本號/bin
CLASSPATH=/usr/local/jdk版本號/jre/lib:/usrl/local/jdk版本號/lib:/usr/local/jdk版本號/jre/lib/charsets.jar
export java_home jave_bin jre_home path classpath


. /etc/profile.d/java.sh    source /etc/profile.d/java.sh
java -version


在 Ubuntu 12.04 LTS 上經過 Tomcat 部署 Solr 4 http://www.linuxidc.com/Linux/2012-09/71158.htm
Ubuntu下部署Solr(4.4)到Tomcat(7.0.53) http://www.linuxidc.com/Linux/2014-05/101443.htm
Linux下Apache與多個Tomcat 集羣負載均衡 http://www.linuxidc.com/Linux/2012-01/51731.htm Nginx Tomcat
集羣負載均衡解決筆記 http://www.linuxidc.com/Linux/2013-07/86827.htm
實例詳解Tomcat組件安裝+Nginx反向代理Tomcat+Apache使用mod_jk和mod_proxy反向代理和負載均衡 http://www.linuxidc.com/Linux/2013-06/85290.htm
Apache+Tomcat 環境搭建(JK部署過程) http://www.linuxidc.com/Linux/2012-11/74474.htm
Linux Resin 安裝配置 http://www.linuxidc.com/Linux/2013-06/86092.htm
Nginx+Resin高性能Java平臺搭建 http://www.linuxidc.com/Linux/2012-12/77078.htm
搭建Web服務器(JDK+Nginx+Resin整合) http://www.linuxidc.com/Linux/2012-08/69197.htm
Resin服務器使用cookie注意事項 http://www.linuxidc.com/Linux/2012-09/70595.htm
CentOS 5 安裝 Resin 4 http://www.linuxidc.com/Linux/2012-08/67277.htm
tomcat自動檢查並重啓腳本 http://www.lishiming.net/thread-797-1-2.html
處理tomcat沒必要要的日誌 http://www.lishiming.net/thread-406-1-1.html
配置tomcat的內置監控 http://www.lishiming.net/thread-402-1-1.html
配置tomcat啓動時的優化參數 http://www.lishiming.net/thread-401-1-1.html
配置tomcat的進程數控制 http://www.lishiming.net/thread-400-1-1.html
配置tomcat容器的access.log訪問日誌 http://www.lishiming.net/thread-399-1-1.html


mysql的主從複製   切記不要再從上修改數據  庫名要一致  主從數據庫必須同樣


1 先安裝mysql
2 輔助cp -r /usr/local/mysql /usr/local/mysql_slave
3 cd /usr/local/mysql_slave     cp /etc/my.cnf .
4 vi my.cnf    該端口 3307 tmp=/tmp/mysql_slave.sock   datadir=/data/mysql_slave
5 ./script/mysql_install_db --user=mysql --datadir=/data/mysql_slave
6 cd /etc/init.d    cp mysqld mysqld_slave     vi mysqld_slave   basedir=/usr/local/mysql_slave   datadir=/data/mysql_slave   conf=$basedir/my.cnf


登錄主數據庫並創建複製數據庫
mysql的登錄方式
mysql -S /tmp/mysql.sock 表示登錄的那個數據庫  mysql -S /tmp/mysql_slave.sock    經過sock來登錄數據庫
mysql -h主機 -port 3306  經過主機登錄
絕對路徑登錄 /usr/local/mysql/bin/mysql
1.創建數據庫  create database db1;
mysqldump -S /tmp/mysql.sock mysql > 1.sql
mysql -S /tmp/mysql.sock db1 < 1.sql       show tables; 查看錶
在主數據庫
vi /etc/my.cnf
該server-id =1
auto-increment-increment = 3  //每次增加3,3個mysql都同樣
auto-increment-offset = 1  //設置自動增加的字段的偏移量,即初始值爲1,msyql2設爲2,mysql3設爲3
log-bin=cisco 打開   會在/data/mysql下生成一些以cisco開頭的文件
binlog-do-db=db1 表示只針對db1這個數據庫同步
binlog-ignore-db=mysql  表示同步除mysql之外的數據庫
replicate-do-db=db1 這個主要用於從服務器上
auto-increment-increment=2 主要用於互爲主從的狀況
auto-increment-offset=1    主要用於互爲主從的狀況
binlog-ignore-db=db1 表示指針對除db1之外的用戶同步
grant replication slave on *.* to 'repl'@'127.0.0.1' identified by 'cisco'; 表示對備份用戶鎖定權限
flush privileges; 刷新權限 flush tables with read lock; 鎖定用戶權限 show master status;
注:二都只有server-id不一樣和 auto-increment- offset 不一樣     auto-increment-increment的值應設爲整個結構中服務器的總數,本案例用到三個實例,因此值設爲3。

vi /usr/local/mysql_slave/my.cnf
修改server-id=11 主從不能一致
log_bin=mysql_bin 能夠不用開啓 能夠自動修改
replicate-do-db=db1 表示只和db1數據庫同步  這個主要用於從服務器上
replicate-ignore-db=db1 表示除db1外的數據庫同步 這個主要用於從服務器上
創建數據庫  create database db1;
mysqldump -S /tmp/mysql.sock mysql > 1.sql                       mysql -S /tmp/mysql_slave.sock -e "create database db1"
mysql -S /tmp/mysql.sock db1 < 1.sql
slave stop;
change master to master_host='127.0.0.1',master_port=3306(默認),master_user='repl',master_password='cisco',master_log_file='cisco.000001' 是show master status 中的數據,master_log_pos=331;
slave start
show slave status \G 查看主從配置狀況
select database ();查看當前數據庫
一主一或多從總結  數據庫以主已從注意事項:1.有相同的數據庫名  2。server_id不能相同。3從數據庫在進行數據拉的時候,以主數據庫創建的用戶名,密碼,bin_log爲準。4.主在創建從複製對象時,ip寫從的,從在拉數據時 ip寫主的。
測試主從時候複製數據正常:unlock tables;把表解鎖;
互爲主從或環形主從注意要點:1:主在創建從複製對象時,ip寫從的,從在拉數據時 ip寫主的。2:在做爲從的時候要slave stop。


數據庫讀寫分離(mysql-proxy):
1.主從配置(見以上操做步驟)
2.安裝lua包:如出錯需安裝:yum install -y readline-devel ncurses-devel  libreadline-dev
vi src/Makefile 在 CFLAGS= -O2 -Wall $(MYCFLAGS) 這一行記錄里加上-fPIC,更改成 CFLAGS= -O2 -Wall -fPIC $(MYCFLAGS) 來避免編譯過程當中出現錯誤。
make linux ; make install
mysql-proxy代理:
wget http://cdn.mysql.com/archives/mysql-proxy/mysql-proxy-0.8.3-linux-glibc2.3-x86-64bit.tar.gz
tar -vxf http://cdn.mysql.com/archives/mysql-proxy/mysql-proxy-0.8.3-linux-glibc2.3-x86-64bit.tar.gz -C /usr/local/mysql-proxy
2)準備讀寫分離的LUA策略腳本
直接複製mysql-proxy提供的樣例策略便可:
[root@proxy mysql-proxy]#cd /usr/local/mysql-proxy
[root@proxy mysql-proxy]#cp share/doc/mysql-proxy/rw-splitting.lua ./
[root@proxy mysql-proxy]#bin/mysql-proxy -P 代理服務器ip:3306 \
> -b master ip:3306 \
> -r slave ip :3306 \
> -s rw-splitting.lua &
3)啓動mysql-proxy代理服務
主要命令選項:
    -P(大寫):指定代理監聽的IP地址、端口
    -r:指定讀服務器的IP地址、端口
    -b:指定寫服務器的IP地址、端口
    -s:指定lua腳本文件
    --keepalive:若是服務進程崩潰,嘗試重啓此進程


http://blog.csdn.net/e421083458/article/details/19697701



yum -y install bind 主文件bind-utils測試工具 bind-libs庫文件 bind-chroot假裝
named-checkconf   named-checkzone "dns服務器名" 全稱服務器名  rndc reload =/etc/init.d/named restart
檢測反區域解析庫文件,語法格式命令文件路徑域名是否正確。
named-checkconf jie.com /var/named.jie.com.zone


dig -t A(正向)X(反向) 資源記錄名稱 @服務器ip
host -t A 資源記錄名稱  服務器ip
nslookup 資源記錄名稱  服務器ip
資源記錄名稱包括:NS,A,PTR
DNS服務器:主,從,緩存,轉發。udp 53端口 tcp用於dns服務器之間通訊。
DNS記錄的類型:A:Address 域名向ip地址轉換的記錄;PTR:Printer ip地址向域名轉換的記錄;
NS:表明域內的dns服務器;MX:表明域內的郵件服務器;
CNAME:域名的別名;SOA:start of authority用於標示域內主DNS服務器。
三、打開/etc/named.rfc1912.zones文件,添加一個區域。
type: 用於定義區域類型,此時只有一個DNS服務器,因此爲master,type可選值爲:hint(根的)|master(主的)|slave(輔助的)|forward(轉發)
named.conf的配置語法:
acl 定義訪問控制列表
option 定義全局選項:directory:定義服務器數據庫文件的工做目錄
view 定義域名空間的一個視圖 zone定義一個區聲明 include 包含其餘文件到配置文件 controls 定義rndc命令使用的控制通道,若省略,則只容許通過rndc.key認證的127.0.0.1的rndc的控制。
根域服務器指向文件:/var/named/named.ca
本地正向解析區文件:/var/named/localhost.zone
本地反向解析區文件:/var/named/named.local
域正向解析區文件:/var/named/正向解析區文件名
域反向解析區文件:/var/named/反向解析區文件名
主配置文件:
allow-query{any;}表示全部人都能查詢這臺服務器。
forwarders{ip;}若是本地數據庫沒有請求數據,將由此ip進行查詢
DNS配置詳解:http://www.linuxidc.com/Linux/2013-08/88986.htm
DNS緩存服務器:
在主配置文件中有forwarders{解析地址;}和recuesion yes 就能夠了
測試方式:dig -t A fqdn@解析服務器ip 或host -t A FQDN 解析服務器ip
nslookup fqdn 服務器ip
DNS主從服務器:
在vi /etc/named.rfc1912.zones中添加正向解析和反向解析區域


acl "acl1" {
        192.168.139.0/200; 192.168.1.0/200
};
view localhost_resolver { //定義一個視圖
        match-clients    { any; }; //查詢者的源地址,any表示localhost_resolver視圖對任何主機開放,若是寫成{ acl1; },那麼就只有acl1表裏的ip能夠遞歸查詢了
        match-destinations { any; }; //查詢者的目標地址,這裏也能夠寫成{ localhost; acl1; }
        recursion yes;  //設置進行遞歸查詢
        include "/etc/named.rfc1912.zones"; //包含文件,這裏也就是載入/etc/named.rfc1912.zones
};


6
$TTL:設置有效地址解析記錄的默認緩存時間;
$ORIGIN:表示該zone文件用來描述的域(domain)名稱,說明下面的記錄源出何處;
systemctl status named.service 用於從服務器驗證。
rndc經常使用命令:
status #查看DNS狀態
reload #從新加載配置文件
reload zone_name #從新加載指定區域
reconfig  #重讀配置文件並加載新增的區域
querylog  #關閉或開啓查詢日誌
flush  #清空服務器的緩存
flushname name  #清空指定名稱相關的緩存
trace  #打開debug, debug有級別的概念,每執行一次提高一次級別
trace LEVEL  #指定 debug 的級別, trace 0 表示關閉debug
用rndc:
一、生成密鑰文件
命令:
rndc-confgen  > /etc/rndc.conf或者rndc-confgen -r /dev/urandom  > /etc/rndc.conf
主配置文件是經過include關鍵字來查找區域配置文件,區域配置文件的正反區域的解析文件是經過在區域配置文件的zone關鍵字定義的,區域解析文件路徑的是在主配置文件裏directory關鍵字定義的,區域解析文件的文件名是區域配置文件中zone關鍵字裏面的file關鍵字定義的


ha.cf的配置文件
chmod 600 /etc/authkeys
hosts文件用於存放ip與地址的對應關係。
keepalive 2 多長時間去探測一次
deadtime 30 若是30s不通就認爲死機
warntime 10 10s不通會發出一個警告
initdead 60對端服務器啓動預留時間間隔
udpport 694
ping  外網網關
流動vip      與外網在同一 網段
檢測ip       ucast eth1 對端內網ip
外網ip      
備份服務器只修改單播檢測ip



選項:
-A 添加一個虛擬服務器,使用IP地址、端口號、協議來惟必定義一個虛擬服務器
-E 編輯一個虛擬服務器
-D 刪除一個虛擬服務器
-C 清空一個虛擬服務器表
-R 從標準來輸入中還原虛擬服務規則
-S 保存虛擬服務規則至標準輸出,輸出的規則可使用-R導入還原
-a 在虛擬服務中添加一臺真實服務器
-e 在虛擬服務中編輯一臺真實服務器
-d 在虛擬服務中減小一臺真實服務器
-L 顯示虛擬服務列表
-t 使用TCP服務,該參數後須要跟主機與端口信息
-u 使用UDP服務,該參數後須要跟主機與端口信息
-s 指定LVS所採用的調度算法
-r 設置真實服務器IP地址與端口信息
-g 設置LVS工做模式爲DR直連路由模式
-i 設置LVS工做模式爲TUN隧道模式
-m 設置LVS工做模式爲NAT地址轉換模式
-w 設置指定服務器的權重
-c 鏈接狀態,須要配合-L使用
-n 數字格式輸出


LVS服務器配置(nat)調度器 dr=須要兩塊網卡(外內)     後端:一塊內網,網關爲dr的內網卡;
dr上            調度器安裝:yum -y install ipvsadm   後端服務器安裝:服務
打開轉發功能
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/defaults/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth1/send_redirects
iptables -t nat -A POSTROUTING -s 內網ip -j MASQUERADE
ipvsadm -A -t 外網ip:80 -s (w)rr
ipvsadm -a -t 外網ip:80 -r 內網ip:80 -m(-w)
ipvsadm -ln 查看當前虛擬服務器表
ipvsadm -C 清空當前列表
iptables -e -a  外網ip:80 -r 內網ip:80 修改參數


LVS服務器配置(DR)每一個網卡都須要公網ip
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/sbin/ipvsadm
vip=192.168.11.100
rs1=192.168.11.160
rs2=192.168.11.20
ifconfig eth0:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip dev eth0:0
$ipv -C
$ipv -A -t $vip:80 -s rr
$ipv -a -t $vip:80 -r $rs1:80 -g -w 1
$ipv -a -t $vip:80 -r $rs2:80 -g -w 1


sr:
vip 192.168.11.100
ifconfig lo:o $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip  lo:o
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 
sr1:
vip 192.168.11.100
ifconfig lo:o $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip  lo:o
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce


LVS+KEEPALIVED
前面的lvs雖然已經配置成功也實現了負載均衡,可是咱們測試的時候發現,當某臺real server把httpd進程停掉,那麼director照樣會把請求轉發過去,這樣就形成了某些請求不正常。因此須要有一種機制用來檢測real server的狀態,這就是keepalived。它的做用除了能夠檢測rs狀態外,還能夠檢測備用director的狀態,也就是說keepalived能夠實現ha集羣的功能,固然了也須要一臺備用director.
備用director也須要安裝一下keepalived軟件
yum install -y keepalived
安裝好後,編輯配置文件 
vim /etc/keepalived/keepalived.conf   //加入以下:
vrrp_instance VI_1 {
     state MASTER   #備用服務器上爲 BACKUP
     interface eth0
     virtual_router_id 51
     priority 100  #備用服務器上爲90
     advert_int 1
     authentication {
         auth_type PASS
         auth_pass 1111
     }
     virtual_ipaddress {
         192.168.31.110
     }
 }
 virtual_server 192.168.31.110 80 {
     delay_loop 6                  #(每隔10秒查詢realserver狀態)
     lb_algo wlc                  #(lvs 算法)
     lb_kind DR                  #(Direct Route)
     persistence_timeout 60        #(同一IP的鏈接60秒內被分配到同一臺realserver)
     protocol TCP                #(用TCP協議檢查realserver狀態)


     real_server 192.168.31.100 80 {
         weight 100               #(權重)
         TCP_CHECK {
         connect_timeout 10       #(10秒無響應超時)
         nb_get_retry 3
         delay_before_retry 3
         connect_port 80
         }
     }
 real_server 192.168.31.101 80 {
         weight 100
         TCP_CHECK {
         connect_timeout 10
         nb_get_retry 3
         delay_before_retry 3
         connect_port 80
         }
      }
 }


以上爲主director的配置文件,從director的配置文件只須要修改
state MASTER  -> state BACKUP      priority 100 -> priority 90
配置完keepalived後,須要開啓端口轉發(主從都要作):
echo 1 > /proc/sys/net/ipv4/ip_forward
而後,兩個rs上執行 /usr/local/sbin/lvs_dr_rs.sh 腳本
 最後,兩個director上啓動keepalived服務(先主後從):
/etc/init.d/keepalived start
另外,須要注意的是,啓動keepalived服務會自動生成vip和ipvsadm規則,不須要再去執行上面提到的/usr/local/sbin/lvs_dr.sh 腳本。



cacti  nagios   zabbix 三者的區別:
cacti 重圖形,有數據歷史,需用到數據庫支持,支持web配置,默認不支持告警,能夠加插件;
nagios重狀態和結果,沒有數據歷史,不成圖像,不支持web配置,能夠本身開發腳本定製個性化監控,支持多種插件;
zabbix有數據歷史,可成圖像,支持web配置,能夠自動發現;


cacti 安裝的通常步驟
監控機上
1  安裝epel
2 yun -y install httpd php php-mysql php-gd mysql mysql-server mysql-devel libpng-devel libpng libjpeg libjpeg-devel cacti rrdtool net-snmp net-snmp-utils
3 /etc/init.d/mysqld start /etc/init.d/httpd start /etc/init.d/snmpd start
4 vi /etc/http/conf.d/cacti.conf  編輯http配置文件中deny from all 該成 allow from all  deny from localhost--all
5 建立數據庫 create database cacti;  grant all on cacti.* to 'cacti'@'localhost' identified by 'cacti';
6 導cacti的數據庫
mysql -u root cacti < /usr/share/doc/cacti/cacti.sql
7修改cacti的配置文件:使 /usr/share/cacti/include/conf.php 的參數和數據庫的參數保持一致
8 執行/usr/bin/php /usr/share/cacti/poller.php命令。 用於生成圖像
9 修改時區 vi /etc/php.ini
date.timezone='Asia/Chongqing'
10 crontab -e
*/5 * * * * /usr/bin/php /usr/share/cacti/poller.php


受控機上安裝net-snmp*
修改vi /etc/snmp/snmpd.conf
修改syslocation 能夠寫本機地址,syscontact Root +郵箱
在添加監控機的時候未出現網卡  vi /etc/snmp/snmpd.conf
view  systemview  included   .1.3.6.1.2.1.1
修改成:view   systemview  included   .1.3.6.1.2.1或.1
關閉防火牆!!!!!



nagios安裝的通常步驟 服務器上
安裝epel-release包
yum -y install httpd nagios nagios-plugins nagios-plugins-all nrpe nagios-plugins-nrpe
設置登陸名和密碼    htpasswd -c /etc/nagios/nag.ps
檢測文件的正確性 nagios -v /etc/nagios/nagios.cfg
啓動配置。/etc/init.d/nagios /etc/init.d/httpd
在客服端輸入:http://ip/nagios


nagios客服端:yum -y install nagios-plugins nagios-plugins-all nrpe nagios-plugins-nrpe
vim /etc/nagios/nrpe.cfg  找到「allowed_hosts=127.0.0.1」 改成 「allowed_hosts=127.0.0.1,192.168.0.11」 後面的ip爲服務端ip; 找到」 dont_blame_nrpe=0」 改成  「dont_blame_nrpe=1」
啓動客戶端 /etc/init.d/nrpe start




3. 監控中心(192.168.0.11)添加被監控主機(192.168.0.12)
cd /etc/nagios/conf.d/
 vim 192.168.0.12.cfg                   //加入:
define host{
         use                     linux-server           
         host_name               192.168.0.12
         alias                       0.12
         address                 192.168.0.12
         }


 define service{
         use                     generic-service
         host_name               192.168.0.12
         service_description     check_ping
         check_command           check_ping!100.0,20%!200.0,50%
         max_check_attempts 5
         normal_check_interval 1
 }


 define service{
         use                     generic-service
         host_name               192.168.0.12
         service_description     check_ssh
         check_command           check_ssh
         max_check_attempts      5    ;當nagios檢測到問題時,一共嘗試檢測5次都有問題纔會告警,若是該數值爲1,那麼檢測到問題當即告警
         normal_check_interval 1   ;從新檢測的時間間隔,單位是分鐘,默認是3分鐘
         notification_interval  60 ;在服務出現異常後,故障一直沒有解決,nagios再次對使用者發出通知的時間。單位是分鐘。若是你認爲,全部的事件只須要一次通知就夠了,能夠把這裏的選項設爲0。
}


define service{
         use                     generic-service
         host_name               192.168.0.12
         service_description     check_http
         check_command           check_http
         max_check_attempts      5
         normal_check_interval   1
 }
注。這三個服務不依賴與nrpe協議。
客服端上:yum -y install nagios nagios-plugins nagios-plugins-all nrpe nagios-plugins-nrpe
修改配置文件   vi /etc/nagios/nrpe.cfg
該allow_host=本機ip,服務端的ip     dont_blame_nrpe=1


出現頁面報錯 「It appears as though you do not have permission to view information for any of the hosts you requested。。。vi /etc/nagios/cgi.cfg      use_authentication=1 改成0   service nagios reload


監控磁盤:
繼續添加服務
 服務端vim /etc/nagios/objects/commands.cfg
增長:define command{
         command_name    check_nrpe
         command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
         }
繼續編輯 vim /etc/nagios/conf.d/192.168.0.12.cfg
增長以下內容:define service{
         use     generic-service
         host_name       192.168.0.12
         service_description     check_load
         check_command           check_nrpe!check_load
         max_check_attempts 5
         normal_check_interval 1
}
define service{
         use     generic-service
         host_name       192.168.0.12
         service_description     check_disk_hda1
         check_command           check_nrpe!check_hda1
         max_check_attempts 5
         normal_check_interval 1
}
 define service{
         use     generic-service
         host_name       192.168.0.12
         service_description     check_disk_hda2
         check_command           check_nrpe!check_hda2
         max_check_attempts 5
         normal_check_interval 1
 }
說明:  check_nrpe!check_load :這裏的check_nrpe就是在commands.cfg剛剛定義的,check_load是遠程主機上的一個檢測腳本在遠程主機上vim /etc/nagios/nrpe.cfg 搜索check_load,這行就是在服務端上要執行的腳本了,咱們能夠手動執行這個腳本把check_hda1更改一下:/dev/hda1 改成 /dev/sda1
再加一行command[check_hda2]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda2
客戶端上重啓一下nrpe服務: service nrpe restart服務端也重啓一下nagios服務: service nagios restart
 配置告警
vim /etc/nagios/objects/contacts.cfg //增長:define contact{
        contact_name               123
        use                             generic-contact
        alias                           aming
        email              lishiming2009@139.com
}
define contact{
        contact_name               456
        use                             generic-contact
        alias                            aaa
        email              aminglinux@139.com
 }
define contactgroup{
        contactgroup_name           common
        alias                        common
        members                          123,456
        }
而後在要須要告警的服務裏面加上contactgroup
 define service{
         use     generic-service
         host_name       192.168.0.12
         service_description     check_load
         check_command           check_nrpe!check_load
         max_check_attempts 5
         normal_check_interval 1
         contact_groups        common
         notifications_enabled  1    ;是否開啓提醒功能。1爲開啓,0爲禁用。通常,這個選項會在主配置文件(nagios.cfg)中定義,效果相同。
        notification_period   24x7   ;發送提醒的時間段。很是重要的主機(服務)我定義爲7×24,通常的主機(服務)就定義爲上班時間。若是不在定義的時間段內,不管什麼問題發生,都不會發送提醒。       
         notification_options:w,u,c,r   ;這個是service的狀態。w爲waning, u爲unknown, c爲critical, r爲recover(恢復了),相似的還有一個  host對應的狀態:d,u,r   d = 狀態爲DOWN, u = 狀態爲UNREACHABLE , r = 狀態恢復爲OK,須要加入到host的定義配置裏。
}
參考:
調用短信接口   http://www.aminglinux.com/bbs/thread-7380-1-1.html
整合微信  http://www.aminglinux.com/bbs/thread-7917-1-1.html
6.配置圖形顯示 pnp4nagios (請自行演示,課上不演示)
 (1)安裝
yum install pnp4nagios rrdtool


(2)配置主配置文件
vim /etc/nagios/nagios.cfg  //修改以下配置
process_performance_data=1   
host_perfdata_command=process-host-perfdata
service_perfdata_command=process-service-perfdata
enable_environment_macros=1    
複製代碼修改commands.cfg
vim /etc/nagios/objects/commands.cfg  //註釋掉原有對process-host-perfdata和process-service-perfdata,從新定義
define command { 
   command_name    process-service-perfdata 
   command_line    /usr/bin/perl /usr/libexec/pnp4nagios/process_perfdata.pl 

define command { 
     command_name    process-host-perfdata 
  command_line    /usr/bin/perl /usr/libexec/pnp4nagios/process_perfdata.pl -d HOSTPERFDATA 

複製代碼
 (4)修改配置文件templates.cfg
 vim /etc/nagios/objects/templates.cfg define host {
         name       hosts-pnp
         register   0
         action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_
         process_perf_data               1
}
 define service {
         name       srv-pnp
         register   0
         action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$
         process_perf_data               1
 }
(5)修改host和service配置
vim /etc/nagios/conf.d/192.168.0.12.cfg
把 「define host{
         use                     linux-server」
改成:
define host{
         use                     linux-server,hosts-pnp
修改對應的service,好比把
define service{
         use     generic-service
         host_name       192.168.0.12
         service_description     check_disk_hda1
         check_command           check_nrpe!check_hda1
         max_check_attempts 5
         normal_check_interval 1
 }
改成:
define service{
         use     generic-service,srv-pnp
         host_name       192.168.0.12
         service_description     check_disk_hda1
         check_command           check_nrpe!check_hda1
         max_check_attempts 5
         normal_check_interval 1
 }
(6) 重啓和啓動各個服務:
service nagios restart
 service httpd restart
 service npcd start
 (7) 訪問測試兩種訪問方法:ip/nagios/           ip/pnp4nagios/





zabbix的通常操做步驟
1 安裝zabbix
 yum install -y epel-release
安裝rpm包的lamp環境 yum install -y  httpd mysql mysql-libs php php-mysql mysql-server php-bcmath php-gd php-mbstring
安裝zabbix服務端:yum install  zabbix20 zabbix20-agent zabbix20-server  zabbix20-server-mysql zabbix20-web zabbix20-web-mysql net-snmp-devel
 /etc/init.d/zabbix-server start; /etc/init.d/zabbix-agent start
 /etc/init.d/httpd start;
修改一下mysql配置文件
vim /etc/my.cnf    //修改或增長以下內容
[mysql]
 default-character-set = utf8
 [mysqld]
 character_set_server = utf8
啓動mysql服務
/etc/init.d/mysqld start
建庫,導入數據
mysql -uroot -p -e  "create database zabbix"
 mysql -uroot -p --default-character-set=utf8 zabbix < /usr/share/zabbix-mysql/schema.sql
 mysql -uroot -p --default-character-set=utf8 zabbix < /usr/share/zabbix-mysql/p_w_picpaths.sql
 mysql -uroot -p --default-character-set=utf8  zabbix < /usr/share/zabbix-mysql/data.sql


mysql -uroot -e "grant all privileges on zabbix.* to 'zabbix@localhost' identified by 'zabbix'"
vi /etc/zabbix/zabbix_server.conf
修改:DBpasswd=zabbix
驗證:DBSocket=/var/lib/mysql/mysql.sock                 ls /var/lib/mysql/mysql.sock;
 2.網頁安裝zabbix
瀏覽器訪問 http://ip/zabbix, 默認會有「It is not safe to rely on the system‘s timezone settings 」這樣的警告信息,須要vim /etc/php.ini 設置 date.timezone=「Asia/Shanghai     America/Los_angeles」    點next
解決相關的報錯信息,點retry  (vim /etc/php.ini)
輸入mysql相關信息, 首先要測試一下,若是不經過,則須要調試,測試經過後,點next
 Name 寫127.0.0.1,(能夠自定義)點next,再點next,最後點finish
默認管理員帳號爲 admin:zabbix
這時會遇到「zabbix server is not running」這樣的錯誤,須要編輯一下 /etc/zabbix/zabbix_server.conf ,配置DBUser, DBPassword


3. 接入要監控的主機
 在客戶端上yum install zabbix20-agent
 vim /etc/zabbix_agentd.conf //更改Server=服務端ip; ServerActive=0.0.0.0:10050; Hostname=aming(自定義,但要惟一)
啓動客戶端 /etc/init.d/zabbix-agent start
服務端上命令行測試:zabbix_get -s 客戶端ip -p10050 -k "system.hostname"
在web界面下,點」configuration」 --> 「host」 --> 右上角點」Create Host」  其中host name,  visible name自定義,能夠選擇groups,這裏默認便可,ip address 寫入客戶端ip
配置監控項目模板:點「templates」, 點add, 在彈出的小窗口中選擇Template OS Linux, 而後點select, 最後點save


4自定義templates
 Zabbix自帶了不少模板,模板中有不少監控項目,好比CPU、網卡、內存、進程等等。使用系統自帶模板有點太多了,因此咱們能夠自定義模板。點configuration 選擇 templates,點右上角的create template
 Template name和Visible name  自定義,Groups 選擇templates, 點save
而後咱們去挑選一些項目拷貝到該模板下:好比咱們找到Template OS Linux 點一下items,選擇咱們想要的項目,而後在下面選擇copy selected to … 而後點go
 Group 選擇templates, 找到剛纔咱們自定義的templates,點copy
點configuration 選擇 templates能夠看到新建的templates中已經有剛剛咱們copy的items了
 咱們可使用和上面相同的方法自定義拷貝Triggers(觸發器 ),它用來設置告警的閥值,固然咱們也能夠自定義編輯它
 監控客戶端網卡流量     http://www.apelearn.com/bbs/thread-8091-1-1.html


 5. 配置發郵件
yum install -y sendmail ;
 mkdir -p /home/zabbix/bin
 vim /home/zabbix/bin/baojing.sh //內容:
#! /bin/bash
 echo "$3" |/bin/mail -s "$2" $1
 chmod +x /home/zabbix/bin/baojing.sh
$3 郵件內容  $2主題 $1 收件人
在zabbix_server.conf配置文件中,有參數AlertScriptsPath和ExternalScripts
 AlertScriptsPath=/home/zabbix/bin/ ---用戶自定義的media types腳本
ExternalScripts=/home/zabbix/bin/ ---用戶自定義的檢查的腳本(item)
 這樣才能找到你的腳本,由於你在frontend中只是輸入腳本的名稱,沒有路徑。
建立mediea types: 「Administration" -->」Media types",點擊右上角「Create Media Type"其中Description填"baojing」 或其它自定義名稱,Type選擇"Script",Script填」baojing.sh」而後點」Save」. 
建立user: 「Adimistration」 --> 「Users」在右上角,選擇」Users」,點擊」Create User」, alias: test1,自定義name和lastname password:123456;group 選擇guest,回到上面點一下media,type 選擇baojing,send to 寫要發送郵件的郵箱,點add, 最後點save
建立action: 「configuration」 --> actions,右上角「Create Actions」, Name自定義,我這裏寫」baojing」,其餘默認,而後點右側的「Operations」下的「New」按鈕,「Operation Type」選擇「Send message」,「Send Message to」選擇一個或多個要發送消息的用戶組,Send to Users選擇咱們以前新增的test1, 「Send only to」選擇baojing , 點一下add
最後點save
zabbix歷史記錄亂碼問題   http://caisangzi.blog.51cto.com/6387416/1313630
zabbix圖形中亂碼問題    http://www.apelearn.com/bbs/thread-8090-1-1.html
zabbix參考文章 
http://www.iyunv.com/thread-22959-1-1.html
http://waringid.blog.51cto.com/65148/955939/
http://www.linuxidc.com/Linux/2014-11/109909.htm
6期胡湘林同窗的分享   http://xianglinhu.blog.51cto.com/5787032/d-6
自定義腳本:   http://www.linuxidc.com/Linux/2013-11/92476.htm


linux安全:1 關閉不要的服務 2 設置防火牆規則 3 文件系統安全 4 禁止不須要的用戶登陸5 遠程用戶限制 6 打開系統日誌 7 文件系統安全:目錄,文件 少使用suid sgid 8.重要的數據的安全和備份chattr -R +i /bin /boot /lib /sbin chattr -R +i /usr/bin /usr/include /usr/lib /usr/sbin chattr +i /etc/passwd chattr +i /etc/shadow chattr +i /etc/hosts chattr +i /etc/resolv.conf chattr +i /etc/fstab chattr +i /etc/sudoers chattr +a /var/log/messages chattr +a /var/log/wtmp

相關文章
相關標籤/搜索