系統linux/redhat6.5 zabbix 2.47監控nginx1.8.0 (上)

基本思路:php

  1. 服務器端(虛擬機1):安裝 zabbix-server  zabbix_get  mysql5.7.9html

  2. 客戶端(虛擬機2):安裝zabbix-agent   nginx1.8.0  mysql

  3. 服務器和客戶端都是使用redhat6.5搭建的linux

--------------------------------------------------------------------------------------------------nginx

實驗環境:必須能上網,由於要yum和編譯安裝一些必要的組件c++

                由於是實驗環境,因此防火牆iptables,selinux 必定要關閉!!web

                服務器端和客戶端的防火牆iptables,selinux 都要關閉!sql

                    重要的事情說三遍!! 若是你是大神,能夠此條能夠忽略。shell

                [root@server ~]# iptables -F數據庫

             [root@server ~]# chkconfig iptables  off        # 開機就關閉iptables

             [root@server ~]# setenforce 0
              setenforce: SELinux is disabled

             [root@server ~]# vim /etc/selinux/config

             

  SELINUX=enforcing  改成 SELINUX=disabled

                 服務器端和客戶端的防火牆iptables,selinux 都要關閉!

            炮製雖繁必不敢省人工,品味雖貴必不敢減物力

----------------------------------------------------------------------------------------------------------------

      服務器端的搭建(虛擬機1)

    1.配置 epel,163,Zabbix三個網絡yum源:

 [root@server ~]#rpm -ivh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
[root@server ~]# wget -O /etc/yum.repos.d/CentOS6-Base-163.repo  #到這以前都有添加進去,後面網址也要輸入進去
[root@server ~]#rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm 
注意:1.若是你沒有wget命令,用epel源 yum install wget就能夠下載163的repo了。
     2.[root@server yum.repos.d]# pwd
        /etc/yum.repos.d
        [root@server yum.repos.d]# ls
         CentOS6-Base-163.repo  epel.repo  epel-testing.repo  local.repo
         zabbix.repo
     CentOS6-Base-163.repo 這個文件最好編輯一下,將$releasever改爲6.緣由是在redhat6.5上
     $releasever 這個變量獲得的值是6server 明星在下找不到這個文件夾
     baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/

2.安裝必要的包,若是少安裝一個,那就等着排錯吧 (yum安裝完成後,下面會有說明,若是那個包沒安裝成功,會報錯,注意看一下,報錯後,從新安裝,不行的話,換個yum源)

 [root@server yum.repos.d]# yum -y groupinstall "Development Tools"
 [root@server yum.repos.d]#

3.建立zabbix 用戶 (目的:所謂專人專用,防止出現越權行爲)

 [root@server yum.repos.d]#

4.在mysql中創建zabbix數據庫和zabbix用戶

 初始化mysql5.7.9 ,本身百度喲或者看官方文檔,而後啓動mysql
 [root@server yum.repos.d]# service mysqld start
 mysql -uroot -p123456  #這是個人數據庫密碼:123456,不是你的!!!

 5.  安裝zabbix服務器端並將相關數據導入MySQL數據庫中

[root@server yum.repos.d]#  yum install zabbix-server-mysql zabbix-web-mysql   
                            zabbix_get   zabbix-agent
root@server yum.repos.d]#  cd /usr/share/doc/zabbix-server-mysql-2.4.7/create
[root@server create]#  mysql -uroot -p123456 zabbix < schema.sql
[root@server create]# mysql -uroot -p123456 zabbix < images.sql

[root@server create]# mysql -uroot -p123456 zabbix < data.sql
 這三個導入的順序不要顛倒!!否則報錯
[root@server create]# mysql -uroot -p123456 
mysql> use mysql 
mysql> delete from user where host='localhost';
mysql> commit;
mysql> exit

  6.修改zabbix配置文件中關於數據庫的部分

 [root@server create]# vim /etc/zabbix/zabbix_server.conf
   你須要在zabbix_server.conf裏面找到下面幾項,而且修改爲我這樣的記得去掉它們前面的#號,否則會被註釋掉
   ,不起做用的。
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix

