LNMP架构下zabbix的实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LNMP架构下zabbix的实现相关的知识,希望对你有一定的参考价值。

很长时间没有更新了,一个原因是琐事缠身,大部分时间做的都是些没有意义的事,另一个原因是随着年龄的增长,真的是没有那么多的精力。
这几天难得清闲,做了个LNMP下的zabbix,这个文档是留给自己看的,所以是绝对可以实现做出来的。(所有安装包事先下载好,这里就不再多说了)
不废话,上干货:

#安装nginx
yum -y install pcre-devel
tar zxf nginx-1.8.0.tar.gz
cd nginx-1.8.0/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre
make && make install

#安装php
yum -y install bzip2-devel libcurl-devel libxml2-devel gd-devel openjpeg-devel
tar zxf php-5.6.15.tar.gz
cd php-5.6.15
./configure --prefix=/usr/local/php-5.6.15 --with-config-file-path --with-bz2 --with-curl --enable-ftp --enable-sockets --disable-ipv6 --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-gd-native-ttf --with-iconv-dir --enable-mbstring --enable-calendar --with-gettext --with-libxml-dir --with-zlib --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --enable-bcmath --enable-mbstring --enable-sockets
make && make install

#通过范例创建php配置文件
cp ~/php-5.6.15/php.ini-production /usr/local/php-5.6.15/etc/php.ini
cp /usr/local/php-5.6.15/etc/php-fpm.conf.default /usr/local/php-5.6.15/etc/php-fpm.conf

#修改php监听
vim /usr/local/php-5.6.15/etc/php-fpm.conf
listen = /tmp/php.socket
listen.mode = 0660

################修改执行权限 listen.mode = 0660 ###############
chmod 0666 /tmp/php.socket
#启动 php-fpm
/usr/local/php-5.6.15/sbin/php-fpm -c /usr/local/php-5.6.15/etc/php.ini
#############################################################

########先卸载掉mariadb
yum -y remove mariadb

#########安装mysql
tar xf mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
cd /usr/local
ln -sv mysql-5.6.27-linux-glibc2.5-x86_64 mysql

#创建数据存放目录及用 户
mkdir -p /data/mysql
groupadd mysql
useradd -g mysql -M -s /sbin/nologin mysql
chown -R mysql.mysql /data/mysql
chown -R mysql.mysql /usr/local/mysql

#创建mysql配置文件及启动脚本
#cd /usr/local/mysql
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

#vim /etc/my.cnf

[mysqld]
datadir=/data/mysql
socket=/tmp/mysql.sock
user=mysql
character-set-server=utf8
max_connections=1024
default_storage_engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

symbolic-links=0
innodb_buffer_pool_size = 2048M
log_bin=mysql-bin
binlog_format=mixed
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

##########生成启动服务
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld

chmod +x /etc/rc.d/init.d/mysqld
###初始化数据库 ###注意:一定要在/usr/local/mysql目录下运行,否则会报错 “FATAL ERROR: Could not find ./bin/my_print_defaults” 原因是使用的相对路径

#初始化数据库
cd /usr/local/mysql
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

#对数据库进行安全检查
mysql_secure_installation 初始化 输入root密码

############启动数据库
systemctl stop mariadb
systemctl disable mariadb
systemctl mask mariadb
systemctl start mysqld
systemctl enable mysqld

###########系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,需要映射一个链接到/usr/bin目录下,相当于建立一个链接文件
ln -s /usr/local/mysql/bin/mysql /usr/bin

#查一下数据库里有没有 mysql.innodb_table_stats 如果没有,要通过脚本加进去,否则后面zabbix无法正常使用
#mysql
mysql> use mysql;
mysql> source /usr/local/mysql/share/mysql_system_tables.sql;

##########创建 zabbix 库及用户并授权
###grant all privileges on zabbix.* to ‘‘@localhost identifieded by ‘‘; ######为本地所有用户赋权
######上面这个只是例子,还是按照下面的命令执行####################

mysql
#以下为对mysql数据库进行操作
mysql> create database zabbix;
mysql> grant all privileges on zabbix.* to [email protected] identified by ‘zabbix‘;
mysql> flush privileges;

