Centos 搭建 Zabbix(nginx+php+mysql) 服务

2017-01-05 11:14:14来源:oschina作者:诸葛孔明亮人点击

一、简介



Alexei Vladishev 创建了 Zabbix 项目

Zabbix 是一个企业级的、开源的、分布式的监控套件;


二、zabbix 进程构成



默认 zabbix 包含5个进程:

zabbix_agentd:客户端守护进程,收集客户端数据,例如 cpu 负载、内存、硬盘使用情况;


zabbix_get:zabbix 工具,单独使用命令,通常在 server 或者 proxy 端执行,用户获取被监控端数据,命令方式获取客户端数据,用于排错;


zabbix_proxy:zabbix 代理守护进程,功能类似 server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到 server 里;


zabbix_server:zabbix 服务端守护进程,其他的进程的数据都最终提交到 server,备注:数据都不是主动提交给 zabbix_server,大都是 server 主动去取数据;


zabbix_sender:zabbix 工具,用于发送数据给 server 或 proxy,通常用于耗时比较长的 check,并且与 trapper 配合使用;


zabbix_java_gateway(需另外安装):java 网关,类似 agents,只用与 java ,只能主动去获取数据,而不能被动获取数据;

三、安装


时间同步:安装 Zabbix 服务需确保所有服务器的时间都是正确的,可以添加 crontab 同步时间:


yum install ntpdate


cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime


00 00 * * * /usr/sbin/ntpdateus.pool.ntp.org| logger -t NTP

LNMP 环境配置


1、Nginx 安装


1)安装必要软件


yum install pcre pcre-decel openssl openssl-devel gcc make cmake gcc-c++


2) 编译安装 nginx


下载 nginx-1.10.1.tar.gz


tar zxvf nginx-1.10.1.tar.gz && cd nginx-1.10.1


./configure --prefix=/usr/local/nginx-1.10.1 --with-http_ssl_module --with-http_stub_status_module --with-pcre


参数详细信息参考 README


编译无报错:


make && make install


/usr/local/nginx-1.10.1/sbin/nginx


/usr/local/nginx-1.10.1/sbin/nginx -s reload


/usr/local/nginx-1.10.1/sbin/nginx -s stop

2、编译安装 php


1)下载


yum install gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel


tar -zxvf php-5.6.23.tar.gz


cd php-5.6.23


./configure --prefix=/usr/local/php-5.6.23 --with-config-file-path=/usr/local/php-5.6.23/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 --with-libxml-dir=/usr/local --with-zlib --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --enable-bcmath

zabbix 对于 php参数、php模块有特殊的要求,编译 php 时要注意加上;


并且对安装完成的 php.ini 文件中要特别修改:(zabbix 要求)


max_execution_time = 300


memory_limit = 128M


post_max_size = 16M


upload_max_filesize = 2M


max_input_time = 300


date.timezone = PRC


always_populate_raw_post_data = -1


执行


make && make install


2)配置 php


cp /root/php-5.6.23/php.ini-production /usr/local/php-5.6.23/etc/php.ini


cp /usr/local/php-5.6.23/etc/php-fpm.conf.default /usr/local/php-5.6.23/etc/php-fpm.conf


3)启动 php


/usr/local/php-5.6.23/sbin/php-fpm

3、安装 mysql


1)安装必要组件、下载


yum install autoconf automake imake libxml2-devel expat-devel libaio libaio-devel bzr bison libtool ncurses5-devel

wget -c http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.14-linux-glibc2.5-x86_64.tar.gz/from/http://cdn.mysql.com/ -Omysql-5.6.14-linux-glibc2.5-x86_64.tar.gz


tar zxvf mysql-5.6.14-linux-glibc2.5-x86_64.tar.gz –C ../


ln -s mysql-5.6.14-linux-glibc2.5-x86_64 mysql


2)创建 mysql 用户组和用户、及数据库存放目录


mkdir -p /data/mysq_data


mkdir -p /data/mysql_log