7.啓動zabbix-server服務和httpd服務

[root@server create]# cd ~
[root@server ~]# service zabbix-server start
[root@server ~]# service httpd restart
[root@server ~]# chkconfig httpd on        #一開機就啓動httpd服務
[root@server ~]# chkconfig  zabbix-server on  #同上

8.啓動web界面,繼續編輯(不建議使用360安全瀏覽器,會出問題,其餘瀏覽器應該均可以)

  1. 用ie瀏覽器訪問http://ip/zabbix/    #這裏的IP是你服務器配置的IP例如個人服務器IP是

   2.172.16.20.23.我就要在瀏覽器裏輸入http://172.16.20.23/zabbix .

   3.英文看不懂不要緊,下一步,下一步,總認識吧

9.哈哈出下面的問題了吧

 

解決方法:修改時區     vim   /etc/php.ini

  找到date.timezone=Asia/Shanghai        #記得將date.timezone前面的#去掉!!

  而後必定要重啓httpd 服務:service httpd restart

 不重啓服務,修改是不會生效的。

     

安裝配置客戶端 (虛擬機2)

炮製雖繁必不敢省人工,品味雖貴必不敢減物力

  1.配置 epel,163,Zabbix三個網絡yum源:

[root@server ~]#rpm -ivh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
[root@server ~]# wget -O /etc/yum.repos.d/CentOS6-Base-163.repo  #到這以前都有添加進去,後面網址也要輸入進去
[root@server ~]#rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm 
注意:1.若是你沒有wget命令,用epel源 yum install wget就能夠下載163的repo了。
     2.[root@server yum.repos.d]# pwd
        /etc/yum.repos.d
        [root@server yum.repos.d]# ls
         CentOS6-Base-163.repo  epel.repo  epel-testing.repo  local.repo
         zabbix.repo
     CentOS6-Base-163.repo 這個文件最好編輯一下,將$releasever改爲6.緣由是在redhat6.5上
     $releasever 這個變量獲得的值是6server 明星在下找不到這個文件夾
     baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/

2.安裝必要的包,和安裝zabbix-agent客戶端

 [root@server yum.repos.d]# yum -y groupinstall "Development Tools"
 [root@server yum.repos.d]#

 3.修改agent的配置文件

 [root@agent ~]# vi /etc/zabbix/zabbix_agentd.conf
    找到#Server=  將它改爲 Server=ip     #服務器的IP(虛擬機1的IP)
    記得將ServerActive=127.0.0.1 註釋掉!!!也就是變成###ServerActive=127.0.0.1

4.啓動zabbix-agent服務

 [root@agent ~]#service zabbix-agent start

5.編譯安裝nginx-1.8.0

   5.1搭建編譯環境

[root@agent ~]#yum -y install gcc gcc-c++ autoconf automake make 
[root@agent ~]#

    5.2下載nginx-1.8.0 ,並解壓

[root@agent ~]#yum install wget
[root@agent ~]#wget    #網址也要輸入,
[root@agent ~]#tar -zxvf  nginx-1.8.0.tar.gz
[root@agent ~]#  cd  nginx-1.8.0
[root@agent nginx-1.8.0]# ./configure –-with-http_stub_status_module #模塊不默認安裝,一點要安裝這個模塊
[root@agent nginx-1.8.0]#  make && make install
[root@agent nginx-1.8.0]#  cd ../
[root@agent ~]#

       5.3 啓動nginx,觀察現象

 [root@agent ~]# /usr/local/nginx/sbin/nginx

     nginx啓動正常啓動後,在瀏覽器中輸出http://本機IP/ 會出現以下畫面

 

     5.4 設置開機啓動nginx,若是高版本的nginx支持chkconfig nginx  on

(或者 chkconfig  nginx on )更好了,下面的腳本能夠忽略。(能夠先試試這個兩個命令可否讓nginx開機啓動)

 

 [root@agent ~]# vim /etc/init.d/nginx
 添加以下代碼

     5.6 修改訪問權限