#安装 jdk、监控 tomcat 需要
rpm -ivh jdk-8u25-linux-x64.rpm

#安装依赖包
yum -y install net-snmp-devel mysql-devel

#安装 zabbix_server
tar zxvf zabbix-3.0.28.tar.gz
cd zabbix-3.0.28/
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --enable-java
make && make install

#创建用户
groupadd zabbix
useradd -g zabbix zabbix

#导入数据
cd /root/zabbix-3.0.28/database/mysql
mysql -uzabbix -pzabbix zabbix<schema.sql
mysql -uzabbix -pzabbix zabbix<images.sql
mysql -uzabbix -pzabbix zabbix<data.sql

#修改配置文件
cd /usr/local/zabbix/
#vim /usr/local/zabbix/etc/zabbix_server.conf
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix

#做一个软连接,否则启动zabbix_server 时会报找不到数据库文件
mkdir /var/lib/mysql
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

#启动 zabbix_server
/usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf

#ZABBIX web 安装
#前端文件拷贝
mkdir /data/www
cd ~/zabbix-3.0.28/frontends/php/
cp -rf * /data/www/
useradd nginx
chown -R nginx.nginx /data/www

#配置nginx
vim /usr/local/nginx/conf/nginx.conf
#配置文件修改-----原有的不动
#在前面添加一项。否则/tmp/php.socket 会因为权限问题造成nginx无法访问
user root;
#后面的也要修改
server
listen 80;
server_name localhost;
index index.html index.php index.htm; #这个是要加的
root /data/www; #这个是要加的
location /
try_files $uri $uri/ /index.php?$args; #这个是要加的

location ~ ^(.+.php)(.)$
fastcgi_split_path_info ^(.+.php)(.
)$;
include fastcgi.conf;
fastcgi_pass unix:/tmp/php.socket;
fastcgi_index index.php;
fastcgi_param PATH_INFO $fastcgi_path_info;

############创建 nginx 用户
useradd nginx
###########启动 nginx
/usr/local/nginx/sbin/nginx

#浏览器 http://localhost/setup.php
#下一步

#修改php.ini
vim /usr/local/php-5.6.15/etc/php.ini

####在末行加入
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/shanghai
always_populate_raw_post_data = -1

#重启php
ps -aux | grep php
kill -9
/usr/local/php-5.6.15/sbin/php-fpm -c /usr/local/php-5.6.15/etc/php.ini

#############################浏览器设置#############################
#下一步
#设置数据库: mysql localhost 0 zabbix zabbix zabbix
#下一步 localhost 10051 ZABBIX
#浏览器验证
#如果提示不能创建配置文件,可以按提示把配置文件download下来

zabbix 客户端安装
1 直接 yum 安装
#yum -y install http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-agent-2.4.7-1.el6.x86_64.rpm
2 修改配置文件
#vim /etc/zabbix/zabbix_agentd.conf
Server=10.1.13.46
ServerActive=10.1.13.46
Hostname=app1
HostMetadataItem=system.uname
3 启动 zabbix-agent
#service zabbix-agent start
4 在 zabbix 上查看,主机已自动添加监控

############补充:如何让服务随系统自动启动########
vim ~/lnmp.sh
#!/bin/bash
#php
/usr/local/php-5.6.15/sbin/php-fpm -c /usr/local/php-5.6.15/etc/php.ini
#mysql
systemctl restart mysqld
#nginx
/usr/local/nginx/sbin/nginx
#zabbix server
/usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf

#在rhel7中,/etc/rc.d/rc.local的权限被降低了,所以需要执行如下命令赋予其可执行权限
chmod +x /etc/rc.d/rc.local
#然后把自定义脚本加入到rc.local中
bash /root/lnmp.sh

以上是关于LNMP架构下zabbix的实现的主要内容,如果未能解决你的问题,请参考以下文章

在LNMP架构中搭建zabbix监控服务!!!

LNMP架构搭建

LINUX——监控服务zabbix部署(立于lnmp架构之上),服务配置,数据监控及告警自动化

LNMP编译安装的架构中安装zabbix(php支持库的问题很多)

redis服务环境下mysql如何实现lnmp架构缓存

LNMP架构的搭建