1、zabbix是一个基于WEB界面的,并提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供柔软的通知机制以让运维人员能够快速定位。
2、zabbix通过C/S模型来收集数据,通过B/S模型模式在web端展示和进行配置。
被监控端:主机设备通过安装agent收集数据并发送给server端,网络设备通过SNMP收集数据并发送给server端。
server端:通过收集SNMP和agent发送来的数据,将数据写入到后台数据库中(例如:mysql,oracle),在通过web展示出来。
3、运行环境
zabbix server 需要运行在LAMP或者是LNMP的环境下;
agent可以部署在目前常见的OS中,例如linux,windows,HPUX,Solaris,Sun;
SNMP可以支持常见的网络设备。
l Zabbix环境准备
[root@centos7-web02 ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
[root@centos7-web02 ~]# uname -r
3.10.0-327.36.3.el7.x86_64
[root@centos7-web02 ~]# getenforce
Disabled
[root@centos7-web02 ~]# systemctl stop firewalld
[root@centos7-web02 ~]# ifconfig eth0|awk -F '[ :]+' 'NR==2{print $3}'
10.135.105.89
[root@centos7-web02 ~]# hostname
centos7-web02
[root@centos7-web02 ~]# grep SELINUX /etc/selinux/config
# SELINUX= can take one of these three values:
SELINUX=disabled
此处不多做介绍。
[root@centos7-web02 ~]# yum -y install net-snmp-devel curl-devel
[root@centos7-web02 ~]# vim /usr/local/php7 /etc /php.ini
date.timezone = Asia/Shanghai
max_execution_time = 300
post_max_size = 16M
max_input_time=300
memory_limit = 128M
mbstring.func_overload = 1
安装包下载地址http://www.zabbix.com/download.php
yum install unixODBC-devel mysql-devel net-snmp-devel libxml2-devel libcurl-devel libevent-devel
安装所需依赖
yum -y install net-snmp-devel curl-devel
wget https://fossies.org/linux/misc/zabbix-3.2.7.tar.gz
tar xf zabbix-3.2.7.tar.gz
[root@centos7-web02 tools]# cd zabbix-3.2.7/
[root@centos7-web02 zabbix-3.2.7]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-proxy --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl
[root@ centos7-web02 zabbix-3.2.7]# make && make install
看到如下信息则代表已经添加成功,或者可以自行手动查询一下/etc/services 文件,真没有手动添加到 /etc/services 文件中:
[root@centos7-web02 zabbix-3.2.7]# grep "zabbix" /etc/services
zabbix-agent 10050/tcp # Zabbix Agent
zabbix-agent 10050/udp # Zabbix Agent
zabbix-trapper 10051/tcp # Zabbix Trapper
zabbix-trapper 10051/udp # Zabbix Trapper
添加mysql数据库的zabbix用户,并设置密码
先用root身份登录mysql中,并执行以下命令;
mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
Query OK, 0 rows affected (0.03 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)
## //密码zabbix 对应数据库中新建的 zabbix库
而后在下载的源文件中存在一个database/mysql 子目录,中间存放在建立zabbix数据库结构的SQL脚本文件。先进入到zabbix源文件所在的目录,并执行以下语句:
[root@centos7-web02 zabbix-3.2.7]# mysql -u zabbix -p zabbix < ./database/mysql/schema.sql
Enter password:
[root@centos7-web02 zabbix-3.2.7]# mysql -u zabbix -p zabbix < ./database/mysql/images.sql
Enter password:
[root@centos7-web02 zabbix-3.2.7]# mysql -u zabbix -p zabbix < ./database/mysql/data.sql
Enter password:
每次都输入密码
[root@centos7-web02 ~]# mkdir /var/log/zabbix
[root@centos7-web02 ~]# useradd -s /sbin/nologin -M zabbix
[root@centos7-web02 ~]# chown zabbix.zabbix /var/log/zabbix
[root@centos7-web02 ~]# ln -s /usr/local/zabbix/etc/ /etc/zabbix
[root@centos7-web02 ~]# ln -s /usr/local/zabbix/bin/* /usr/bin/
[root@centos7-web02 ~]# ln -s /usr/local/zabbix/sbin/* /usr/sbin/
[root@centos7-web02 ~]# cd /home/tools/zabbix-3.2.7/
[root@centos7-web02 zabbix-3.2.7]# cp misc/init.d/fedora/core/zabbix_* /etc/init.d/
[root@centos7-web02 zabbix-3.2.7]# chmod 755 /etc/init.d/zabbix_*
[root@centos7-web02 zabbix-3.2.7]# sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#g" /etc/init.d/zabbix_server
[root@centos7-web02 zabbix-3.2.7]# sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#g" /etc/init.d/zabbix_agentd
辑并修改 /etc/zabbix/zabbix_server.conf 文件,并修改如下条目:
DBName=zabbix 数据库名称
DBUser=zabbix 数据库用户
DBPassword=zabbix 数据库密码(这里为了演示,先前设置了zabbix数据库密码为zabbix)
/tmp/zabbix_server.log 改 /var/log/zabbix/zabbix_server.log #更改日志路径
或者用 sed 方式替换文件内容:
sed -i "s/DBUser\=root/DBUser\=zabbix/g" /etc/zabbix/zabbix_server.conf
sed -i "/# DBPassword=/aDBPassword=zabbix\n" /etc/zabbix/zabbix_server.conf
sed -i "s#/tmp/zabbix_server.log#/var/log/zabbix/zabbix_server.log#g" /etc/zabbix/zabbix_server.conf
这里要的是zabbix_agentd.conf是客户端配置文件,因此这里配置这个文件的目的就是为了能够实现对本地服务器的监控。该文件需要修改如下四个条目:
Server=127.0.0.1 此处添加服务端的 ip,如服务器不为本机,则需要填写远端 zabbix_server 的 ip 地址
ServerActive=127.0.0.1 此处修改为服务端的 ip,这里应该修改为该服务器对外的ip地址
/tmp/zabbix_agentd.log 修改日志路径
UnsafeUserParameters=0 默认是不启用自定义脚本功能的,要自定义 key ,需开启,设置为1
Include=/etc/zabbix/zabbix_agentd.conf.d/ 自定义的 agent d 配置文件可以写在这个目录下面
利用sed 方式内容替换的执行命令如下:
sed -i "s/Server\=127.0.0.1/Server\=127.0.0.1,10.0.07 /g" /usr/local/zabbix/etc/zabbix_agentd.conf
sed -i "s/ServerActive\=127.0.0.1/ServerActive\=10.0.0.7:10051/g" /usr/local/zabbix/etc/zabbix_agentd.conf
sed -i "s#tmp/zabbix_agentd.log#var/log/zabbix/zabbix_agentd.log#g" /usr/local/zabbix/etc/zabbix_agentd.conf
sed -i "#UnsafeUserParameters=0#aUnsafeUserParameters=1\n" /usr/local/zabbix/etc/zabbix_agentd.conf
[root@centos7-web02 zabbix-3.2.7]# cp -r ./frontends/php/ /usr/local/nginx/html/zabbix
修改nginx.conf配置文件:
[root@centos7-web02 vhost]# vim zabbix.conf
server {
listen 10.0.0.7:80;
server_name 10.0.0.7;
access_log /alidata/log/nginx/zabbix.log combined;
index index.html index.htm index.php;
root /usr/local/nginx/html/zabbix;
if ( $query_string ~* ".*[\;'\<\>].*" ){
return 404;
}
location / {
try_files $uri $uri/ /index.php;
}
location ~ .*\.(php|php5)?$ {
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
expires 30d;
}
location ~ .*\.(js|css)?$ {
expires 7d;
}
}
修改完,记得平滑重启nginx
[root@centos7-web02 vhost]# /etc/init.d/zabbix_server start
Reloading systemd: [ 确定 ]
Starting zabbix_server (via systemctl): [ 确定 ]
[root@centos7-web02 vhost]# /etc/init.d/zabbix_agentd start
Starting zabbix_agentd (via systemctl): [ 确定 ]
至此,zabbix的安装完成。
浏览器中输入地址:http://ip/zabbix,则可看到如下初始化欢迎界面。
解决第一个错误:PHP bcmath on Fail
[root@centos7-web02 ~]# cd /home/tools/php-7.0.17/
[root@centos7-web02 php-7.0.17]# cd ext/bcmath/
[root@centos7-web02 bcmath]# phpize
Configuring for:
PHP Api Version: 20151012
Zend Module Api No: 20151012
Zend Extension Api No: 320151012
[root@centos7-web02 bcmath]# ./configure --with-php-config=/usr/local/php7/bin/php-config
[root@centos7-web02 bcmath]# echo $?
0
[root@centos7-web02 bcmath]# make && make install
。。。。。
Installing shared extensions: /usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/
vim /usr/local/php7/etc/php.ini
添加:
extension=/usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/bcmath.so
[root@centos7-web02 bcmath]# service php-fpm7 restart
解决第二个错误:PHP option "mbstring.func_overload" off on Fail
vim /usr/local/php7/etc/php.ini
修改:
mbstring.func_overload = 1
解决第三和第四个错误错误:PHP gd JPEG support off Fail
卡了半天之后,重新编译安装php解决,编译参数为:
./configure \
--prefix=/usr/local/php7 \
--with-config-file-path=/usr/local/php7/etc \
--with-config-file-scan-dir=/usr/local/php7/etc/php.d \
--with-mcrypt=/usr/include \
--enable-mysqlnd \
--with-mysqli \
--with-pdo-mysql \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--with-gd \
--with-iconv \
--with-zlib \
--enable-xml \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--enable-mbregex \
--enable-mbstring \
--enable-ftp \
--enable-gd-native-ttf \
--with-openssl \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--without-pear \
--with-gettext \
--enable-session \
--with-curl \
--with-jpeg-dir \
--with-freetype-dir \
--enable-opcache \
--with-ldap
重新编译
make clean
make && make install
注意:
出现:configure: error: Cannot find ldap.h
yum install openldap -y
yum install openldap-devel -y
出现:configure: error: Cannot find ldap libraries in /usr/lib.
cp -frp /usr/lib64/libldap* /usr/lib/
make 出现:
/lib64/liblber-2.4.so.2: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1
vim Makefile
EXTRA_LIBS = ..... -lcrypt 在最后加上 -llber,例如: EXTRA_LIBS = ..... -lcrypt -llber 然后重新再次 make clean make 即可
1、进入欢迎页面
2、检查全部OK
3、数据库的配置
4、name自定义
5、
6、下一步
7、配置文件生成了,至此安装成功
8、点击登录账号:Admin 密码:zabbix
1、点击人头像
2、设置中文
解决服务器端zabbix中文乱码问题:
\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
安装方式:
useradd -s /sbin/nologin -M zabbix
wget https://fossies.org/linux/misc/zabbix-3.2.7.tar.gz
tar xf zabbix-3.2.7.tar.gz
cd zabbix-3.2.7/
./configure --prefix=/usr/local/zabbix --with-net-snmp --enable-agent
make && make install
cp misc/init.d/tru64/zabbix_agentd /etc/init.d/
chmod +x /etc/init.d/zabbix_agentd
vim /etc/init.d/zabbix_agentd
DAEMON=/usr/local/zabbix/sbin/zabbix_agentd
/etc/init.d/zabbix_agentd restart
执行下面命令:ip地址为服务端对外网地址
sed -i 's#Server=127.0.0.1#Server=172.168.10.7#' /usr/local/zabbix/etc/zabbix_agentd.conf
可参考 1.4.7 配置 zabbix_agentd.conf 文件
启动客户端
注意:
如果出现
则检查日志:
tailf /var/log/zabbix/zabbix_server.log
我的日志里显示
122843:20170812:094536.724 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
解决方法:
[root@centos7-web02 ~]# find / -name "mysql.sock"
/tmp/mysql.sock
[root@centos7-web02 ~]# ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
添加zabbix管理机(监控管理机)
1、进入-配置---主机
2、点击Zabbix server
3、配置如下
vim /usr/local/zabbix/etc/zabbix_agentd.conf
修改hostname=和这里的一样,不然zabbix日志中会一直出现如下:
123015:20170812:103924.955 cannot send list of active checks to "127.0.0.1": host [Zabbix server] not found
4、一直刷新登录变绿,如果是红色的则检查IP和端口和防火墙。
或者给iptables添加两条规则:
# iptables -A INPUT -p tcp -m tcp --dport 10051 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp --dport 10050 -j ACCEPT
# /etc/init.d/iptables save
l 监控变红的解决方法:
zabbix_get:测试能不能从客户端获取数据;等上面的监控变红的时候
zabbix_get -h 可以获取到参数
[root@centos7-web02 ~]# zabbix_get -s 172.168.10.7 -p 10050 -k "system.cpu.load[all,avg1]"
0.000000
[root@centos7-web02 ~]# zabbix_get -s 172.168.10.6 -p 10050 -k "system.cpu.load[all,avg1]"
0.010000
其他问题请注意关闭selinux 和查看防火墙,host解析
注意配置文件的位置
find / -name "*agentd.conf"
后面文章会具体介绍监控各个服务的状态方法,此文章只介绍安装方法
配置之前系统可能会缺少一些lib库文件,主要是一些devel开发包.可能需要的如下:
可能需要安装一些软件包:
yum install unixODBC-devel
yum install Curl-devel
yum install net-snmp-devel
yum install OpenIPMI-devel
yum install openmpi-devel
yum install libevent-devel
yum install libpcre-devel
yum install glibc-static