基于LNMP环境安装Zabbix
Zabbix
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。zabbix由2部分构成,zabbix server与可选组件zabbix agent。zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
搭建Zabbix监控环境
要想搭建一个Zabbix的工作环境,需要从服务器入手。与服务器通信,管理员需要使用一个Zabbix前端界面,与Zabbix服务器和数据库进行通信。三个关键(界面、服务器和数据库)可以安装在同一台服务器上,但是如果你拥有一个更大更复杂的环境,将它们安装在不同的主机上也是一个选项。Zabbix服务器能够直接监控到同一网络中的设备,如果其他网络的设备也需要被监控,那还需要一台Zabbix代理服务器。
方案执行:
搭建前提,用脚本一键搭建LNMP环境(centos7)
# cat LNMP.sh
#!/bin/bash
RETVAL=0
NGINX="/usr/local/nginx/sbin/nginx"
PHP="/usr/local/php/sbin/php-fpm"
nginx_install(){
#安装软件依赖包
yum -y groupinstall "Development Tools" "Server PlatformDeveopment"
yum -y install openssl-devel pcre-devel
cd /usr/local/src
yum install -y wget
#下载nginx包
wget http://nginx.org/download/nginx-1.12.0.tar.gz
useradd nginx #添加nginx运行的用户
tar zxvf nginx-1.12.0.tar.gz
cd nginx-1.12.0/
#安装nginx包
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx--with-http_ssl_module --with-http_flv_module --with-http_stub_status_module--with-http_gzip_static_module --with-pcre
#编译安装
make && make install
RETVAL=$?
if [ $RETVAL -eq 0 ]
then
/usr/local/nginx/sbin/nginx#启动nginx
else
echo "nginx编译失败"
fi
}
nginx_check(){
if [ -f $NGINX -a -x $NGINX ]
then
/usr/local/nginx/sbin/nginx -t #检查nginx
RETVAL=$?
if [ $RETVAL -eq 0 ]
then
echo "nginx检查完毕"
/usr/local/nginx/sbin/nginx
netstat -ntlp | grep nginx
RETVAL=$?
if [ $RETVAL -eq 0 ]
then
echo "nginx启动成功"
else
echo "nginx启动失败"
fi
else
echo "please check your nginx"
fi
else
echo "nginx不存在或者没有权限"
fi
}
php-fpm_install(){
cd /usr/local/src
#下载依赖包
yum -y install libmcrypt-devel bzip2-devel gcc openssl-devel php-mcryptlibmcrypt libxml2-devel libjpeg-devel libpng-devel freetype-devel
#下载php包
wget http://cn2.php.net/distributions/php-5.5.38.tar.gz
tar zxvf php-5.5.38.tar.gz
cd php-5.5.38/
#安装php包
./configure --prefix=/usr/local/php --with-mysql=mysqlnd--with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-mbstring--with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib--with-libxml-dir=/usr --enable-xml --enable-sockets --with-mcrypt--with-bz2 --enable-fpm --with-gd
#编译安装
make && make install
RETVAL=$?
if [ $RETVAL -eq 0 ]
then
#开始一些配置步骤
cp /usr/local/src/php-5.5.38/php.ini-production/usr/local/php/etc/php.ini
mv /usr/local/php/etc/php-fpm.conf.default/usr/local/php/etc/php-fpm.conf
#创建php用户
useradd -M -s /sbin/nologin php
#修改相关配置
sed -i -e 's\;pid = run/php-fpm.pid\pid = run/php-fpm.pid\g' -e's\nobody\php\g' -e 's\listen = 127.0.0.1:9000\listen = 0.0.0.0:9000\g'/usr/local/php/etc/php-fpm.conf
sed -i 's\;daemonize = yes\daemonize = no\g' /usr/local/php/etc/php-fpm.conf
#启动php
/usr/local/php/sbin/php-fpm &
else
echo "php编译失败"
fi
}
php-fpm_check(){
if [ -x $PHP -a -x $PHP ]
then
/usr/local/php/sbin/php-fpm -t
RETVAL=$?
if [ $RETVAL -eq 0 ]
then
echo "php检查完毕"
/usr/local/php/sbin/php-fpm &
netstat -ntlp | grep php-fpm
RETVAL=$?
if [ $RETVAL -eq 0 ]
then
echo "php启动成功"
else
echo "php启动失败"
fi
else
echo "please check yourphp"
fi
else
echo "php不存在或者没有权限"
fi
}
mysql_install(){
#安装mysql
yum groupinstall-ymariadb-server mariadb
systemctl restart mariadb
RETVAL=$?
if [ $RETVAL -eq 0 ]
then
systemctl enable mariadb
#修改root用户密码
mysqladmin -u root password "0"
# #创建一个wordpress数据库
# mysql -u root -p0 -e "create database wordpress"
# mysql -u root -p0 -e"show databases"
#给数据库授权
mysql -uroot -p0 -e "grant all privileges on *.* to 'root'@'%'identified by '0'; FLUSH PRIVILEGES;"
else
echo "mysql启动失败"
fi
}
mysql_check(){
rpm -qa | grep mariadb
RETVAL=$?
if [ $RETVAL -eq 0 ]
then
systemctl status mariadb
RETVAL=$?
if [ $RETVAL -eq 0 ]
then
echo "mysql正在运行中"
else
echo "未运行mysql"
fi
else
echo "未安装mysql"
fi
}
case "$1" in
nginx)
if [ ! -f $NGINX ]
then
nginx_install
nginx_check
else
echo "已经安装nginx了"
fi
;;
php-fpm)
if [ ! -f $PHP ]
then
php-fpm_install
php-fpm_check
else
echo "已经安装php了"
fi
mysql)
rpm -qa | grep mariadb
RETVAL=$?
if [ $RETVAL -eq 0 ]
then
mysql_install
mysql_check
else
echo "已经安装mysql了"
fi
;;
esac 查看服务是否启动
# netstat -ntlp
Active Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 111792/mysqld
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 18548/nginx: worker
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1508/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2118/master
tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN 18378/php-fpm: mast
tcp6 0 0 :::22 :::* LISTEN 1508/sshd
tcp6 0 0 ::1:25 :::* LISTEN 2118/master 部署完lnmp环境后接下来安装zabbix
开始安装zabbix
1.首先安装依赖包
# yum install make gcc net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmath php-mbstring php-xml OpenIPMI-devel libxml2-devel
2.创建zabbix账户
# useradd zabbix -s /sbin/nologin
3.创建zabbix数据库,并赋予权限
# mysql -uroot -p0
Welcome to the MariaDB monitor.Commands end with ; or \g.Your MariaDB connection id is 153Server version: 5.5.56-MariaDB MariaDB ServerCopyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help.
Type '\c' to clear the current input statement.
MariaDB [(none)]>create database zabbix character set utf8 collate utf8_bin;
Query OK, 0 rows affected (0.00 sec
MariaDB [(none)]> grant all on zabbix.* to zabbix@localhost identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec) 4.下载zabbix,解压并导入数据库
# wget https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.2.7/zabbix-3.2.7.tar.gz # tar xf zabbix-3.2.7.tar.gz
# cd zabbix-3.2.7
# cd zabbix-3.2.7/database/mysql/
# mysql -uzabbix -pzabbix zabbix < schema.sql
# mysql -uzabbix -pzabbix zabbix < images.sql
# mysql -uzabbix -pzabbix zabbix < data.sql
5.编译安装zabbix_server
# ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-unixodbc --prefix=/usr/local/zabbix
# make && make install
6.修改nginx配置文件,指定(创建)目录和支持php
# mkdir /web
# vim /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_namelocalhost;
#charset koi8-r;
#access_loglogs/host.access.logmain;
location / {
root /web;
indexindex.php index.html index.htm;
}
location ~ \.php$ {
root /web;
fastcgi_pass 127.0.0.1:9000;
fastcgi_indexindex.php;
fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
include fastcgi_params;
} 7.重新加载nginx
# /usr/local/nginx/sbin/nginx -s reload
8.修改zabbix对应文件的数据库账号和密码
# vim /usr/local/zabbix/etc/zabbix_server.conf
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix 9.复制启动项脚本,并修改相应参数
# cd /usr/local/src/zabbix-3.2.7
# cp misc/init.d/fedora/core5/zabbix_server /etc/init.d/
# cp misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/
# vim /etc/init.d/zabbix_server
将ZABBIX_BIN="/usr/localsbin/zabbix_server"
改为ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_server"
# vim /etc/init.d/zabbix_agentd
将ZABBIX_BIN="/usr/localsbin/zabbix_agentd"
改为ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd"
10.启动并设置开机自启
# /etc/init.d/zabbix_server start
Starting zabbix_server (via systemctl): [ 确定]
# /etc/init.d/zabbix_agentd start
Starting zabbix_agentd (via systemctl): [确定]
# chkconfig zabbix_server on
# chkconfig zabbix_agentd on
11.修改php.ini支持的文件大小等,不然zabbix网页容易报错
# vim /etc/php.ini
max_execution_time = 300
max_input_time = 300
date.timezone =Asia/Shanghai
post_max_size = 32M 12.重启nginx和php,使修改的参数生效
# /usr/local/nginx/sbin/nginx -s reload
#/usr/local/php/sbin/php-fpm -c /etc/php.ini &
13.复制zabbix的php项目到nginx目录下,并给权限
# cd /usr/local/src/zabbix-3.2.7/frontends
# cp -rf php /web/zabbix
# chown -R nginx:nginx /web/zabbix
14.接着开始访问web:http://IP/zabbix
①报错,需要安装php的扩展bcmath,并重新编译
https://s4.运维网.com/oss/201711/01/ea65f2f33657c6e6801b6c9392e79a0c.png-wh_500x0-wm_3-wmp_4-s_809872524.png
解决方法:
# cd /usr/local/src/php-5.5.38/ext/bcmath/
# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20121113
Zend Module Api No: 20121212
Zend Extension Api No: 220121212
#
# ./configure --with-php-config=/usr/local/php/bin/php-config
# make && make install
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/
# vim /etc/php.ini
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/bcmath.so
重启php
# /usr/local/php/sbin/php-fpm -c /etc/php.ini & (重启php)
②接着会有以下错误
https://s4.运维网.com/oss/201711/01/1c63732a748e0c3d292496926f3c18e9.png-wh_500x0-wm_3-wmp_4-s_1017027173.png
解决方法:
# ln -s /var/lib/mysql/mysql.sock /tmp/
# vim /etc/php.ini
mysqli.default_socket =/var/lib/mysql/mysql.sock
# /usr/local/php/sbin/php-fpm -c /etc/php.ini &
③接着默认下一步按照提示即可(熟悉的界面-用户:Admin 密码:zabbix)
https://s5.运维网.com/oss/201711/01/355eeb922c4c4bbe328be138ee365065.png-wh_500x0-wm_3-wmp_4-s_3802923894.png
④修改为中文(php是模块化的语言,进入gettext文档单独编译gettext模块)
# cd /usr/local/src/php-5.5.38/ext/gettext/
# /usr/local/php/bin/php
# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20121113
Zend Module Api No: 20121212
Zend Extension Api No: 220121212
# ./configure --with-php-config=/usr/local/php/bin/php-config
# make && make install
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/
# vim /etc/php.ini
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/gettext.so
# /usr/local/php/sbin/php-fpm -c /etc/php.ini & (重启php)
#然后到图形界面的右上角点击admin用户,切换中文
https://s5.运维网.com/oss/201711/01/085daa019e1c4a3209bf12d1e3f04436.png-wh_500x0-wm_3-wmp_4-s_1740664662.png
⑤解决中文乱码问题
https://s3.运维网.com/oss/201711/01/5a4d055d1ab1b6fd05d5a67c2db33ae5.png-wh_500x0-wm_3-wmp_4-s_1430366870.png
找到本地C:\Windows\Fonts\simkai.ttf(楷体)上传到服务器zabbix目录fonts,将原有的字体替换掉
# cd /web/zabbix/fonts/
# ls
DejaVuSans.ttf
# rz
# ls
DejaVuSans.ttfsimkai.ttf
# mv simkai.ttf DejaVuSans.ttf
mv:是否覆盖"DejaVuSans.ttf"? y
#
修改后刷新查看:
https://s2.运维网.com/oss/201711/01/ed75b45971f6d7627b64610e81e3bca6.png-wh_500x0-wm_3-wmp_4-s_2003333212.png
Zabbix安装完成。。。。。。
页:
[1]