最新在工作中学习到了zabbix,作为刚学的新手,我觉得有必要对自己的安装和部署留下一些记录资料。因为个人喜欢源码包的安装,所以本次我会使用源码包去安装LNMP环境和Zabbix Server 环境。
一. LNMP环境安装
- Nginx源码包安装
- 安装pcre(为了支持rewrite功能)
[root@zabbix-hbb ~]# yum install pcre* -y
- 安装openssl(需要ssl的支持)
[root@zabbix-hbb ~]# yum install openssl* -y
- 安装Nginx(提前准备好安装包解压)
[root@zabbix-hbb ~]# ./configure --prefix=/usr/local/nginx-1.12.2 --with-http_ssl_module --with-http_spdy_module --with-http_stub_status_module --with-pcre
[root@zabbix-hbb ~]# make && make install
- 启动nginx
[root@zabbix-hbb ~]# /usr/local/nginx-1.12.2/sbin/nginx
在网页地址栏输入本机IP,如果显示如下界面,代表Nginx安装完成
MySQL安装
- 安装必要的组件
[root@zabbix-hbb ~]# yum install -y autoconf automake imake libxml2-devel expat-devel cmake gcc gcc-c++ libaio libaio-devel bzr bison libtool ncurses5-devel
- 下载MySQL并解压
[root@zabbix-hbb opt]# 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/ -O mysql-5.6.14-linux-glibc2.5-x86_64.tar.gz
[root@zabbix-hbb opt]# tar -zxf mysql-5.6.14-linux-glibc2.5-x86_64.tar.gz
[root@zabbix-hbb local]# ln -s mysql-5.6.14-linux-glibc2.5-x86_64 mysql
- 创建MySQL用户组和用户,数据库存放目录
[root@zabbix-hbb opt]# mkdir -p /data/mysql_data_3306
[root@zabbix-hbb opt]# mkdir -p /data/mysql_log
[root@zabbix-hbb opt]# mkdir -p /data/log-bin
[root@zabbix-hbb opt]# groupadd mysql
[root@zabbix-hbb opt]# useradd mysql -g mysql -M -s /sbin/nologin
[root@zabbix-hbb opt]# chown -R mysql.mysql /data/mysql_data_3306 /data/mysql_log /data/log-bin
[root@zabbix-hbb opt]# chown -R mysql.mysql /usr/local/mysql-5.6.14-linux-glibc2.5-x86_64
- 修改配置文件
[root@zabbix-hbb local]# vi /etc/my.cnf
[mysqld]
# GENERAL #
user = mysql
default-storage-engine = InnoDB
socket = /data/mysql_data_3306/mysql.sock
pid-file = /data/mysql_data_3306/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_3306/
long_query_time = 1
# BINARY LOGGING #
log-bin = /data/log-bin/mysql-bin-3306
expire-logs-days = 14
sync-binlog = 1
server-id = 1
max_binlog_size = 500M
# REPLICATION #
relay-log = /data/log-bin/relay-bin-3306
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-3306.log
log-queries-not-using-indexes = 1
slow-query-log = 1
long_query_time = 1
slow-query-log-file = /data/mysql_log/mysql-slow-3306.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
- 修改系统服务
[root@zabbix-hbb local]# cp -af /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld_3306
[root@zabbix-hbb local]# vi /etc/init.d/mysqld_3306
修改两处位置:
basedir=/usr/local/mysql
datadir=/data/mysql_data_3306
[root@zabbix-hbb local]# chmod 755 /etc/init.d/mysqld_3306
[root@zabbix-hbb local]# chkconfig --add mysqld_3306
[root@zabbix-hbb local]# chkconfig --level 345 mysqld_3306 on
- 初始化数据库
[root@zabbix-hbb mysql]# ./scripts/mysql_install_db --user=mysql --defaults-file=/etc/my.cnf
- 启动数据库
[root@zabbix-hbb mysql]# service mysqld_3306 start
- 修改数据库密码
[root@zabbix-hbb mysql]# /usr/local/mysql/bin/mysql -p -uroot -S /data/mysql_data_3306/mysql.sock
提示输入密码,直接按enter(空密码)
mysql> delete from mysql.user where user='';
mysql> update user set password=password('1qaz@wsx') where user='root' and host='localhost';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
至此MySQL安装完毕
php安装+连接Nginx
- 安装开发库和必要组件
[root@zabbix-hbb opt]# yum install gcc make gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel -y
[root@zabbix-hbb php-5.6.36]# ./configure --prefix=/usr/local/php-5.5.0 --with-config-file-path=/usr/local/php-5.5.0/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
[root@zabbix-hbb php-5.6.36]# make && make install
- 配置PHP
[root@zabbix-hbb php-5.6.36]# cp php.ini-production /usr/local/php-5.5.0/etc/php-ini
[root@zabbix-hbb php-5.6.36]# cp /usr/local/php-5.5.0/etc/php-fpm.conf.default /usr/local/php-5.5.0/etc/php-fpm.conf
- 启动php-fpm
[root@zabbix-hbb php-5.6.36]# /usr/local/php-5.5.0/sbin/php-fpm
- 至此PHP安装启动完成,接下来配置Nginx
- 配置测试站点
[root@zabbix-hbb php-5.6.36]# mkdir -p /data/logs/nginx/
[root@zabbix-hbb php-5.6.36]# mkdir -p /data/site/test.positecgroup.com/
[root@zabbix-hbb php-5.6.36]# vi /data/site/test.positecgroup.com/info.php
<?php
phpinfo();
?>
- Nginx配置
[root@zabbix-hbb php-5.6.36]# vi /usr/local/nginx-1.12.2/conf/nginx.conf
server {
listen 80;
server_name test.ttlsa.com;
access_log /data/logs/nginx/test.positecgrou.com.access.log main;
index index.php index.html index.html;
root /data/site/test.positecgroup.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;
}
}
在网页输入IP/index.php,如果能显示PHP的界面就表示配置完成!!!
二.LNMP环境就搭建完成了,接下来开始安装zabbix
- 配置PHP参数
[root@zabbix-hbb test.positecgroup.com]# vi /usr/local/php-5.5.0/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
- 安装必须组件
[root@zabbix-hbb test.positecgroup.com]# yum install net-snmp-devel libxml2-devel libcurl-devel mysql-devel libevent-devel -y
- 解压安装zabbix
[root@zabbix-hbb zabbix-3.4.14]# ./configure --prefix=/usr/local/zabbix-3.4.14 --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
root@zabbix-hbb zabbix-3.4.14]# make && make install
- 创建zabbix用户和用户组
[root@zabbix-hbb zabbix-3.4.14]# groupadd zabbix
[root@zabbix-hbb zabbix-3.4.14]# useradd -g zabbix zabbix
- 初始化数据库
zabbix server与proxy需要数据库,angent不需要。尤其要注意的是proxy只需要导入一个sql文件,而server一共要导入3个sql文件。
mysql> create database zabbix default charset utf8;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '1qaz@wsx';
[root@zabbix-hbb zabbix-3.4.14]# /usr/local/mysql/bin/mysql -uroot -p1qaz@wsx zabbix < database/mysql/schema.sql
如果你仅仅是初始化proxy的数据库,那么够了。如果初始化server,那么接着导入下面两个sql
[root@zabbix-hbb zabbix-3.4.14]# /usr/local/mysql/bin/mysql -uroot -p1qaz@wsx zabbix < database/mysql/images.sql
[root@zabbix-hbb zabbix-3.4.14]# /usr/local/mysql/bin/mysql -uroot -p1qaz@wsx zabbix < database/mysql/data.sql
- 配置zabbix
[root@zabbix-hbb zabbix-3.4.14]# mkdir /etc/zabbix
[root@zabbix-hbb zabbix-3.4.14]# cp conf/zabbix_server.conf /etc/zabbix/
[root@zabbix-hbb zabbix-3.4.14]# vi /etc/zabbix/zabbix_server.conf
- 启动zabbix
[root@zabbix-hbb zabbix-3.4.14]# /usr/local/zabbix-3.4.14/sbin/zabbix_server
- zabbix管理网站配置
[root@zabbix-hbb zabbix-3.4.14]# mkdir /data/site/test.positecgroup.com/zabbix
[root@zabbix-hbb zabbix-3.4.14]# cp -rp frontends/php/* /data/site/test.positecgroup.com/zabbix/
至此,zabbix就已经安装结束,在网页中输入:IP/zabbix/setup.php进入PHP图形界面配置,不再多说!!!