Rootop 服务器运维与web架构

2013-10-11
发表者 Venus
暂无评论

搭建zabbix监控环境

安装:
在这篇文章发布时,最新版本为zabbix-2.0.9.tar.gz
安装参考文档:http://www.zabbix.com/documentation/2.0/manual/installation/install
[root@svn ~]# wget -c http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.0.9/zabbix-2.0.9.tar.gz

yum安装编译环境:
[root@svn zabbix-2.0.9]# yum install -y gcc gcc-c++ mysql-devel curl-devel net-snmp net-snmp-devel

添加用户:
[root@svn zabbix-2.0.9]# useradd -s /sbin/nologin zabbix

服务器端创建数据库:
mysql> create database zabbix default charset utf8;

在/zabbix-2.0.9/database/mysql中有chema.sql、images.sql、data.sqls将其依次导入zabbix库中。

[root@svn mysql]# mysql -u root -p zabbix < schema.sql
Enter password:
[root@svn mysql]# mysql -u root -p zabbix < images.sql
Enter password:
[root@svn mysql]# mysql -u root -p zabbix < data.sql
Enter password:
[root@svn mysql]#

编译zabbix:


[root@svn zabbix-2.0.9]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl

[root@svn zabbix-2.0.9]#make install

编辑服务器端配置文件:
[root@svn zabbix-2.0.9]# vi /usr/local/zabbix/etc/zabbix_server.conf
注意以下三行
DBName=zabbix
DBUser=root
DBPassword=root

保存退出

启动zabbix_server:
[root@svn zabbix-2.0.9]# /usr/local/zabbix/sbin/zabbix_server
启动zabbix_agentd:
[root@svn zabbix-2.0.9]# /usr/local/zabbix/sbin/zabbix_agentd
启动zabbix_proxy(上面编译参数没加proxy,所以没有此命令,无需执行):
[root@svn zabbix-2.0.9]# /usr/local/zabbix/sbin/zabbix_proxy

安装web界面:
[root@svn zabbix-2.0.9]# mkdir /var/www/html/zabbix
[root@svn zabbix-2.0.9]# cp -R frontends/php/* /var/www/html/zabbix

然后开始安装:
http://YOUR_SERVER_IP_ADDRESS/zabbix/

在第二步时,会提示几个php的参数需要修改,根据提示修改即可,记得重启apache。


ps我这里php.ini出现的几个参数改为以下值:

post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone=PRC

安装php-bcmath

解决环境需求。
继续下一步,配置连接数据库的地址、端口、用户、密码,点击 test connection 测试连接,继续下一步。
第六步会提示在conf中写入一个文件,可能会没有权限,给777即可。


[root@svn zabbix-2.0.9]# chmod 777 /var/www/html/zabbix/conf
完成安装,跳到登陆界面
默认用户名密码为:admin  zabbix 登陆即可。

在有些图形报表中会显示方格,解决方法如下:

从windows系统C:\Windows\Fonts下拷贝字体文件到服务器中的/var/www/html/zabbix/fonts/ 下 我这里选择微软雅黑,并且修改后缀名为小写。
[root@svn fonts]# mv MSYH.TTF MSYH.ttf

修改:

[root@svn ~]# vi /var/www/html/zabbix/include/defines.inc.php

define(‘ZBX_GRAPH_FONT_NAME’,           ‘MSYH‘); // font file name

不需要加文件的后缀名,保存退出,刷新页面即可。


2013-10-10
发表者 Venus
暂无评论

Zabbix 服务器没有运行,显示信息也许不是当前

有的时候是因为selinux没有关,还有的情况需要查看zabbix server日志。
1、关selinux
setenforce 0 (或者改配置文件永久关掉selinux)

2、查看日志
[root@localhost mysql]# cat /usr/local/zabbix/etc/zabbix_server.conf | grep LogFile
# file – file specified with LogFile parameter
### Option: LogFile
# LogFile=
LogFile=/tmp/zabbix_server.log

去查 /tmp/zabbix_server.log 文件

7189:20180316:102014.462 database is down: reconnecting in 10 seconds
7189:20180316:102024.462 [Z3001] connection to database ‘zabbix’ failed: [2002] Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

可以看到是没有找到mysql.sock文件,我mysql的sock文件在/tmp下,直接软链接一个到日志里的路径即可。

2013-10-10
发表者 Venus
暂无评论

linux+apache+php的fastcgi模式

FastCGI 的主要优点是把动态语言和web server分离开来,所以web server与PHP/PHP-FPM经常被部署在不同的服务器上,以分担前端web server服务器的压力,使web server专一处理静态请求和转发动态请求,而PHP/PHP-FPM服务器专一解析PHP动态请求。
为了测试,暂不安装mysql并且这里以apache为例,编译参数较少。
安装编译环境:
yum -y install gcc gcc-c++  make automake autoconf kernel-devel ncurses-devel libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel  pcre-devel libtool-libs freetype-devel gd zlib-devel file bison patch mlocate flex diffutils   readline-devel glibc-devel glib2-devel bzip2-devel gettext-devel libcap-devel libmcrypt-devel   //直接复制的以前编译参数

