zabbix + LNMP 구축

11056 단어 zabbix감시 하 다
계통
Centos 6.5
설치 패키지
mysql-5.6.29.tar.gz
nginx-1.10.2.tar.gz
php-5.6.20.tar.gz
zabbix-3.4.1.tar.gz
Nginx 설치
의존 설치
$ yum -y install pcre-devel openssl openssl-devel  zlib-devel  gcc*

새 사용자
$ groupadd nginx && useradd -g nginx -s /sbin/nologin nginx
$ tar xf nginx-1.10.2.tar.gz
$ cd nginx-1.10.2
$ ./configure --prefix=/soft/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 --user=nginx --group=nginx
$ make && make install 
$ cd /soft/nginx/conf/

필터 프로필
$ grep -Ev "#|^$" nginx.conf.default > nginx.conf
$ vim nginx.conf
user nginx;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   /soft/nginx/html;
            index index.php index.html index.htm;
        }
        
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        
        location ~ \.(php|php6)?$ {
                root    /soft/nginx/html;
                fastcgi_pass    127.0.0.1:9000;
                fastcgi_index   index.php;
        # fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
                fastcgi_param  SCRIPT_FILENAME  /soft/nginx/html$fastcgi_script_name;
                include        fastcgi_params;
        }
    }
}

테스트 프로필, 반환 OK!
$ /soft/nginx/sbin/nginx -t
nginx: the configuration file /soft/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /soft/nginx/conf/nginx.conf test is successful

MySQL 설치
$ yum -y  install tree nmap lrzsz dos2unix cmake bison ncurses ncurses-devel
$ groupadd mysql && useradd -g mysql -s /sbin/nologin mysql
$ cd /soft/mysql-5.6.29
$ cmake -DCMAKE_INSTALL_PREFIX=/soft/mysql \
-DMYSQL_DATADIR=/soft/mysql/data1 \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
$ make && make install
$ cp /soft/mysql-5.6.29/support-files/mysql.server /etc/init.d/mysqld
$ chmod +x /etc/init.d/mysqld

데이터베이스 초기 화
$ /soft/mysql/scripts/mysql_install_db --baseir=/soft/mysql --datadir=/soft/mysql/data1 --user=mysql

MySQL 프로필
$ vim /etc/my.cnf
[client]
socket = /tmp/mysql.sock

[mysqld]
datadir = /soft/mysql/data1
socket = /tmp/mysql.sock
user = mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links = 0

[mysqld_safe]
log-error = /var/log/mysqld.log
pid-file = /var/run/mysqld/mysqld.pid

비밀번호 수정, 서비스 시작
$ mysqladmin -u root password 'testmysql'
$ service msyqld start

PHP 설치
패키지 설치 에 의존 하기;
$ yum -y install libxslt libxslt-devel bison bison-devel libmcrypt-devel mcrypt \
mhash-devel libxml2-devel libcurl-devel bzip2-devel readline-devel libedit-devel \
sqlite-devel jemalloc jemalloc-devel
$  groupadd www-data && useradd -g www-data -s /sbin/nologin www-data

libiconv 와 libmcrypt 이 설치 되 지 않 으 면컴 파일 설치 가능;
libiconv 설치;
$ wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
$ tar xf libiconv-1.14.tar.gz
$ cd libiconv-1.14
$ ./configure
$ make && make install

libmcrypt 설치;
$ wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
$ tar xf libmcrypt-2.5.7.tar.gz 
$ cd libmcrypt-2.5.7
$ ./configure 
$ make && make install

컴 파일 설치 PHP
$ cd /soft/php-5.6.20
$ ./configure --prefix=/soft/php --with-iconv-dir=/usr --with-freetype-dir \
--with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --with-gettext \
--enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem \
--enable-inline-optimization --with-curl --enable-mbregex --enable-fpm \
--enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl \
--with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap \
--enable-short-tags --enable-static --with-xsl --with-fpm-user=www-data \
--with-fpm-group=www-data --enable-ftp --enable-opcache --with-mysql=mysqlnd \
--with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd
$ make && make install
$ cp php.ini-development /soft/php/lib/php.ini
$ cd /soft/php/etc
$ cp php-fpm.conf.default php-fpm.conf

PHP 를 컴 파일 할 때 발생 할 수 있 는 문제:
ext/iconv/.libs/iconv.o: In function `php_iconv_stream_filter_ctor':
/home/king/php-5.6.20/ext/iconv/iconv.c:2491: undefined reference to `libiconv_open'
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1

make 에서 위 와 같은 오류 가 발생 하면 Makefile 파일 을 수정 할 수 있 습 니 다.
$  vim ./Makefile
EXTRA_LIBS = -lcrypt -lexslt -lcrypt -lrt -lmcrypt -lpng -lz -ljpeg -lcurl -lz -lrt -lm -ldl -lnsl -lrt -lxml2 -lz
 -lm -lssl -lcrypto -lcurl -lxml2 -lz -lm -lssl -lcrypto -lfreetype -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt -lxml2 -
lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lxslt -lxml2 -lz -lm -lssl -lcrypto -lcrypt -liconv
 EXTRA_LIBS       -liconv,  make  

프로필 은 다음 과 같이 수정 되 었 습 니 다.
$ vim /soft/php/lib/php.ini
max_execution_time = 300
max_input_time = 300
memory_limit = 128M
post_max_size = 30M
date.timezone = Asia/Shanghai
always_populate_raw_post_data = -1

PHP 시작:
$ /soft/php/sbin/php-fpm

Zabbix 설치
컴 파일 매개 변수 에 JAVA 를 추가 하면 JDK 를 설치 해 야 합 니 다. 그렇지 않 으 면 오류 가 발생 할 수 있 습 니 다.
$ tar xf jdk-8u91-linux-x64.tar.gz
$ mv jdk1.8.0_91 /soft/jdk1.8

환경 변수 쓰기;
$ vim /etc/profile
export JAVA_HOME=/soft/jdk1.8
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin

즉시 효력 발생;
$ source /etc/profile

설치 의존;
$ yum install net-snmp-devel libevent-devel -y
$ cd /soft/zabbix-3.4.1
$ groupadd zabbix && useradd -g zabbix -s /sbin/nologin zabbix
$ ./configure --prefix=/soft/zabbix \
--enable-server --enable-agent --with-mysql \
--enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2  \
--enable-java
$ make && make install

시작 스 크 립 트 복사, 호출 경로 수정 주의: BASEDIR = 설 치 된 디 렉 터 리 지정
$ cp misc/init.d/fedora/core/* /etc/rc.d/init.d/
$ cp -R frontends/php/* /soft/nginx/html/zabbix
$ vim /soft/zabbix/etc/zabbix_server
. /etc/init.d/functions
        BASEDIR=/soft/zabbix
        BINARY_NAME=zabbix_server
        FULLPATH=$BASEDIR/sbin/$BINARY_NAME
        PIDFILE=/tmp/$BINARY_NAME.pid
        ERROR=0
        STOPPING=0
if [ -f $PIDFILE  ] && [ -s $PIDFILE ]
        then
        PID=`cat $PIDFILE`

        if [ "x$PID" != "x" ] && kill -0 $PID 2>/dev/null && [ $BINARY_NAME == `ps -e | grep $PID | awk '{print $4}'` ]
        then
                STATUS="$BINARY_NAME (pid `pidof $APP`) running.."
                RUNNING=1
        else
                rm -f $PIDFILE
                STATUS="$BINARY_NAME (pid file existed ($PID) and now removed) not running.."
                RUNNING=0
        fi
else
        if [ `ps -e | grep $BINARY_NAME | head -1 | awk '{ print $1 }'` ]
                then
                STATUS="$BINARY_NAME (pid `pidof $APP`, but no pid file) running.."
        else
                STATUS="$BINARY_NAME (no pid file) not running"
        fi
        RUNNING=0
fi
start() {
        if [ $RUNNING -eq 1 ]
                then
                echo "$0 $ARG: $BINARY_NAME (pid $PID) already running"
        else
                action $"Starting $BINARY_NAME: " $FULLPATH
                touch /var/lock/subsys/$BINARY_NAME
    fi
}
stop() {
        echo -n $"Shutting down $BINARY_NAME: "
        killproc $BINARY_NAME
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$BINARY_NAME
        RUNNING=0
}
case "$1" in
        start)
                start
                ;;
        stop)
                stop
                ;;
        status)
                status $BINARY_NAME
                ;;
        restart)
                stop
                sleep 10
                start
                ;;
        help|*)
        echo $"Usage: $0 {start|stop|status|restart|help}"
                cat < 
  


mysql> create database zabbix character set utf8;
mysql>  create  user  'zabbix_rw'@'%' identified  by  'zabbix';
mysql> grant all on zabbix.* to zabbix_rw@'%' identified by 'zabbix';
mysql> flush privileges;
mysql> quit;

데이터 가 져 오기
$ cd database/mysql/
$ mysql -uzabbix -pzabbix zabbix  
  


$ vim /soft/zabbix/etc/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/tmp/mysql.sock
DBPort=3306
PidFile=/soft/zabbix/pid/zabbix_server.pid
JavaGateway=127.0.0.1
JavaGatewayPort=10052
StartJavaPollers=5
CacheSize=1024M
Timeout=30
AlertScriptsPath=/soft/zabbix/share/zabbix/alertscripts
#FpingLocation=/soft/fping/sbin/fping
LogSlowQueries=3000

클 라 이언 트
$ vim /soft/zabbix/etc/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
EnableRemoteCommands=1
Server=192.168.10.128
ServerActive=192.168.10.128
Hostname=zk-192.168.10.128
HostMetadataItem=system.uname
Include=/soft/zabbix/etc/zabbix_agentd.conf.d/*.conf

시동 을 걸다
$ service zabbix_server start  #   
$ service zabbix_agentd start  #   

WEB 인증 파일
cat /soft/nginx/html/conf/zabbix.conf.php
 
  


좋은 웹페이지 즐겨찾기