mkdir -p /data/log-bin


groupadd mysql


useradd mysql -g mysql -M -s /sbin/nologin


chown -R mysql.mysql /data/mysql_data /data/mysql_log /data/log-bin


chown -R mysql.mysql /usr/local/mysql-5.6.14-linux-glibc2.5-x86_64


3)配置 my.cnf 根据具体环境配置


############################################################


[mysqld]


# GENERAL #


user = mysql


default-storage-engine = InnoDB


socket = /data/mysql_data/mysql.sock


pid-file = /data/mysql_data/mysql.pid


port = 3306


# MyISAM #


key_buffer_size = 1344M


myisam_recover = FORCE,BACKUP


# SAFETY #


max_allowed_packet = 16M


max_connect_errors = 1000000


skip_name_resolve


# DATA STORAGE #


datadir = /data/mysql_data/


long_query_time = 1


# BINARY LOGGING #


log-bin = /data/log-bin/mysql-bin


expire-logs-days = 14


sync-binlog = 1


server-id = 1


max_binlog_size = 500M


# REPLICATION #


relay-log = /data/log-bin/relay-bin


slave-net-timeout = 60


# CACHES AND LIMITS #


tmp_table_size = 32M


max_heap_table_size = 32M


max_connections = 500


thread_cache_size = 50


open_files_limit = 65535


table_definition_cache = 4096


table_open_cache = 4096


# INNODB #


innodb_data_file_path = ibdata1:128M;ibdata2:10M:autoextend


innodb_flush_method = O_DIRECT


innodb_log_files_in_group = 2


innodb_lock_wait_timeout = 50


innodb_log_file_size = 256M


innodb_flush_log_at_trx_commit = 1


innodb_file_per_table = 1


innodb_thread_concurrency = 8


innodb_buffer_pool_size = 8G


# LOGGING #


log-error = /data/mysql_log/mysql-error.log


log-queries-not-using-indexes = 1


slow-query-log = 1


long_query_time = 1


slow-query-log-file = /data/mysql_log/mysql-slow.log


# FOR SLAVE #


#binlog-format = ROW


#log-slave-updates = true


#gtid-mode = on


#enforce-gtid-consistency = true


#master-info-repository = TABLE


#relay-log-info-repository = TABLE


#sync-master-info = 1


#slave-parallel-workers = 2


#binlog-checksum = CRC32


#master-verify-checksum = 1


#slave-sql-verify-checksum = 1


#binlog-rows-query-log_events = 1


#report-port = 3306


#report-host = 10.1.1.10


############################################################


my.cnf 文件 使用需加上参数 --defaults-file=/etc/my.cnf


my.cnf 文件影响 mysql 启动,其中参数配置过大,可能会因为 mysqld 进程启动占用内存过大而被系统强制 kill 掉;


4)系统服务初始化


cp -af /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql


vi /etc/init.d/mysql


basedir=/usr/local/mysql


datadir=/data/mysql_data

chmod 755 /etc/init.d/mysql


chkconfig -add mysql


chkconfig --level 345 msql on


5)初始化数据库


cd /usr/local/mysql


./scripts/mysql_install_db --user=mysql --defaults-file=/etc/my.cnf


6)启动数据库


service mysql start


7)修改root密码


/usr/local/mysql/bin/mysql -p -u root -S /tmp/mysql.sock


Mysql> delete from mysql.user where user='';


Mysql> update mysql.user set password=PASSWORD('xxxxxxxx') where user='root';


Mysql> flush privileges;


4、安装 zabbix 服务


1)下载安装 zabbix


http://www.zabbix.com/download.php 下载需要的版本


tar -xzvfzabbix-3.0.3.tar.gz


cd zabbix-3.0.3


./configure --prefix=/usr/local/zabbix-3.0.3 --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2


PS:错误可参考http://os.51cto.com/art/201104/252989.htm


make && make install


zabbix server 一般充当两个角色,server、agent(需要监控自己),所以添加了 --enabe-agent

