分佈式zabbix監控搭建

zabbix概念

zabbix是一個基於WEB界面的提供分佈式系統監視以及網絡監視功能的企業級的開源解決方案。

zabbix能監視各種網絡參數,保證服務器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。

實驗環境如下

搭建zabbix需要LNMP或LAMP環境,我們搭建分佈式的LNMP
記得關閉所有主機的firewalld

主機名 IP 角色
zabbix 192.168.1.11 zabbix主程序
lnp 192.168.1.12 nginx , php
mysql 192.168.1.13 mysql

注意看主機名,在哪個主機操作我不闡述

用到的軟件包都在這裏了
鏈接:https://pan.baidu.com/s/1GYp6tSdPWlRk_Hz5BZ9Q0g
提取碼:62q0

一. 先構建LNMP環境

1.後端mysql

安裝mysql我就不說了,然後設置密碼root密碼爲123456,並給root遠程登陸權限
[root@mysql ~]# mysqladmin -uroot password '123456'
[root@mysql ~]# mysql -uroot -p123456

mysql> grant all on *.* to root@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)

2.安裝nginx和PHP

軟件包如下
在這裏插入圖片描述

nginx

[root@lnp ~]# mount /dev/cdrom /mnt/
[root@lnp ~]# yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel  pcre pcre-devel
[root@lnp ~]# tar zxvf nginx-1.10.3.tar.gz 
[root@lnp ~]# cd nginx-1.10.3/
[root@lnp nginx-1.10.3]# useradd www -s /sbin/nologin 
[root@lnp nginx-1.10.3]# ./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module  --with-http_flv_module --with-http_mp4_module --with-pcre --with-http_ssl_module --with-http_gzip_static_module --user=www --group=www
[root@lnp nginx-1.10.3]# make && make install 
[root@lnp nginx-1.10.3]# cd 
[root@lnp ~]# ln -s /usr/local/nginx/sbin/* /usr/local/bin/

PHP

[root@lnp ~]# yum -y install make apr* autoconf automake curl-devel gcc gcc-c++  openssl openssl-devel gd kernel keyutils patch perl kernel-headers compat* mpfr cpp glibc libgomp libstdc++-devel keyutils-libs-devel libcom_err-devel libsepol-devel libselinux-devel krb5-devel zlib-devel libXpm* freetype libjpeg* libpng*  libtool* libxml2 libxml2-devel patch libcurl-devel bzip2-devel freetype-devel
[root@lnp ~]# tar zxf libmcrypt-2.5.7.tar.gz 
[root@lnp ~]# cd libmcrypt-2.5.7/
[root@lnp libmcrypt-2.5.7]# ./configure --prefix=/usr/local/libmcrypt && make && make install
[root@lnp libmcrypt-2.5.7]# cd
[root@lnp ~]# tar zxf php-5.6.36.tar.gz
[root@lnp ~]# cd php-5.6.36.tar.gz
[root@lnp php-5.6.36]# ./configure --prefix=/usr/local/php5.6 --with-config-file-path=/etc  --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd  --with-gd --with-iconv --with-libxml-dir=/usr --with-mhash --with-mcrypt --with-config-file-scan-dir=/etc/php.d --with-bz2 --with-zlib --with-freetype-dir --with-png-dir --with-jpeg-dir --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt=/usr/local/libmcrypt --with-curl
[root@lnp php-5.6.36]# make && make install
[root@lnp php-5.6.36]# cp php.ini-production /etc/php.ini

3.修改PHP的一些參數

[root@lnp php-5.6.36]# cd
[root@lnp ~]# vim /etc/php.ini 

如下圖片中黃色表的項打開註釋或修改爲我如下
時區設置
在這裏插入圖片描述
禁止顯示php版本
在這裏插入圖片描述
支持短標籤
在這裏插入圖片描述
上傳文件大小限制
在這裏插入圖片描述
php腳本最大執行時間
在這裏插入圖片描述
以秒爲單位對通過POST、GET以及PUT方式接收數據時間進行限制
在這裏插入圖片描述
刪除如下兩項註釋
在這裏插入圖片描述
在這裏插入圖片描述
保存退出

啓動腳本
[root@lnp ~]# cd /root/php-5.6.36/
[root@lnp php-5.6.36]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@lnp php-5.6.36]# chmod +x /etc/init.d/php-fpm 
[root@lnp php-5.6.36]# chkconfig --add php-fpm

修改PHP-fpm配置文件

[root@lnp php-5.6.36]# cd
[root@lnp ~]# cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf
[root@lnp ~]# vim /usr/local/php5.6/etc/php-fpm.conf

修改如下下面的項,如果有註釋的打開,如果沒有註釋的直接修改

 pid = run/php-fpm.pid
 user = www
 group = www
 listen =127.0.0.1:9000
 pm.max_children = 300
 pm.start_servers = 10
 pm.min_spare_servers = 10
 pm.max_spare_servers =50
[root@lnp ~]# /etc/init.d/php-fpm start
Starting php-fpm  done

[root@lnp ~]# netstat -anpt | grep php-fpm
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      127519/php-fpm: mas 
讓nginx支持PHP
[root@lnp ~]# cd /usr/local/nginx/conf/
[root@lnp conf]# rm -rf nginx.conf
[root@lnp conf]# vim nginx.conf
user www;
worker_processes  4;
error_log  logs/error.log;
pid        logs/nginx.pid;

events {
    use epoll;
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  logs/access.log  main;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;

        charset utf-8;

        location / {
            root   html;
            index  index.php index.html index.htm;
        }
        location ~ \.php$ {
            root  html;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            include fastcgi.conf;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }
}
[root@lnp conf]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@lnp conf]# nginx 
[root@lnp conf]# netstat -anpt | grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      41766/nginx: master 

