zabbix搭建

一、環境準備

    本人用的是RedHat 6.6 做的試驗。參照運維生存時間PDF版本或者網頁鏈接謝謝運維生存時間的技術人員的整理。

    環境是 nginx + php + mysql + zabbix(所有軟件都是源碼安裝)
    各個版本號,nginx-1.10.2、PHP-7.0.12、mysql-5.6.14、zabbix-2.2.2 
  • 首先關閉 selinux

查看selinux的狀態

#getenforce
#或者
#sestaus -v
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

零時關閉

#setenforce 0
  • 1
  • 1

重啓生效,修改配置文檔/tec/sysconfig/selinux

#vim /tec/sysconfig/selinux
SELINUX=disabled
  • 1
  • 2
  • 1
  • 2
  • 關閉iptables 
    及時生效
開啓
#chkconfig iptables on
關閉
#chkconfig iptables off
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4
  • 同步時間以及創建本地yum源
#crontab -l
5 18 * * * /usr/sbin/ntpdate *.*.*.* > /var/log/ntpdate.log
  • 1
  • 2
  • 1
  • 2

(不會的自行百度吧)

  • 卸載自帶的mysql
#rpm -qa | grep mysql   ###查看自帶的mysql 
#rpm -e (安裝包)       ###卸載
  • 1
  • 2
  • 1
  • 2

二、安裝nginx

  • 必要軟件準備

爲了支持rewrite功能,我們需要安裝pcre

# yum install pcre*     ###如過你已經裝了,請跳過這一步
  • 1
  • 1

需要ssl的支持,如果不需要ssl支持,請跳過這一步

# yum install openssl*
  • 1
  • 1
  • 安裝依賴包
yum install gcc make gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel


  • 下載nginx (本文所有網上下載的安裝包,都放在/usr/local/src/ 下)
#cd /usr/local/src/
#wget -c http://nginx.org/download/nginx-1.10.2.tar.gz
  • 1
  • 2
  • 1
  • 2
  • 解壓安裝
#tar -zxvf nginx-1.10.2.tar.gz
cd nginx-1.10.2
#./configure --prefix=/usr/local/nginx-1.10.2 --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module --with-pcre
#make
#make install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5
  • 啓動和關閉
#/usr/local/nginx-1.10.2/sbin/nginx             ###啓動
#/usr/local/nginx-1.10.2/sbin/nginx -s  stop    ###關閉
#/usr/local/nginx-1.10.2/sbin/nginx -s reload   ###重置
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

三、PHP安裝+nginx配置

  • 安裝所需的依賴包 
    確保安裝之前有安裝gd,png,curl,xml等等lib開發庫。如果不確定,執行以下命令:
#yum install -y gcc make gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel freetype-devel 
  • 1
  • 1
  • 下載php
#cd /usr/local/src/
#wget -c http://cn2.php.net/distributions/php-7.0.12.tar.gz
  • 1
  • 2
  • 1
  • 2
  • 解壓並安裝
#tar -zxvf php-7.0.12.tar.gz
#cd php-7.0.12
#./configure  --prefix=/usr/local/php-7.0.12 --with-config-file-path=/usr/local/php-7.0.12/etc --with-bz2 --with-curl --enable-ftp --enable-sockets --disable-ipv6 --with-gd --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/local --enable-gd-native-ttf --with-iconv-dir=/usr/local --enable-mbstring --enable-calendar --with-gettext --with-libxml-dir=/usr/local --with-zlib  --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --enable-bcmath
#make
#make install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5
  • 配置php
#cp php.ini-production /usr/local/php-7.0.12/etc/php.ini
#cp www.conf.default www.conf
#cp /usr/local/php-7.0.12/etc/php-fpm.conf.default /usr/local/php-7.0.12/etc/php-fpm.conf
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3
  • 運行php
#/usr/local/php7.0.12/sbin/php-fpm      ##啓動php
#killall php-fpm        ###停止php
  • 1
  • 2
  • 1
  • 2

