分布式监控系统Zabbix-3.0.3-lnmp安装记录
安装步骤:1、使用putty或类似的SSH工具登陆VPS或服务器;
登陆后运行:screen -S lnmp
如果提示screen: command not found 命令不存在可以执行:yum install screen 或 apt-get install screen安装。
---------设置代理上网------------------------------------------------------------------------
1.1. 全局的代理设置:# vi /etc/profile
export http_proxy=http://username:password@yourproxy:8080/
export ftp_proxy=http://username:password@yourproxy:8080/
1.2. yum的代理设置:#vi /etc/yum.conf
proxy = http://username:password@yourproxy:8080/或者
proxy=http://yourproxy:808
proxy=ftp://yourproxy:808
proxy_username=username
proxy_password=password
1.3. Wget的代理设置:#vi /etc/wgetrc
http_proxy=http://username:password@proxy_ip:port/
ftp_proxy=http://username:password@proxy_ip:port/export http_proxy=http://oa:123@10.109.131.1:8005/export ftp_proxy=ftp://oa:123@10.109.131.1:8005/
测试:wget http://www.sourcesforget.com/compiz_manager.deb
---------设置yum源---------------------------------------------------------------# mount /dev/cdrom /media/mount: block device /dev/sr0 is write-protected, mounting read-only
# vim /etc/yum.repos.d/server.repo
name=RHEL6.0 Server
baseurl=file:///media/Server/
enabled=1
gpgcheck=0
2、下载并安装LNMP一键安装包:
您可以选择使用下载版(推荐国外或者美国VPS使用)或者完整版(推荐国内VPS使用),两者没什么区别,只是完整版把一些需要的源码文件预先放到安装包里。
LNMP源下载:https://lnmp.org/download.html # yum install gcc -y安装LNMP执行:wget -c http://soft.vpser.net/lnmp/lnmp1.2-full.tar.gz && tar zxf lnmp1.2-full.tar.gz && cd lnmp1.2-full && ./install.sh lnmp如需要安装LNMPA或LAMP,将./install.sh 后面的参数替换为lnmpa或lamp即可。按上述命令执行后,会出现如下提示:
需要设置MySQL的root密码(不输入直接回车将会设置为root),输入后回车进入下一步,如下图:
这里需要确认是否启用MySQL InnoDB,如果不确定是否启用可以输入 y ,输入 y 表示启用。默认为y 启用,输入后回车进入下一步,选择MySQL版本:
输入MySQL或MariaDB版本的序号,回车进入下一步,选择PHP版本
输入PHP版本的序号,回车进入下一步,选择是否安装内存优化:
可以选择不安装、Jemalloc或TCmalloc,输入对应序号回车。如果是LNMPA或LAMP的话还需要设置管理员邮箱再选择Nginx版本提示"Press any key to install...or Press Ctrl+c to cancel"后,按回车键确认开始安装。
LNMP脚本就会自动安装编译Nginx、MySQL、PHP、phpMyAdmin、Zend Optimizer这几个软件。安装时间可能会几十分钟到几个小时不等,主要是机器的配置网速等原因会造成影响。
3、安装完成
如果显示Nginx: OK,MySQL: OK,PHP: OK
并且Nginx、MySQL、PHP都是running,80和3306端口都存在,并Install lnmp V1.2 completed! enjoy it.的话,说明已经安装成功。
接下来按添加虚拟主机教程,添加虚拟主机,通过sftp或ftp服务器上传网站,将域名解析到VPS或服务器的IP上,解析生效即可使用。
LNMP相关软件安装目录
Nginx 目录:/usr/local/nginx/
MySQL 目录 :/usr/local/mysql/
MySQL数据库所在目录:/usr/local/mysql/var/
MariaDB 目录 : /usr/local/mariadb/
MariaDB数据库所在目录:/usr/local/mariadb/var/
PHP目录 : /usr/local/php/
PHPMyAdmin目录 : 0.9版为/home/wwwroot/phpmyadmin/ 1.0版为 /home/wwwroot/default/phpmyadmin/ 强烈建议将此目录重命名为其不容易猜到的名字。phpmyadmin可自己从官网下载新版替换。
默认网站目录 : 0.9版为 /home/wwwroot/ 1.0版为 /home/wwwroot/default/
Nginx日志目录:/home/wwwlogs/
/root/vhost.sh添加的虚拟主机配置文件所在目录:/usr/local/nginx/conf/vhost/
PureFtpd 目录:/usr/local/pureftpd/
PureFtpd web管理目录: 0.9版为/home/wwwroot/default/ftp/ 1.0版为 /home/wwwroot/default/ftp/
Proftpd 目录:/usr/local/proftpd/
Redis 目录:/usr/local/redis/LNMP相关配置文件位置
Nginx主配置文件:/usr/local/nginx/conf/nginx.conf
/root/vhost.sh添加的虚拟主机配置文件:/usr/local/nginx/conf/vhost/域名.conf
MySQL配置文件:/etc/my.cnf
PHP配置文件:/usr/local/php/etc/php.ini
php-fpm配置文件:/usr/local/php/etc/php-fpm.conf
PureFtpd配置文件:/usr/local/pureftpd/pure-ftpd.conf
PureFtpd MySQL配置文件:/usr/local/pureftpd/pureftpd-mysql.conf
Proftpd配置文件:/usr/local/proftpd/etc/proftpd.conf
Proftpd 用户配置文件:/usr/local/proftpd/etc/vhost/用户名.conf
Redis 配置文件:/usr/local/redis/etc/redis.confLNMPA相关目录文件位置
Apache目录:/usr/local/apache/
Apache配置文件:/usr/local/apache/conf/httpd.conf
Apache虚拟主机配置文件目录:/usr/local/apache/conf/vhost/
http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.0.3/zabbix-3.0.3.tar.gz创建Zabbix运行的用户:
# groupadd zabbix
# useradd -g zabbix zabbix安装libcurl和net-snmp:
# yum install net-snmp-devel curl-devel安装Fping:
# cd /usr/local/src
# wget -c http://fping.org/dist/fping-3.4.tar.gz
# tar zxvf fping-3.4.tar.gz
# cd fping-3.4
# ./configure
# make && make install
# chown root:zabbix /usr/local/sbin/fping
# chmod 4710 /usr/local/sbin/fping
安装Zabbix Server:
# cd /usr/local/src
# wget -chttp://sourceforge.net/projects/ ... zabbix-3.0.3.tar.gz
# tar zxvf zabbix-3.0.3.tar.gz
# cd zabbix-3.0.3
# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl注意:编译时最好带上--enable-java这个参数,方便后续监控tomcat程序所用,生产环境可去掉。
# make && make install---------安装Zabbix报错---------------------------------------------------------------configure: error: Jabber library not found#yum installiksemel-devel 即可,configure: error: LIBXML2 library not found#yuminstall libxml2-develconfigure: error: unixODBC library not found#yuminstall unixODBC-develconfigure: error: Invalid OPENIPMI directory - unable to findipmiif.h#yum install OpenIPMI-develconfigure:error: Unable to find "javac" executable in path#yum install java*具体什么包没找,直接通配,生产环境可去掉--enable-java选项configure: error: Curl library not found# yum install curl-devel
Zabbix Server配置与启动
创建Zabbix数据库和MySQL用户:
# mysql -p
........
mysql> create schema zabbix character set utf8;
Query OK, 1 row affected (0.05 sec)
mysql> create user 'zabbix'@'%' identified by '123456';
Query OK, 0 rows affected (0.16 sec)
mysql> grant all on zabbix.* to 'zabbix'@'%';
Query OK, 0 rows affected (0.03 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.04 sec)导入Zabbix初始数据:
切换到zabbix的解压目录下,这里是/usr/local/src目录下
# cd /usr/local/src
# cd zabbix-3.0.3
#cd database/mysql/
# pwd
/usr/local/src/zabbix-3.0.3/database/mysql
# ls
data.sql images.sql schema.sql
# mysql -uroot -p #登陆mysql,进行zabbix初始数据导入
mysql> set sql_log_bin=0;
mysql> use zabbix;
mysql> source ./schema.sql;
mysql> source ./images.sql;
mysql> source ./data.sql;
mysql> set sql_log_bin=1;
---------导入数据库报错-----------------------------------------ERROR 1046 (3D000): No database selected 未创建数据库编辑/usr/local/zabbix/etc/zabbix_server.conf:
#vim /usr/local/zabbix/etc/zabbix_server.conf
LogFile=/usr/local/zabbix/logs/zabbix_server.log
PidFile=/usr/local/zabbix/logs/zabbix_server.pid
DBHost=192.168.1.30
DBName=zabbix
DBUser=zabbix
DBPassword=123456
DBPort=3306
FpingLocation=/usr/local/sbin/fping从安装目录拷贝zabbix_server脚本,并编辑:
# cd /usr/local/src
# cd zabbix-3.0.3
# cp misc/init.d/fedora/core5/zabbix_server /etc/init.d/
# mkdir -p /usr/local/zabbix/logs
# chown -R zabbix:zabbix /usr/local/zabbix
# vim /etc/init.d/zabbix_server
# cat /etc/init.d/zabbix_server
...
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_server"
CONF_FILE="/usr/local/zabbix/etc/zabbix_server.conf"
...
start() {
...
daemon $ZABBIX_BIN -c $CONF_FILE
...
}调整防火墙规则(开放端口10051):
# vim /etc/sysconfig/iptables
...
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10051 -j ACCEPT
...# /etc/init.d/iptables restart启动Zabbix Server:
# service zabbix_server start #也可以直接/usr/local/zabbix/sbin/zabbix_server方式启动
Starting Zabbix Server: [ OK ]停止Zabbix Server:
# service zabbix_server stop
Stopping Zabbix Server: [ OK ]配置开机自动启动:
# chkconfig --add zabbix_server
# chkconfig --level 35 zabbix_server onZabbix的Web前端
在安装目录将frontends拷贝到指定的web root:
# mkdir -p /data/www/zabbix
# cd /usr/local/src
# cd zabbix-3.0.3
#cp -a frontends/php/* /data/www/zabbix/
# chown -R www:www /data/www/zabbixNginx配置:
# cat /usr/local/nginx/conf/vhost/zabbix.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
server {
listen 80;
server_namezabbix.zrwm.com;
location / {
root /data/www/zabbix;
indexindex.php index.html index.htm ;
} error_page 500 502 503 504/50x.html;
location = /50x.html {
root html;
}
location ~ .php$ {
root /data/www/zabbix;
fastcgi_pass 127.0.0.1:9000;
fastcgi_indexindex.php;
fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
include fastcgi_params;
}
}
php.ini配置:
# cat /usr/local/php5/etc/php.ini
...
memory_limit = 128M
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
session.auto_start = 0 ; //必须为0
mbstring.func_overload = 0
...
注:PHP需要至少开启扩展:gd,bcmath,ctype,libXML,xmlreader,xmlwriter,session,sockets,mbstring,gettext,mysql
如下,查看是否包括了上面所提到的扩展模块
# /usr/local/php5/bin/php -m
bcmath
Core
ctype
curl
date
dom
ereg
fileinfo
filter
ftp
gd
gettext
hash
iconv
json
libxml
mbstring
mcrypt
mysql
mysqli
openssl
pcntl
pcre
PDO
pdo_sqlite
Phar
posix
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
sysvsem
tokenizer
xml
xmlreader
xmlrpc
xmlwriter
zip
zlib
修改网页路径# vim /usr/local/nginx/conf/nginx.conf... ##root/home/wwwroot/default;
root/data/www/zabbix;...# lnmp restart访问Web界面http://zabbix.zrwm.com,进行相关web配置,配置完成后使用默认用户admin(密码:zabbix)登陆即可.在上面zabbix检索的时候可能出现的错误
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
1)PHP option "max_execution_time" 120 300 failed
# vim /data/php/lib/php.ini
max_execution_time = 300 //修改为300然后重启nginx(若是apache+php,就重启apache)2)PHP bcmath off failed
解决办法:安装php的bcmath扩展
# yum install *bcmath* --skip-broken
# cd /data/software/php-5.6.30/ext/bcmath/
# /data/php/bin/phize
# ./configure --with-php-config=/data/php/bin/php-config
# make && make install
# vim /data/php/lib/php.ini 添加下面内容
.....
extension=/data/php/lib/php/extensions/no-debug-zts-20131226/bcmath.so然后重启php(若是apache+php,就重启apache)3)about always-populate-raw-post-data must be set -1 的问题:
PHP option "always_populate_raw_post_data" onoff failed
解决办法:
# vim /data/vhosts/zabbix/include/classes/setup/CFrontendSetup.php 添加下面这一行
.......
public function checkPhpAlwaysPopulateRawPostData() {
$current = ini_get('always_populate_raw_post_data');
$current = -1; //添加这一行内容 return [
'name' => _s('PHP option "%1$s"', 'always_populate_raw_post_data'),
'current' => ($current != -1) ? _('on') : _('off'),
'required' => _('off'),
'result' => ($current != -1) ? self::CHECK_FATAL : self::CHECK_OK,
'error' => _s('PHP option "%1$s" must be set to "%2$s"', 'always_populate_raw_post_data', -1)
];
二、zabbix客户端的操作记录(192.168.1.7)安装Zabbix,配置Zabbix agent:
# cd /usr/local/src/
# wget -c wget -c http://sourceforge.net/projects/ ... 0.3.tar.gz/download
# cd zabbix-3.0.3
# ./configure --prefix=/usr/local/zabbix --enable-agent
# make && make install# cp misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/配置zabbix_agentd:
# groupadd zabbix
# useradd -g zabbix zabbix
# mkdir -p /usr/local/zabbix/logs
# chown zabbix:zabbix -R /usr/local/zabbix/
# vim /usr/local/zabbix/etc/zabbix_agentd.conf
# cat /usr/local/zabbix/etc/zabbix_agentd.conf
...
PidFile=/usr/local/zabbix/logs/zabbix_agentd.pid
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
Server=192.168.1.30
ListenPort=10050
ServerActive=192.168.1.30
Hostname=192.168.1.7 [#在192.168.1.7本机的/etc/hosts里做主机映射:“iphostname”][也可以设置公网ip]
Timeout=15
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
...配置Zabbix Agent启动脚本:
# cat /etc/init.d/zabbix_agentd
...
prog="Zabbix Agent"
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd"
CONF_FILE="/usr/local/zabbix/etc/zabbix_agentd.conf"
...
start() {
...
daemon $ZABBIX_BIN -c $CONF_FILE
...
}
...开启防火墙端口10050:
# cat /etc/sysconfig/iptables
...
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10050 -j ACCEPT
...
# /etc/init.d/iptables restart启动zabbix_agentd:
# /etc/init.d/zabbix_agentd start
Starting Zabbix Agent: [ OK ]配置开机自动启动:
# chkconfig --add zabbix_agentd
# chkconfig --level 35 zabbix_agentd on测试下zabbix agent是否正常工作:
# /usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd.conf -t system.uptime
system.uptime 到此,zabbix3.0.3监控系统的基本环境安装完成~后续会更新zabbix监控项添加的操作记录,敬请期待~~-----------------------------------------------------------------------------------------------------------------------------登录zabbix,先在“配置”-“主机”里添加主机监控,监控os资源:内存,cpu,io,负载,带宽等.注意:下图中的“主机名称”要和zabbix_agentd.conf文件中设置的“Hostname”后面的名称一致!配置过一段时间后,观察下监控图效果出来了没:
------------------------------------------------------------------------
在zabbix界面中,默认要查看多个主机的监控数据时需要不停的切换。其实可以在一个页面中批量查看多个主机的监控项的数据,这就需要使用Screen方法(Screen 的方法是将每个item的graph放到一个屏幕上,即在聚合图形里选择要放在一个screen里的图形,事先创建一个拓扑图。注意选择磁盘空间监控项的图形时,图形样式调整“层积“显示),但是看起来不够明晰;最好是将各机器的同一item放到同一个graph里。比如一个Nginx的组里有10台机器,将这10台机器的内存使用率放到一个graph里,方便在测试时查看。
在zabbix的前端要创建此类的graph只能通过手工一个一个的加,不能创建此类的templates。在网上有批量创建Screen的针对API的python脚本。-------------------------------------------------------------------------------------------------------------------------
zabbix监控获取数据的途径有简单检查,zabbix agent,snmp。可以通过zabbix agent获取客户机的cpu、内存、磁盘io等监控数据;但是对于交互机(打印机,路由器等网络设备)的监控就要用到snmp协议,snmp通过特定的oid值来获取对应的数据。交换机需要开启snmp协议,通过snmpwalk 可以抓取到数据就可以了(snmpwalk -v 2c -c public *.*.*.*)------------------------------------------------------------------------------------------------------------------------
使用zabbix的ICMP Ping模版实现对客户端网络状态的监控
如上正确安装及配置fping,然后在服务端进行zabbix用户测试fping命令
# /usr/local/sbin/fping www.baidu.com
www.baidu.com is alive //说明命令返回成功。接着在zabbix监控界面里添加主机设置,并选择添加模版template icmp ping。然后点开这个模块,可以选择想要的监控项的图形,效果如下:
页:
[1]