首页 > 代码库 > 细化如何安装LNMP + Zabbix 监控安装文档以及故障排除
细化如何安装LNMP + Zabbix 监控安装文档以及故障排除
1.LNMP所需安装包:
上传如下软件包到/soft目录中mysql- 5.1.71(centos6.5 64位自带)也可根据版本自行挑选,前提你了解这个版本pcre-8.36.tar.gznginx-1.6.2.tar.gzjpegsrc.v9a.tar.gzlibmcrypt-2.5.8.tar.gzphp-5.6.3.tar.gz
2.配置系统YUM源
cd /etc/yum.repos.d/
vim install.repo
[LOCALYUMSOURCE]
name=PD307
baseurl=http://192.168.100.254/1 #本地ISO挂载目录写法为:file:///mnt mnt是挂载目录
http://192.168.100.254/2
gpgcheck=0
3.安装LNMP环境依赖包
yum install -y apr* autoconf automake bison bzip2 bzip2* cloog-ppl compat* cpp curl curl-devel fontconfig fontconfig-devel freetype freetype* freetype-devel gcc gcc-c++ gtk+-devel gd gettext gettext-devel glibc kernel kernel-headers keyutils keyutils-libs-devel krb5-devel libcom_err-devel libpng libpng* libpng-devel libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool* libgomp libxml2 libxml2-devel libXpm* libX* libtiff libtiff* make mpfr ncurses* ntp openssl nasm nasm* openssl-devel patch pcre-devel perl php-common php-gd policycoreutils ppl telnet t1lib t1lib* wget zlib-devel
4.安装Mysql
如果是按照编译安装mysql5.7,请参考点击http://www.cnblogs.com/renfanzi/p/5613431.html
yum install mysql*
安装目录:/var/lib/mysql/
拷贝mysql64位库文件至32位目录
cp /usr/lib64/mysql/* /usr/lib/mysql/,如果服务器没有/usr/lib/mysql/ 目录,则在/usr/lib/目录下创建mysql目录即可
5.安装pcre
tar zxvf pcre-8.36.tar.gz cd pcre-8.36 ./configure --prefix=/usr/local/pcremake make install
6.安装 nginx
了解安装nginx,请点击http://www.cnblogs.com/renfanzi/p/5686540.html
groupadd www #添加www组 useradd -g www www -s /bin/false #创建nginx运行账户www并加入到www组,不允许www用户直接登录系统 tar zxvf nginx-1.6.2.tar.gz cd nginx-1.6.2 ./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-openssl=/usr/ --with-pcre=/soft/pcre-8.36#注意:--with-pcre=/soft/pcre-8.30指向的是源码包解压的路径,而不是安装的路径,否则会报错 make make install
7.编写Nginx启动脚本:
vi /etc/rc.d/init.d/nginx #设置nginx开启启动,编辑启动文件添加下面内容
#!/bin/sh## nginx - this script starts and stops the nginx daemin## chkconfig: - 85 15# description: Nginx is an HTTP(S) server, HTTP(S) reverse # proxy and IMAP/POP3 proxy server# processname: nginx# config: /www/wdlinux/nginx/conf/nginx.conf# pidfile: /www/wdlinux/nginx/logs/nginx.pid# Url http://www.wdlinux.cn# Last Updated 2010.06.01# Source function library.. /etc/rc.d/init.d/functions# Source networking configuration.. /etc/sysconfig/network# Check that networking is up.[ "$NETWORKING" = "no" ] && exit 0nginx="/usr/local/nginx/sbin/nginx"prog=$(basename $nginx)NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"NGINX_PID="/usr/local/nginx/logs/nginx.pid"[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginxlockfile=/var/lock/subsys/nginxstart() { [ -x $nginx ] || exit 5 [ -f $NGINX_CONF_FILE ] || exit 6 echo -n $"Starting $prog: " daemon $nginx -c $NGINX_CONF_FILE retval=$? echo #service php-fpm start [ $retval -eq 0 ] && touch $lockfile return $retval}stop() { echo -n $"Stopping $prog: " $nginx -s stop echo_success retval=$? echo #service php-fpm stop [ $retval -eq 0 ] && rm -f $lockfile return $retval}restart() { stop start}reload() { configtest || return $? echo -n $"Reloading $prog: " $nginx -s reload RETVAL=$? echo}force_reload() { restart}configtest() { $nginx -t -c $NGINX_CONF_FILE}rh_status() { status $prog}rh_status_q() { rh_status >/dev/null 2>&1}case "$1" in start) rh_status_q && exit 0 $1 ;; stop) rh_status_q || exit 0 $1 ;; restart|configtest) $1 ;; reload) rh_status_q || exit 7 $1 ;; force-reload) force_reload ;; status) rh_status ;; condrestart|try-restart) rh_status_q || exit 0 ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" exit 2esac
chmod 775 /etc/rc.d/init.d/nginx #赋予文件执行权限
chkconfig nginx on #设置开机启动
8.配置Nginx
egrep -v "#" /usr/local/nginx/conf/nginx.conf
#此为参考配置示例
user www www; #取消注释,修改为www用户和www组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; root /usr/local/nginx/html; #修改nginx默认目录 index index.php index.html index.htm; #添加nginx支持php索引 error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #修改为$document_root$fastcgi_script_name; include fastcgi_params; } }
/etc/rc.d/init.d/nginx restart #重启
9.安装jpeg
cd /soft/jpeg-9a/tar zxf jpegsrc.v9a.tar.gz cd jpeg-9a/./configure --prefix=/usr/local/jpegmake && make install
10.安装libmcrypt
cd /soft #libmcrypt-2.5.8.tar.gz 软件包路径tar -zxvf libmcrypt-2.5.8.tar.gzcd /usr/local/src/libmcrypt-2.5.8./configure --prefix=/usr/localmake && make install
11.安装PHP
cd /softtar -zvxf php-5.6.3.tar.gz cd php-5.6.3 mkdir -p /usr/local/php5 #建立php安装目录 ./configure --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5/etc --with-mysql=/usr --with-mysqli=/usr/lib64/mysql/mysql_config --with-mysql-sock=/var/lib/mysql/mysql.sock --with-gd --with-iconv --with-zlib --enable-xml --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curlwrappers --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 --with-curl --with-jpeg-dir --with-freetype-dir --with-jpeg-dir=/usr/local/jpeg make && make install PHP系统配置文件设置cp php.ini-production /usr/local/php5/etc/php.ini #复制php配置文件到安装目录rm -rf /etc/php.ini #删除系统自带配置文件 ln -s /usr/local/php5/etc/php.ini /etc/php.ini #添加软链接 cp /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件PHP修改添加Nginx用户vi /usr/local/php5/etc/php-fpm.conf #编辑 user = www #设置php-fpm运行账号为www group = www #设置php-fpm运行组为www pid = run/php-fpm.pid #取消前面的分号 cp /soft/php-5.6.3/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm #设置 php-fpm开机启动,拷贝php-fpm到启动目录 chmod +x /etc/rc.d/init.d/php-fpm #添加执行权限 chkconfig php-fpm on #设置开机启动 PHP配置文件设置vi /usr/local/php5/etc/php.ini找到;disable_functions =修改为disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。找到:;date.timezone = 修改为:date.timezone = PRC #设置时区 找到:expose_php = On 修改为:expose_php = OFF #禁止显示php版本的信息修改PHP参数post_max_size = 8M #改为16Mmax_execution_time = 30 #改为300max_input_time = 60 #改为300
(二) Zabbix安装
Zabbix软件包:
zabbix-2.4.2.tar.gz
zabbix-agent-2.4.2-1.el6.x86_64.rpm
Zabbix 所需依赖包:
yum -y install net-snmp net-snmp-devel OpenIPMI OpenIPMI-devel OpenIPMI-tools OpenIPMI-libs libssh2* unixODBC*
1.数据库初始化
创建并赋予权限
/etc/init.d/mysqld startmysqladmin -u root password yd_12345678mysql -uroot -pyd_12345678> create database zabbix character set utf8;> use mysql;> grant all privileges on zabbix.* to zabbix@localhost identified by ‘yd_12345678‘;> flush privileges;>quit;
如出现
mysql -u root –pEnter password: ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
解决办法
>set password for ‘root‘@‘localhost‘ =PASSWORD(‘yd_12345678‘);
2.安装zabbix
cd /soft/tar zxvf zabbix-2.4.2.tar.gzcd zabbix-2.4.2#导入数据库/soft/zabix-2.4.2目录下#注意要按顺序导入,不然会报错mysql -uzabbix -pyd_12345678 zabbix < database/mysql/schema.sqlmysql -uzabbix -pyd_12345678 zabbix < database/mysql/images.sqlmysql -uzabbix -pyd_12345678 zabbix < database/mysql/data.sql编译安装:./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/usr/lib64/mysql/mysql_config --with-net-snmp --with-libcurl --enable-proxy --with-openipmi --with-unixodbc --with-ssh2make install#注意:在编译时,如果缺少相应的依赖包,configure过程会给出提示,然后用yum安装相应的软件。
3.创建zabbix服务
vim /etc/services
zabbix-agent 10050/tcp # Zabbix Agentzabbix-agent 10050/udp # Zabbix Agentzabbix-trapper 10051/tcp # Zabbix Trapperzabbix-trapper 10051/udp # Zabbix Trapper
4.创建zabbix相关账户,文件,权限
groupadd zabbixuseradd -g zabbix -m zabbixmkdir -p /etc/zabbixcp conf/{zabbix_server.conf,zabbix_agentd.conf} /etc/zabbixchmod 400 /etc/zabbix/zabbix_server.confchown zabbix /etc/zabbix/zabbix_server.confchown -R zabbix:zabbix /etc/zabbixchmod 0755 /etc/zabbix/zabbix_server.conf
5.配置zabbix服务端
ln -sf /usr/local/zabbix/etc/zabbix_server.conf /etc/zabbix/zabbix_server.conf
vim /etc/zabbix/zabbix_server.conf
ln -sf /usr/local/zabbix/etc/zabbix_server.conf /etc/zabbix/zabbix_server.confvim /etc/zabbix/zabbix_server.confLogFile=/tmp/zabbix_server.logDBHost=localhostDBName=zabbix zabbix所属数据库名称DBUser=zabbix zabbix所属数据库用户DBPassword=yd_12345678 zabbix数据库密码DBSocket=/var/lib/mysql/mysql.sockStartPollers=30 轮询的初始值(0-1000)StartIPMIPollers=4 IPMI轮询的初始值(0-1000)StartPollersUnreachable=30 轮询不可达的主机数(包括IPMI 0-1000)StartTrappers=8 捕获的初始值(0-1000)StartPingers=4 ping的初始值(0-1000)StartDiscoverers=0 自动发现的初始值(0-250)CacheSize=384M 缓存大小CacheUpdateFrequency=300 缓存更新的频率StartDBSyncers=8 数据库同步时间TrendCacheSize=128M 总趋势缓存大小AlertScriptsPath=/usr/bin 脚本的存放位置LogSlowQueries=1000 日志慢查询设定#AlertScriptsPath=/usr/local/zabbix/scripts #指定告警脚本存放位置
6.配置zabbix php环境
cd frontends/ # /soft/zabbix-2.4.2/frontends 软件包解压路径cp -rf php /usr/local/nginx/htmlcd /usr/local/nginx/htmlmv php zabbixchown -R zabbix:zabbix zabbixvi /usr/local/php5/etc/php.inidate.timezone = Asia/Shanghaised -i "s#;always_populate_raw_post_data = http://www.mamicode.com/-1#always_populate_raw_post_data = -1#g" /usr/local/php5/etc/php.inised -i "s#;cgi.fix_pathinfo=0#cgi.fix_pathinfo=0#g" /usr/local/php5/etc/php.ini
7.配置zabbix启动服务
cp /usr/local/zabbix/sbin/zabbix_server /etc/init.d/cp /usr/local/zabbix/sbin/zabbix_agentd /etc/init.d/chmod 755 /etc/init.d/zabbix_*sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#g" /etc/init.d/zabbix_serversed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#g" /etc/init.d/zabbix_agentdchkconfig --add zabbix_serverchkconfig --add zabbix_agentdchkconfig --level 345 zabbix_server onchkconfig --level 345 zabbix_agentd onservice zabbix_server restartservice zabbix_agentd restart
8.配置Server端防火墙 #不启用防火墙不用配置
vim /etc/sysconfig/iptables-A INPUT -s 192.168.0.0/16 -p tcp -m multiport --dports 10050,10051 -j ACCEPT
Zabbix的服务端口为10050和10051
到此,zabbix配置完成.
可以使用web访问http://ip/zabbix/setup.php
默认用户名和密码:admin/zabbix
9.服务初始化
1.启用防火环境设置防火墙开放80,9000,10050,10051端口
2.设置系统Selinux已经关闭
3.设置Mysql、Nginx、php-fpm服务自启动
{chkconfig –level 2345 mysqld on; chkconfig --level 2345 nginx on; chkconfig --level 2345 php-fpm on ;chkconfig}
4.设置/etc/init.d/zabbix_server 开机引导,加入/etc/rc.local
10.配置zabbix.conf.php #web setup.php运行后自动生成
vim /usr/local/nginx/html/zabbix/conf/zabbix.conf.php;
chmod 777 /usr/local/nginx/html/zabbix/conf
<?php// Zabbix GUI configuration fileglobal $DB;$DB[‘TYPE‘] = ‘MYSQL‘;$DB[‘SERVER‘] = ‘localhost‘;$DB[‘PORT‘] = ‘0‘;$DB[‘DATABASE‘] = ‘zabbix‘;$DB[‘USER‘] = ‘root‘;$DB[‘PASSWORD‘] = ‘yd_12345678‘;// SCHEMA is relevant only for IBM_DB2 database$DB[‘SCHEMA‘] = ‘‘;$ZBX_SERVER = ‘localhost‘;$ZBX_SERVER_PORT = ‘10051‘;$ZBX_SERVER_NAME = ‘pd‘;$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
11.设置中文支持
vim /usr/local/nginx/html/zabbix/include/locales.inc.php
第55行中结尾处false改成true,IE浏览器使用admin登录zabbix主页面右上方Profile中Language 中选择Chinese(zh CN)点击Update。
FQA:故障排除,一步错步步错
一、
- 出现connection to database ‘zabbix’ faild .设置了Lnmp和zabbix服务自启动后reboot系统(tail –f /tmp/zabbix.log)
还是报错参考/usr/local/zabbix/etc/zabiix_server.conf
- View Code
LogFile=/tmp/zabbix_server.logDBHost=localhostDBName=zabbixDBUser=zabbixDBPassword=yd_12345678DBSocket=/var/lib/mysql/mysql.sockDBPort=3306StartPollers=5 StartIPMIPollers=10 StartPollersUnreachable=10 StartTrappers=10 StartPingers=10 StartDiscoverers=10 SNMPTrapperFile=/tmp/zabbix_snmptt.log ListenIP=127.0.0.1 MaxHousekeeperDelete=500 CacheSize=384M CacheUpdateFrequency=300 StartDBSyncers=40 HistoryCacheSize=128M TrendCacheSize=128M HistoryTextCacheSize=128M ValueCacheSize=128M Timeout=30 TrapperTimeout=300 UnreachablePeriod=45 UnavailableDelay=60 UnreachableDelay=15 AlertScriptsPath=/usr/local/zabbix/scripts FpingLocation=/usr/sbin/fping LogSlowQueries=10000 StartProxyPollers=50 ProxyConfigFrequency=3600
二、
- WEB页面setup.php向导报错(http://IP/zabbix/setup.php)
修改php.ini相关的参数:/usr/local/php5/etc/php.ini
三、
比较容易出现问题的配置文件
Nginx配置文件 /usr/local/nginx/conf/nginx.conf
Zabbix配置文件 /usr/local/zabbix/etc/zabbix_server.conf
PHP5配置文件 /usr/local/php5/etc/php.ini
示例配置文件:
声明出处:由于本文是根据书本写的博客,如遇已有类似文章博客,请联系我,我会在声明出处。
细化如何安装LNMP + Zabbix 监控安装文档以及故障排除