如果執行完啓動PHP命令之後沒有報錯,一般情況表示啓動正常,如果不放心,也可以通過端口判斷php是否啓動

#netstat -lnt | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
  • 1
  • 2
  • 1
  • 2
  • 配置nginx 
    配置測試站點test.com
#mkdir -p /data/logs/nginx/     ###用於存放nginx日誌
#mkdir -p /data/site/test.com/  ###站點根目錄
#vim /data/site/test.com/info.php
<?php
phpinfo();
?>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 修改nginx配置文檔 
    在nginx.conf的http段中加入如下內容:
#vim /usr/local/nginx-1.10.2/conf/nginx.conf
server {
listen 80;
server_name localhost;
access_log /data/logs/nginx/zabbix.com.access.log main;

index index.php index.html index.html;
root /data/site/test.com;

location /
{
try_files $uri $uri/ /index.php?$args;
}

location ~ .*\.(php)?$
{
expires -1s;
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;

}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 啓動nginx
#/usr/local/nginx-1.10.2/sbin/nginx/
  • 1
  • 1
  • 訪問測試 
    使用瀏覽器訪問ip地址,出現nginx的版本號說明安裝成功了

  • 啓動nginx報錯及解決辦法(本人所遇到的問題,通過百度解決之)

報錯1

bashunknown log format "main" in /usr/local/nginx-1.10.2/conf/nginx.conf:38
  • 1
  • 1

打開nginx.conf,”main”錯誤是因爲丟失了log_format選項,之前把他屏蔽掉了,修改之後問題解決。

報錯2

nginx: [error] open() "/usr/local/nginx-1.10.2/logs/nginx.pid" failed (2: No such file or directory)
  • 1
  • 1

使用nginx -c的參數指定nginx.conf文件的位置

#/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
  • 1
  • 1

四、安裝mysql

  • 安裝必要的組件
#yum install -y autoconf automake imake libxml2-devel expat-devel cmake gcc gcc-c++ libaio libaio-devel bzr bison libtool ncurses5-devel 
  • 1
  • 1
  • 下載安裝mysql
#cd /usr/local/src/
#http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.14-linux-glibc2.5-x86_64.tar.gz/from/http://cdn.mysql.com/ -O mysql-5.6.14-linux-glibc2.5-x86_64.tar.gz
#tar -zxvf mysql-5.6.14-linux-glibc2.5-x86_64.tar.gz -C ../
#cd /usr/lcoal/
#ln -s mysql-5.6.14-linux-glibc2.5-x86_64 mysql ###創建一個軟鏈接
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5
  • 創建mysql用戶和用戶組,及數據庫存放目錄
#mkdir -p /data/mysql_data_3306
#mkdir -p /data/mysql_log
$mkdir -p /data/log-bin
#groupadd mysql
#useradd mysql -g mysql -M -s /sbin/nologin
#chown -R mysql.mysql /data/mysql_data_3306 /data/mysql_log /data/log-bin
#chown -R mysql.mysql /usr/local/mysql-5.6.14-linux-glibc2.5-x86_64
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 修改配置文件
#vim /etc/my.cnf
[mysqld]
# GENERAL #
user = mysql
default-storage-engine = InnoDB
socket = /data/mysql_data_3306/mysql.sock
pid-file = /data/mysql_data_3306/mysql.pid
port = 3306
# MyISAM #
key_buffer_size = 1344M
myisam_recover = FORCE,BACKUP
# SAFETY #
max_allowed_packet = 16M
max_connect_errors = 1000000
skip_name_resolve
# DATA STORAGE #
datadir = /data/mysql_data_3306/
long_query_time = 1
# BINARY LOGGING #
log-bin = /data/log-bin/mysql-bin-3306
expire-logs-days = 14
sync-binlog = 1
server-id = 1
max_binlog_size = 500M
# REPLICATION #
relay-log = /data/log-bin/relay-bin-3306
slave-net-timeout = 60
# CACHES AND LIMITS #
tmp_table_size = 32M
max_heap_table_size = 32M
max_connections = 500
thread_cache_size = 50
open_files_limit = 65535
table_definition_cache = 4096
table_open_cache = 4096
# INNODB #
innodb_data_file_path = ibdata1:128M;ibdata2:10M:autoextend
innodb_flush_method = O_DIRECT
innodb_log_files_in_group = 2
innodb_lock_wait_timeout = 50
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 1
innodb_file_per_table = 1
innodb_thread_concurrency = 8
innodb_buffer_pool_size = 8G
# LOGGING #
log-error = /data/mysql_log/mysql-error-3306.log
log-queries-not-using-indexes = 1
slow-query-log = 1
long_query_time = 1
slow-query-log-file = /data/mysql_log/mysql-slow-3306.log
# FOR SLAVE #
#binlog-format = ROW
#log-slave-updates = true
#gtid-mode = on
#enforce-gtid-consistency = true
#master-info-repository = TABLE
#relay-log-info-repository = TABLE
#sync-master-info = 1
#slave-parallel-workers = 2
#binlog-checksum = CRC32
#master-verify-checksum = 1
#slave-sql-verify-checksum = 1
#binlog-rows-query-log_events = 1
#report-port = 3306
#report-host = 10.1.1.10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 系統服務
# cp -af /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld_3306
# vi /etc/init.d/mysqld_3306    ###修改兩處位置:
basedir=/usr/local/mysql
datadir=/data/mysql_data_3306

執行如下命令
# chmod 755 /etc/init.d/mysqld_3306     ###修改權限
# chkconfig --add mysqld_3306           ###添加啓動項
# chkconfig --level 345 mysqld_3306 on
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 初始化數據庫
#cd /usr/local/mysql
#./scripts/mysql_install_db --user=mysql --defaults-file=/etc/my.cnf
  • 1
  • 2
  • 1
  • 2
  • 啓動數據庫
#server mysqld_3306 start
  • 1
  • 1
  • 修改root密碼
# /usr/local/mysql/bin/mysql -p -uroot -S /data/mysql_data_3306/mysql.sock #這裏直接回車就能進入數據庫系統
Mysql>delete from mysql.user where user='';
Mysql>update mysql.user set password=PASSWORD(‘xxxxxxxx’) where user='root';
Mysql> create database zabbix default charset utf8; ###防止亂碼
Mysql>flush privileges;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

五、安裝zabbix

  • 下載安裝zabbix
#cd /usr/local/src/
#wget -c http://iweb.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.2/zabbix-2.2.2.tar.gz
#tar -zxvf zabbix-2.2.2.tar.gz      ###解壓
#cd zabbix-2.2.2
#./configure --prefix=/usr/local/zabbix-2.2.2/ --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
#make
#make install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7


  • 報錯信息 

報錯1
configure: error: MySQL library not found
the problem is not installed mysql-devel
  • 1
  • 2
  • 1
  • 2

安裝MySQL-devel

#yum install mysql-devel  
  • 1
  • 1

報錯2

configure: error : Not found NET-SNMP library
  • 1
  • 1

安裝snmp支持

#yum install net-snmp-devel
  • 1
  • 1

創建用戶

#groupadd zabbix
#useradd -g zabbix zabbix
  • 1
  • 2
  • 1
  • 2
  • 初始化數據庫
#mysql -uroot -p123456 -S /data/mysql_data_3306/mysql.sock zabbix < /usr/local/src/zabbix-2.2.2/database/mysql/schema.sql 
如果你僅僅是初始化proxy的數據庫,那麼就夠了。如果初始化server,就接着導入下面兩個sql。
#mysql -uroot -p123456 -S /data/mysql_data_3306/mysql.sock zabbix < /usr/local/src/zabbix-2.2.2/database/mysql/images.sql 
#mysql -uroot -p123456 -S /data/mysql_data_3306/mysql.sock zabbix < /usr/local/src/zabbix-2.2.2/database/mysql/data.sql 
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4
  • 配置zabbix
#cd /usr/local/src/zabbix-2.2.2
#mkdir /etc/zabbix
#cp conf/zabbix_server.conf /etc/zabbix/
#vim /etc/zabbix/zabbix_server.conf
DBName=zabbix
DBUser=root
DBPassword=ttlsapwd
DBPort=3306
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 啓動zabbix server
#/usr/loca/zabbix-2.2.2/sbin/zabbix_server
  • 1
  • 1

六、zabbix客戶端安裝配置

  • 下載安裝
#cd /usr/local/src
#wget -c http://iweb.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.2/zabbix-2.2.2.tar.gz       ##和zabbix server端一樣
解壓安裝
#cd zabbix-2.2.2
#./configure --prefix=/usr/lcoal/zabbix-2.2.2/ --enable-agent
#make
#make install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • zabbix客戶端配置 
    修改zabbix_agentd配置文件,在zabbix源碼目錄下
#vim /usr/local/zabbix-2.2.2/etc/zabbix_agentd.conf
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix server
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

其中Server和ServerActive都指定zabbixserver的IP地址,不同的是,前者是被動後者是主動。也就是說Server這個配置是用來允許127.0.0.1這個ip來我這取數據。而serverActive的127.0.0.1的意思是,客戶端主動提交數據給他。

  • zabbix客戶端啓動
#/usr/local/zabbix-2.2.2/sbin/zabbix_agentd
  • 1
  • 1

七、zabbix管理網站配置

  • 拷貝前端文件
# mkdir /data/logs/nginx
# mkdir /data/site/test.com/zabbix
# cp -rp frontends/php/* /data/site/test.com/zabbix
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3
  • 配置虛擬主機 
    查看並修改配置文件路徑(安裝php時候已修改,此處可忽略)
# vim /usr/local/nginx-1.5.8/conf/vhost/test.com.conf
server {
        listen       80;
        server_name localhost;
        access_log  /data/logs/nginx/test.com.access.log  main;

        index index.html index.php index.html;
        root /data/site/test.com;

        location /
        {
                try_files $uri $uri/ /index.php?$args;
        }

        location ~ ^(.+.php)(.*)$ {
                fastcgi_split_path_info ^(.+.php)(.*)$;
                include fastcgi.conf;
                fastcgi_pass  127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param  PATH_INFO          $fastcgi_path_info;
        }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 在線配置zabbix 
    瀏覽器打開本地ip地址 
    然後到歡迎界面,配置沒有問題(圖片可參考運維生存時間)上面的。 
    1. 看到Welcome to Zabbix 2.2幾個大字,然後點擊 Next>>
    2. php需求檢查,右邊框裏所有OK就沒有問題,接着點擊Next>>
    3. MySQL配置,填入相應的數據庫信息 
      Database trpe MySQL
      Database host 127.0.0.1
      Database port 3306
      Database name zabbix
      User root
      Password ***

      點擊 Test connection 出現OK,說明沒有問題,接着點擊Next>>
    4. zabbix服務端詳細信息(這裏要注意三個都得填寫,後期出錯,各種找原因,就是因爲Name這項沒有填寫導致) 
      Host localhost
      Port 10051
      Name zabbix
       
      接着點擊Next>>
    5. zabbix安裝錢信息列表,點擊Next>>
    6. 安裝完成 
      按照說明,需要把配置文件下載到本地之後,導入到相應的目錄,操作完成之後,點擊Retry,顯示綠色的OK,說明已經成功。
    7. 點擊Finish 進入登陸界面,輸入賬號密碼 
      默認賬號:admin 
      密碼:zabbix
    8. 進入首頁

八、結束

到此安裝結束,之間碰到各種報錯,然後就各種百度,最後還是把問題解決了。安裝比較簡單,但是比較耗時,安裝完之後纔是真正的開始,希望大家看到這裏之後zabbix環境已經搭建完成。如有問題,首先自己動手解決,實在解決不了的,上運維生存時間的留言區查找答案,或者留言說出問題。謝謝運維生存時間的技術們,你們辛苦了。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章