[root@agent ~]#chmod a+x /etc/init.d/nginx  #a+x參數表示 ==> all user can execute 全部用戶可執行
[root@agent ~]#echo /etc/init.d/nginx start >> /etc/rc.local  #利用重定向將/etc/init.d/nginx start 追加到 /etc/rc.local 文件的末尾處

     5.7 開啓nginx的stub_status模塊

          查看已安裝的 Nginx 是否包含 stub_status 模塊

 [root@agent ~]# vim /usr/local/nginx/conf/nginx.conf
server {listen       80;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location /{root   html;index  index.html index.htm;}location ~ /status    #紅字爲修改部分{stub_status on;access_log off;#加入訪問限制allow IP;            #IP=服務器的IP,虛擬機1的IPallow  127.0.0.1;deny all;}}

   重啓nginx

service nginx restart 

   nginx status信息

[root@agent ~]# curl http://127.0.0.1/ngx_status

Active connections: 10

server accepts handled requests

 9  8

Reading: 0 Writing: 0 Waiting: 0

   5.8 zabbix客戶端配置status

 

/usr/bin/status.sh

#!/bin/bash           

# Functions to return nginx stats    

function active {    

    /usr/bin/curl "http://127.0.0.1:80/status" 2>/dev/null| grep 'Active' | awk '{print $NF}' }         

function reading {    

   /usr/bin/curl "http://127.0.0.1:80/status" 2>/dev/null| grep 'Reading' | awk '{print $2}' }         

function writing {    

   /usr/bin/curl "http://127.0.0.1:80/status" 2>/dev/null| grep 'Writing' | awk '{print $4}'}         

function waiting {    

   /usr/bin/curl "http://127.0.0.1:80/status" 2>/dev/null| grep 'Waiting' | awk '{print $6}' }         

function accepts {    

   /usr/bin/curl "http://127.0.0.1:80/status" 2>/dev/null| awk NR==3 | awk '{print $1}' }         

function handled {    

    /usr/bin/curl "http://127.0.0.1:80/status" 2>/dev/null| awk NR==3 | awk '{print $2}'}          

function requests {    
  /usr/bin/curl "http://127.0.0.1:80/status" 2>/dev/null| awk NR==3 | awk '{print $3}' }    

# Run the requested function    

$1    

EOF

    5.9  修改權限

位置:cd /usr/bin/

修改status.sh 的權限 和屬主:屬組

chmod o+x status.sh

chown zabbix.zabbix status.sh

[root@nginx bin]# ls -ll |grep status.sh 

-rwxr-xr-x  1 zabbix zabbix 1225 Jan 22 08:13 status.sh

5.10

修改nginx服務器上zabbix客戶端的zabbix_agentd.conf配置文件,而後重啓zabbix agentd客戶端。

 vim /etc/zabbix/zabbix_agentd.conf  而後修改和下面同樣
LogFile=/tmp/zabbix_agentd.log
Server=IP       #zabbix server端的IP地址
ServerActive=IP #zabbix server端的IP地址
Hostname=IP2    #本地的IP地址
UnsafeUserParameters=1
##下面的是新添加進去的key(鍵值)
UserParameter=nginx.accepts, /usr/bin/status.sh accepts  
UserParameter=nginx.handled, /usr/bin/status.sh handled  
UserParameter=nginx.requests, /usr/bin/status.sh requests  
UserParameter=nginx.connections.active, /usr/bin/status.sh active  
UserParameter=nginx.connections.reading, /usr/bin/status.sh reading  
UserParameter=nginx.connections.writing, /usr/bin/status.sh writing  
UserParameter=nginx.connections.waiting,/usr/bin/status.sh waiting

 

 

系統linux/redhat6.5 zabbix 2.47監控nginx1.8.0 (下)

 

http://my.oschina.net/u/2618987/blog/608262

相關文章
相關標籤/搜索