下载httpd php php-fpm:
http://archive.apache.org/dist/httpd/httpd-2.2.22.tar.gz
http://www.fastcgi.com/dist/mod_fastcgi-2.4.6.tar.gz
http://museum.php.net/php5/php-5.2.17.tar.gz
http://php-fpm.org/downloads/php-5.2.17-fpm-0.5.14.diff.gz

编译apache:

[root@localhost httpd-2.2.22]#./configure --prefix=/usr/local/apache --enable-so   //这里采用最小的编译参数

为apache安装mod_fastcgi模块:

在mod_fastcgi安装包中有一个INSTALL.AP2文件,里面有安装方法:

    $ cd <mod_fastcgi_dir>
    $ cp Makefile.AP2 Makefile     //拷贝编译文件
    $ make
    $ make install

If your Apache2 installation isn’t in /usr/local/apache2, then
    set the top_dir variable when running make (or edit the
    Makefile),
e.g.

      $ make top_dir=/opt/httpd/2.0.40

    Add an entry to httpd.conf like this:

      LoadModule fastcgi_module modules/mod_fastcgi.so

这里需要编辑Makefile,修改top_dir      = /usr/local/apache   //改为你apache的编译路径

make && make install 即可
编译完成后在apache配置文件中添加一行:
LoadModule fastcgi_module modules/mod_fastcgi.so    //载入模块 
至此完成。

打php的fpm补丁:
[root@localhost smb]#gzip -cd php-5.2.17-fpm-0.5.14.diff.gz | patch -d php-5.2.17 -p1

编译php:

[root@localhost php-5.2.17]# ./configure --prefix=/usr/local/php --enable-fastcgi --enable-fpm --with-config-file-path=/etc

拷贝php的配置文件:
[root@localhost php-5.2.17]# cp php.ini-recommended /etc/php.ini

编辑php-fpm的配置文件:
[root@localhost ~]# vi /usr/local/php/etc/php-fpm.conf
去掉下面的注释(<!– –>):
                        Unix user of processes
                        <value name=”user”>nobody</value>

                        Unix group of processes
                        <value name=”group”>nobody</value>
指定php-fpm运行时的用户和组。不修改会无法启动。

启动php-fpm:
[root@localhost ~]# /usr/local/php/sbin/php-fpm start
Starting php_fpm  done

查看:
[root@localhost ~]# lsof -i:9000        //php-fpm占用9000端口
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
php-cgi 49783   root    6u  IPv4 132841      0t0  TCP localhost:cslistener (LISTEN)
php-cgi 49786 nobody    0u  IPv4 132841      0t0  TCP localhost:cslistener (LISTEN)
php-cgi 49787 nobody    0u  IPv4 132841      0t0  TCP localhost:cslistener (LISTEN)
php-cgi 49788 nobody    0u  IPv4 132841      0t0  TCP localhost:cslistener (LISTEN)
php-cgi 49789 nobody    0u  IPv4 132841      0t0  TCP localhost:cslistener (LISTEN)
php-cgi 49790 nobody    0u  IPv4 132841      0t0  TCP localhost:cslistener (LISTEN)

整合apache+php/php-fpm

创建fastcgi脚本目录:
mkdir /usr/local/apache/htdocs/fcgi-bin
ln -s /usr/local/php/bin/php-cgi  /usr/local/apache/htdocs/fcgi-bin/php-cgi

编辑httpd.conf,添加(注意实际apache路径):

<IfModule fastcgi_module>
ScriptAlias /fcgi-bin/ “/usr/local/apache/htdocs/fcgi-bin/”
FastCgiExternalServer /usr/local/apache/htdocs/fcgi-bin/php-cgi -host 127.0.0.1:9000
AddType application/x-httpd-php .php
AddHandler php-fastcgi .php
Action php-fastcgi /fcgi-bin/php-cgi
<Directory “/usr/local/apache/htdocs/fcgi-bin/”>
SetHandler fastcgi-script
Options FollowSymLinks
Order allow,deny
Allow from all
</Directory>
</IfModule>

启动apache。添加phpinfo测试页。测试。

2013-10-09
发表者 Venus
暂无评论

[ERROR] fpm_unix_conf_wp(), line 124: please specify user and group other than root, pool ‘default’

在启动php-fpm的时候报错:

[root@localhost etc]# /usr/local/php/sbin/php-fpm restart
Shutting down php_fpm warning, no pid file found – php-fpm is not running ?
Starting php_fpm Oct 10 06:41:20.292423 [ERROR] fpm_unix_conf_wp(), line 124: please specify user and group other than root, pool ‘default’
…………………………….. failed

提示是没有配置运行时所用的用户和组,找配置文件:

[root@localhost etc]# vi /usr/local/php/etc/php-fpm.conf

Unix user of processes
<!–    <value name=”user”>nobody</value>                               –>

Unix group of processes
<!–    <value name=”group”>nobody</value>              –>

红色部分改为:

Unix user of processes
<value name=”user”>www</value>

Unix group of processes
<value name=”group”>www</value>

(这里的www是我创建的用户用来运行apache的账户)

重新启动即可。