4.測試LNMP

[root@lnp conf]# vim /usr/local/nginx/html/lamp1.php
<?php
phpinfo();
?>
[root@lnp conf]# vim /usr/local/nginx/html/lamp2.php
<?php
$link=mysql_connect('192.168.1.13','root','123456');
if($link) echo "eeeeee";
mysql_close();
?>
瀏覽器訪問測試

http://192.168.1.12/lamp1.php
在這裏插入圖片描述
http://192.168.1.12/lamp2.php
在這裏插入圖片描述

二.安裝zabbix主程序

1.首先在mysql中導入zabbix所需的數據庫

在這裏插入圖片描述

[root@mysql ~]# mysql -uroot -p123456
mysql>  create database zabbix character set utf8;
Query OK, 1 row affected (0.00 sec)

mysql> grant all on zabbix.* to zabbix@'192.168.1.%' identified by 'zabbix';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> grant all on zabbix.* to zabbix@localhost identified by 'zabbix'; 
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> exit

注意下面導入的順序不能亂

[root@mysql ~]# tar zxvf zabbix-4.2.6.tar.gz
[root@mysql zabbix-4.2.6]# cd zabbix-4.2.6/
[root@mysql zabbix-4.2.6]# mysql -uzabbix -pzabbix zabbix < database/mysql/schema.sql 

[root@mysql zabbix-4.2.6]# mysql -uzabbix -pzabbix zabbix < database/mysql/images.sql 

[root@mysql zabbix-4.2.6]# mysql -uzabbix -pzabbix zabbix < database/mysql/data.sql

2.安裝zabbix_server服務

在這裏插入圖片描述

[root@zabbix ~]# tar zxf zabbix_rpm.tar.gz 
[root@zabbix ~]# yum -y install createrepo
[root@zabbix ~]# createrepo zabbix_rpm
Spawning worker 0 with 7 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@zabbix ~]# vim /etc/yum.repos.d/centos7.repo 
[name]
name=nihao
baseurl=file:///mnt
gpgcheck=0


[name2]
name=nihao2
baseurl=file:///root/zabbix_rpm
gpgcheck=0
[root@zabbix ~]# yum -y install net-snmp net-snmp-devel curl-devel java-1.8.0-openjdk java-1.8.0-openjdk-devel  OpenIPMI-devel  libssh2-devel libevent libevent-devel
[root@zabbix ~]# groupadd zabbix
[root@zabbix ~]# useradd -s /sbin/nologin  -g zabbix zabbix
[root@zabbix ~]# cd /root/
[root@zabbix ~]# tar zxf zabbix-4.2.6.tar.gz 
[root@zabbix ~]# yum -y install gcc*
[root@zabbix ~]# yum -y install libxml2-devel mysql-devel 
[root@zabbix ~]# cd zabbix-4.2.6/
[root@zabbix zabbix-4.2.6]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent  --enable-java --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-mysql
[root@zabbix zabbix-4.2.6]# make && make install
[root@zabbix zabbix-4.2.6]# ln -s /usr/local/zabbix/bin/* /usr/local/bin/
[root@zabbix zabbix-4.2.6]# ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/

3.配置zabbix_server

修改或取消註釋如下行,前面的數字是行號,都是關於後臺數據庫的參數

[root@zabbix zabbix-4.2.6]# vim /usr/local/zabbix/etc/zabbix_server.conf
 38 LogFile=/usr/local/zabbix/zabbix_server.log
 68 PidFile=/usr/local/zabbix/logs/zabbix_server.pid
 85 DBHost=192.168.1.13
 94 DBName=zabbix
 110 DBUser=zabbix
 118 DBPassword=zabbix
 133 DBPort=3306
[root@zabbix zabbix-4.2.6]# cd
[root@zabbix ~]# mkdir -p /usr/local/zabbix/logs
[root@zabbix ~]# chown -R zabbix:zabbix /usr/local/zabbix/

4.啓動服務和啓動腳本

[root@zabbix ~]# netstat -anpt | grep zabbix_server
[root@zabbix ~]# netstat -anpt | grep 10051
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      83970/zabbix_server 

[root@zabbix ~]# cd /root/zabbix-4.2.6/misc/init.d/
[root@zabbix init.d]# cp fedora/core/* /etc/init.d/
[root@zabbix init.d]# vim /etc/init.d/zabbix_server   #修改如下兩行
 22         BASEDIR=/usr/local/zabbix
 31         PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid
[root@zabbix init.d]# chkconfig --add zabbix_server
[root@zabbix init.d]# chkconfig zabbix_server on

5.配置Web頁面

lnp主機中
在這裏插入圖片描述

[root@lnp zabbix-4.2.6]# cp -r frontends/php/* /usr/local/nginx/html/
[root@lnp zabbix-4.2.6]# chown -R www:www /usr/local/nginx/html/
[root@lnp ~]# nginx -s reload
[root@lnp ~]# /etc/init.d/php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm  done

5.瀏覽器安裝zabbix

http://192.168.1.12
這個安裝界面默認,是英文的,可以用瀏覽器的插件,翻譯成中文看

在這裏插入圖片描述
有個LADP的是錯誤,不用管,直接下一步
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
摘要那一步直接,到這裏,下一步
在這裏插入圖片描述
點擊登入
在這裏插入圖片描述

安裝完成如下,默認是英文的
在這裏插入圖片描述

實驗完畢 !!關於高級操作和使用,請看去我主頁看zabbix專欄

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