2)创建用户


在 root 环境下运行 zabbix,zabbix 将会主动尝试以 zabbix 身份来运行;


groupadd zabbix


useradd -g zabbix zabbix


3)初始化数据库


zabbix server 与 proxy 需要数据库,agent 不需要,proxy 只需要导入 schema.sql 一个文件即可,server 则需导入三个;


mysql -u root -p123456


mysql> create database zabbix default charset utf8;-----防止中文乱码出现


mysql> quit;


mysql -u root -p 123456 zabbix < database/mysql/scherm.sql


server :


mysql -u root -p 123456 zabbix < database/mysql/images.sql


mysql -u root -p 123456 zabbix < database/mysql/data.sql


4) 配置 zabbix


mkdir /etc/zabbix


cp conf/zabbix_server.conf /etc/zabbix/


vim /etc/zabbix/zabbix_server.conf


DBHost=localhost


DBName=zabbix


DBUser=root


DBPassword=123456


DBPort=3306


5)启动 zabbix server


/usr/local/zabbix-3.0.3/sbin/zabbix_server


default port:10051


5、客户端安装配置


http://www.zabbix.com/download.php


tar -zxvf zabbix-3.0.3.tar.gz


cd zabbix-3.0.3


./configure --prefix=/usr/local/zabbix-3.0.3/ --enable-agent


make && make install


1)客户端配置


vim /usr/local/zabbix-3.0.3/etc/zabbix_agentd.conf


Server=127.0.0.1


ServerActive=127.0.0.1


Hostname=Zabbix server


其中 server 和 serveractive 都指向 zabbixserver 的 ip,不同的是,前者是被动后者是主动,server 配置是用来允许 127.0.0.1 这个 ip 来我这获取数据,而 serverActive 则是客户端主动提交数据给它,主机安装客户端需添加 zabbix 用户;


2)客户端启动


/usr/local/zabbix-3.0.3/zabbix_agentd


default prot: 10050

6、zabbix 管理网站配置


1)拷贝前端文件


mkdir /data/logs/nginx


mkdir /data/site/zabbix


cp -rp /root/zabbix-3.0.3/frontends/php/* /data/site/zabbix


2)配置虚拟主机


vim /usr/local/nginx-1.10.0/conf/nginx.conf


############################################################


server { listen 80; server_name *IP*; access_log /data/logs/nginx/zabbix.access.log main;


index index.html index.php index.html; root /data/site;


location / { try_files $uri $uri/ /index.php?$args; }


location ~ ^(.+/.php)(.*)$ { fastcgi_split_path_info ^(.+/.php)(.*)$; include fastcgi.conf; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param PATH_INFO$fastcgi_path_info; } }


##############################################################


7、在线配置 zabbix


后台nignx、php、zabbix_server 服务都开启


浏览器打开 http://IP/zabbix


按步骤配置完成,zabbix server details 里面 name 可以不填默认即可;


Install 步骤中需下载 zabbix.conf.php 至 /data/site/zabbix/conf 下


8、登录 zabbix


默认 User:Admin /zabbix


9、zabbix 升级


关闭 zabbix server ,防止有新的数据提交到数据库,直接关闭数据库效果也是一样的;


备份配置文件(/etc/zabbix)、php 网站源码、zabbix 二进制文件(整个目录备份即可);


重新下载新版本,然后 configue ---> make && make install


10、zabbix 中文乱码处理


上传 simkai.ttf 到服务器的 /data/site/zabbix/fonts/ 下


修改 zabbixphp 配置文件


cd /data/site/zabbix/include/


sed -i 's/DejaVuSans/simkai/g' ./defines.inc.php

11、zabbix 数据库迁移


zabbix 将从 agent 处获取的数据写入数据库中,数据库空间可能不足,需要迁移,全量导出数据库,迁移至新库,删除 /data/site/zabbix/conf 下的zabbix.conf.php 文件,url :http://IP/zabbix/setup.php 重新设置;

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台