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)
[root@zxb src]# 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 查看服务是否启动
[root@zxb ~]# 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.首先安装依赖包
[root@zxb ~]# 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账户
[root@zxb ~]# useradd zabbix -s /sbin/nologin
3.创建zabbix数据库,并赋予权限
[root@zxb ~]# 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,解压并导入数据库
[root@zxb src]# wget https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.2.7/zabbix-3.2.7.tar.gz [root@zxb src]# tar xf zabbix-3.2.7.tar.gz
[root@zxb src]# cd zabbix-3.2.7
[root@zxb src]# cd zabbix-3.2.7/database/mysql/
[root@zxb mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql
[root@zxb mysql]# mysql -uzabbix -pzabbix zabbix < images.sql
[root@zxb mysql]# mysql -uzabbix -pzabbix zabbix < data.sql
5.编译安装zabbix_server
[root@zxb zabbix-3.2.7]# ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-unixodbc --prefix=/usr/local/zabbix
[root@zxb zabbix-3.2.7]# make && make install
6.修改nginx配置文件,指定(创建)目录和支持php
[root@zxb ~]# mkdir /web
[root@zxb ~]# vim /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /web;
index index.php index.html index.htm;
}
location ~ \.php$ {
root /web;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
} 7.重新加载nginx
[root@zxb ~]# /usr/local/nginx/sbin/nginx -s reload
8.修改zabbix对应文件的数据库账号和密码
[root@zxb ~]# vim /usr/local/zabbix/etc/zabbix_server.conf
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix 9.复制启动项脚本,并修改相应参数
[root@zxb ~]# cd /usr/local/src/zabbix-3.2.7
[root@zxb zabbix-3.2.7]# cp misc/init.d/fedora/core5/zabbix_server /etc/init.d/
[root@zxb zabbix-3.2.7]# cp misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/
[root@zxb ~]# vim /etc/init.d/zabbix_server
将ZABBIX_BIN="/usr/localsbin/zabbix_server"
改为ZABBIX_BIN="/usr/local/zabbix /sbin/zabbix_server"
[root@zxb ~]# vim /etc/init.d/zabbix_agentd
将ZABBIX_BIN="/usr/localsbin/zabbix_agentd"
改为ZABBIX_BIN="/usr/local/zabbix /sbin/zabbix_agentd"
10.启动并设置开机自启
[root@zxb ~]# /etc/init.d/zabbix_server start
Starting zabbix_server (via systemctl): [ 确定 ]
[root@zxb ~]# /etc/init.d/zabbix_agentd start
Starting zabbix_agentd (via systemctl): [ 确定 ]
[root@zxb ~]# chkconfig zabbix_server on
[root@zxb ~]# chkconfig zabbix_agentd on
11.修改php.ini支持的文件大小等,不然zabbix网页容易报错
[root@zxb ~]# vim /etc/php.ini
max_execution_time = 300
max_input_time = 300
date.timezone =Asia/Shanghai
post_max_size = 32M 12.重启nginx和php,使修改的参数生效
[root@zxb ~]# /usr/local/nginx/sbin/nginx -s reload
[root@zxb ~]# /usr/local/php/sbin/php-fpm -c /etc/php.ini &
13.复制zabbix的php项目到nginx目录下,并给权限
[root@zxb ~]# cd /usr/local/src/zabbix-3.2.7/frontends
[root@zxb frontends]# cp -rf php /web/zabbix
[root@zxb ~]# chown -R nginx:nginx /web/zabbix
14.接着开始访问web: http://IP/zabbix
①报错,需要安装php的扩展bcmath,并重新编译
解决方法:
[root@zxb ~]# cd /usr/local/src/php-5.5.38/ext/bcmath/
[root@zxb bcmath]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20121113
Zend Module Api No: 20121212
Zend Extension Api No: 220121212
[root@zxb bcmath]#
[root@zxb bcmath]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@zxb bcmath]# make && make install
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/
[root@zxb bcmath]# vim /etc/php.ini
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/bcmath.so
重启php
[root@zxb bcmath]# /usr/local/php/sbin/php-fpm -c /etc/php.ini & (重启php)
②接着会有以下错误
解决方法:
[root@zxb ~]# ln -s /var/lib/mysql/mysql.sock /tmp/
[root@zxb ~]# vim /etc/php.ini
mysqli.default_socket =/var/lib/mysql/mysql.sock
[root@zxb ~]# /usr/local/php/sbin/php-fpm -c /etc/php.ini &
③接着默认下一步按照提示即可(熟悉的界面-用户:Admin 密码:zabbix)
④修改为中文(php是模块化的语言,进入gettext文档单独编译gettext模块)
[root@zxb ~]# cd /usr/local/src/php-5.5.38/ext/gettext/
[root@zxb gettext]# /usr/local/php/bin/php
[root@zxb gettext]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20121113
Zend Module Api No: 20121212
Zend Extension Api No: 220121212
[root@zxb gettext]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@zxb gettext]# make && make install
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/
[root@zxb gettext]# vim /etc/php.ini
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/gettext.so
[root@zxb ~]# /usr/local/php/sbin/php-fpm -c /etc/php.ini & (重启php)
#然后到图形界面的右上角点击admin用户,切换中文
⑤解决中文乱码问题
找到本地C:\Windows\Fonts\simkai.ttf (楷体)上传到服务器zabbix目录fonts,将原有的字体替换掉
[root@zxb gettext]# cd /web/zabbix/fonts/
[root@zxb fonts]# ls
DejaVuSans.ttf
[root@zxb fonts]# rz
[root@zxb fonts]# ls
DejaVuSans.ttf simkai.ttf
[root@zxb fonts]# mv simkai.ttf DejaVuSans.ttf
mv:是否覆盖"DejaVuSans.ttf"? y
[root@zxb fonts]#
修改后刷新查看 :
Zabbix安装完成。。。。。。
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com