LNMP+zabbix分布式监控搭建及版本升级
LNMP+zabbix分布式监控搭建
需要组件:gcc gcc-c++ openssl* pcre pcre-devel gd gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel autoconf automake imake expat-devel cmake libaio libaio-devel bzr bison libtool ncurses5-devel ncurses-devel net-snmp net-snmp-devel curl-devel
1. 安装及配置nginx
# wget http://nginx.org/download/nginx-1.8.1.tar.gz
# tar zxf nginx-1.8.1.tar.gz
# ./configure --prefix=/usr/local/nginx \
--with-http_ssl_module --with-http_spdy_module \
--with-http_stub_status_module --with-pcre
# make && make install
# mkdir /data/logs/nginx -p
# mkdir -p /data/site/www.apicloud.com
# vim /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name www.apicloud.com;
access_log /data/logs/nginx/www.xxx.com.access.log main;
index index.php index.html index.html;
root /data/site/www.xxx.com;
location /
{
try_files $uri $uri/ /index.php?$args;
}
location ~ .*\.(php)?$
{
expires -1s;
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
}
}
# /usr/local/nginx/sbin/nginx
2. 安装php
# wget http://cn2.php.net/distributions/php-5.6.20.tar.gz
# tar zxf php-5.6.20.tar.gz
# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-bz2 --with-curl \
--enable-ftp --enable-sockets --disable-ipv6 --with-gd --with-jpeg-dir=/usr/local \
--with-png-dir=/usr/local --with-freetype-dir=/usr/local --enable-gd-native-ttf \
--with-iconv-dir=/usr/local --enable-mbstring --enable-calendar --with-gettext --enable-pdo\
--with-libxml-dir=/usr/local --with-zlib --with-pdo-mysql=mysqlnd --with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-mysql=/usr/local/mysql --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --enable-bcmath --enable-zip --enable-exif --with-imap-ssl --with-openssl --with-mcrypt --with-fpm-user=www -- with-fpm-group=www
# make && make install
# cp php.ini-production /usr/local/php/etc/php.ini
# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
# vim /usr/local/php/etc/php.ini
max_execution_time = 300
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
max_input_time = 300
date.timezone = PRC
# /usr/local/php/sbin/php-fpm
重启nginx
3. 安装mysql
# wget http://120.52.73.48/jaist.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
# mkdir /usr/local/boost
# mv boost_1_59_0.tar.gz /usr/local/boost/boost_1_59_0.tar.gz
# wget http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.15.tar.gz
# groupadd mysql
# useradd -r -g mysql mysql
# tar zxf mysql-5.7.15.tar.gz
# cd mysql-5.7.15
# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci - DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/data/mysqldb -DMYSQL_TCP_PORT=3306 - DWITH_BOOST=/usr/local/boost/boost_1_59_0.tar.gz
# make && make install
# chown -R mysql:mysql /usr/local/mysql/*
# cd /usr/local/mysql
# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldb(生成新的随机密码) mFR7jRa-9r4/
# cp -f /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
# cp -f /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# vim /etc/profile
PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
# export PATH
# source /etc/profile
# chmod o=rwx /usr/local/mysql
# service mysqld start
# chkconfig --level 2345 mysqld on
# mysql -u root -p (随机密码)
mysql> SET PASSWORD = PASSWORD('123456');
mysql> flush privileges;
4. 安装zabbix
# wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.8/zabbix-2.4.8.tar.gz
# tar zxf zabbix-3.0.3.tar.gz
# cd zabbix-3.0.3
# ./configure --prefix=/usr/local/zabbix/ --enable-server \
--enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --enable-proxy --enable-snmp --with-mbstring
# make && make install
# cp -rp frontends/php/* /data/site/www.apicloud.com/zabbix
# cp -f /usr/local/src/zabbix-3.0.3/misc/init.d/fedora/core5/* /etc/init.d/
# vim /etc/init.d/zabbix_server
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_server"
# vim /etc/init.d/zabbix_agentd
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd"
# chkconfig --add zabbix_server
# chkconfig --add zabbix_agentd
# chkconfig zabbix_server on
# chkconfig zabbix_agentd on
更改zabbix字体:
复制C:\Windows\Fonts(楷体)到/data/site/www.apicloud.com/zabbix/fonts
# cd /data/site/www.apicloud.com/zabbix
# sed -i 's/DejaVuSans/simkai/g' ./include/defines.inc.php
# ln -s /usr/local/mysql/lib/libmysqlclient.so.20 /lib64/
# groupadd zabbix && useradd -r -g zabbix -s /etc/nologin zabbix
初始化数据库:
mysql> create database zabbix default charset utf8;
# mysql -uroot -p zabbix < database/mysql/schema.sql
# mysql -uroot -p zabbix < database/mysql/images.sql
# mysql -uroot -p zabbix < database/mysql/data.sql
# vim /usr/local/zabbix/etc/zabbix_server.conf
DBUser=root
DBPassword=123456
# service zabbix_server start
修改zabbix前端安装文件:
# vim /data/site/www.apicloud.com/zabbix/include/classes/setup/CFrontendSetup.php
添加$current = -1;
public function checkPhpAlwaysPopulateRawPostData() {
$current = ini_get('always_populate_raw_post_data');
$current = -1;
网页安装zabbix-server:
http://ip/zabbix
Database host 127.0.0.1
User root
Password 123456
1.Download the configuration file
2.Save it as "/data/site/www.apicloud.com/zabbix/conf/zabbix.conf.php"
zabbix默认管理账号
user:admin
password:zabbix
如果账号密码错误,需要自行设置密码:
echo -n XXXXX | openssl md5
mysql -uroot -p
use zabbix;
update users set passwd='XXXXXXXXXXXXXXXXXXXXXXXXXXXX' where userid = '1';
5.zabbix客户端配置
# groupadd zabbix && useradd -r -g zabbix -s /etc/nologin zabbix
# tar zxf zabbix-2.4.8.tar.gz
# cd zabbix-2.4.8
# ./configure --prefix=/usr/local/zabbix --enable-agent
# make && make install
# vim /usr/local/zabbix/etc/zabbix_agentd.conf
Server=10.124.151.248 (zabbix_server IP) (被动)
ServerActive=10.124.151.248 (zabbix_server IP) (主动)
Hostname=agent-1 (独立主机名)
# cp -f /usr/local/src/zabbix-2.4.8/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/
# vim /etc/init.d/zabbix_agentd
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd"
# chkconfig --add zabbix_agentd
# chkconfig zabbix_agentd on
# service zabbix_agentd start
iptables -I INPUT -p tcp --dport 10050 -j ACCEPT
service iptables save
注:如果客户端过多可开启自动发现,自动添加到zabbix主机;
6.zabbix的使用
1.主机的添加
配置 —> 主机 —> 创建主机 —> 主机名称(Hostname) —> 可见主机名(随意) —> 群组 —> IP地址 —> 主机模板 —> 搜索模板 —> 添加 —> 添加
2.监控项
一种是链接模板,如果有特殊的需求可以选择手动添加监控项;
第一种:配置 —> 主机 —> 模板 —> 添加 ;
第二种:配置 —> 主机 —> 监控项 —> 创建监控项 —> 监控名称 —> 键值(手动在客户端配置文件里面添加,具体步骤在下面) —> 信息类型 —> 数据类型 —> 间隔秒数 —> 时间间隔(可选) —> 启用
客户端创建键值:
# vim /usr/local/zabbix/etc/zabbix_agentd.conf
UnsafeUserParameters=1
UserParameter=mongodb.node,ps -ef|grep [n]ode|wc -l
格式:UserParameter= name.item, + command
注:自定义监控可能出现first network error, wait for 15 seconds,可更改server和agentd的Timeout=30即可。
3.监控报警
zabbix监控报警流程:zabbix通过监控项监控数据 —> 触发器 —> 动作 —> 用户。
触发器达到触发器预设值或者宕机时就产生动作,根据动作发邮件或者短信,最后发送给指定的用户。
# yum install postfix
# service postfix start
# chkconfig postfix on
邮件报警设置步骤:管理 —> 报警媒介类型 —> 管理 —> 用户 —> Admin —> 报警媒介 —> 添加 —> 配置 —> 动作 —> 创建动作 —> 操作 —> 添加
7.zabbix proxy配置(需要安装mysql)
# groupadd zabbix && useradd -r -g zabbix -s /etc/nologin zabbix
# tar zxf zabbix-2.4.8tar.gz
# cd zabbix-2.4.8
# ./configure --prefix=/usr/local/zabbix --enable-proxy --with-mysql --with-net-snmp --with-libcurl --enable-agent
# make && make install
mysql> create database zabbix_proxy default charset utf8;
# mysql -uroot -p zabbix_proxy < database/mysql/schema.sql
# service mysqld start
# vim /usr/local/zabbix/etc/zabbix_proxy.conf
ProxyMode=0
Server=123.56.22.xx(zabbix_server IP)
DBName=zabbix_proxy
DBUser=zabbixproxy
DBPassword=zabbixproxy
# /usr/local/zabbix/sbin/zabbix_proxy
服务端设置
Server=(proxy IP)
ServerActive=(proxy IP)
Hostname=xxxx (独立主机名)
8.zabbix 2.4.8升级3.X.X
1.备份zabbix前端静态文件
2.备份zabbix安装目录
3.备份整个mysql或者zabbix库
4.上传源码包,并删除原安装目录,编译安装
zabbix动作:
名称
XEMAIL
默认接收人
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
默认信息
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
恢复主旨
恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
恢复信息
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
注意事项:
zabbix代理
系统代理程式名称
主动模式
LNMP+zabbix分布式监控搭建及版本升级的更多相关文章
- Zabbix分布式监控系统实践
https://www.zabbix.com/wiki/howto/install/Ubuntu/ubuntuinstall 环境介绍OS: Ubuntu 10.10 Server 64-bitSer ...
- zabbix分布式监控部署--技术流ken
前言 zabbix proxy可以代替zabbix server检索客户端的数据,然后把数据汇报给zabbix server,并且在一定程度上分担了zabbix server的压力.zabbix pr ...
- 06 Zabbix分布式监控和主被动模式
06 Zabbix分布式监控和主被动模式 zabbix proxy设置 使用zabbix代理的好处 监控拥有不可靠的远程区域 当监控项目数以万计的时候使用代理分担zabbix-proxy压力 简化分布 ...
- Zabbix分布式监控
上一篇:Zabbix的API的使用 zabbix分布式监控 新建一台主机 安装zabbix proxy和数据库 yum -y install mariadb-server zabbix-proxy-m ...
- zabbix 分布式监控及优化
1..zabbix分布式监控,模拟多机房实现监控? 1.有多机房时,需要用到proxy 1.网络不通 2.网络延迟 2.当监控的主机较多时,也可以用proxy来缓解压力 1.安装proxy [root ...
- zabbix分布式监控的部署与win被控端
zabbix是一个分布式监视,管理系统,基于server-clinet架构,可用于监视各种网络服务,服务器和网络机器等状态. server端基于C语言,web管理端Frontend则是基于PHPA制作 ...
- Centos7 zabbix 分布式监控
分布式监控 zabbix Server ===> zabbix agent (只能同一个局域网监控) 分布式监控: a. 分担压力,降低负载 b. 多机房 ...
- zabbix 分布式监控(proxy)源码安装
安装分布式监控(代理节点) 1.下载软件zabbix-3.2.1.tar.gz 1.1 解压 wget http://nchc.dl.sourceforge.net/project/zabbix/ZA ...
- zabbix分布式监控系统安装配置
zabbix简介: zabbix(音同 zæbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵 ...
随机推荐
- FileIputeStream用于读写文件,并且用字节的方式表示出来
package com.Java; import java.io.FileInputStream; import java.io.FileNotFoundException; import java. ...
- 形象化的spring 依赖注入原理
转. IoC就是Inversion of Control,控制反转.在Java开发中,IoC意味着将你设计好的类交给系统去控制,而不是在你的类内部控制.这称为控制反转. 下面我们以几个例子来说明什 ...
- 解决WindowsServer 2008 R2 未注册版一个小时自动强制关机
仅用来学习交流,请大家购买正版,尊重正版版权. 安装了win2008R2,试了很多激活方法,终于激活后,不知道什么原因,过了一段时间后,每隔一段时间就自动关机,查了一下,发现是 wlms.exe在作祟 ...
- linux实用的日志分析脚本
日志分析 随意的tail一个access_log文件,下面是一条经典的访问记录 218.19.140.242 – - [10/Dec/2010:09:31:17 +0800] “GET /query/ ...
- GJM:用C#实现网络爬虫(二) [转载]
上一篇<用C#实现网络爬虫(一)>我们实现了网络通信的部分,接下来继续讨论爬虫的实现 3. 保存页面文件 这一部分可简单可复杂,如果只要简单地把HTML代码全部保存下来的话,直接存文件就行 ...
- ssh: command not found的解决办法
原来是没装ssh的客户端软件,晕死…… yum -y install openssh-clients
- jQuery Transit 过渡效果
jQuery Transit 使用 CSS3 的新特性来实现过渡效果,比默认的.animate方法要顺畅得多. 因为使用 CSS3 进行过渡效果,所以对不支持 CSS3 的浏览器效果有所下降. 语法和 ...
- 优秀的 HTML5 实战教程,提升你的综合开发能力
HTML5 作为下一代网站开发技术,无论你是一个 Web 开发人员或者想探索新的平台的游戏开发者,都值得去研究.借助尖端功能,技术和 API,HTML5 允许你创建响应性.创新性.互动性以及令人惊叹的 ...
- php获取数组第一个值 current()
获取数组第一个元素的值,如果是数字索引那还好,直接$array[0],如果键名是字符串,你又未知这个字符串呢?用current()函数就可以做到. current() 函数返回数组中的当前元素(单元) ...
- Icon Font浅谈
这周继续在弄hybird app 的 UI框架的重构,进行到了编写换肤功能的阶段,而在做换肤之前,我想应该先弄一套框架内置的图标. 而图标无非就是两种做法: 1.图片 使用图片很正常,但是有缺陷的. ...