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的是錯誤,不用管,直接下一步
摘要那一步直接,到這裏,下一步
點擊登入
安裝完成如下,默認是英文的