Skip to content
survior edited this page Jul 27, 2017 · 18 revisions

下载对应linux os的安装包:

http://www.zabbix.com/download.php

我们的生产环境使用的是3.0.4。

1.zabbix-server端安装:

1.1.安装server:

./configure --prefix=/usr/local/zabbix-3.0.4/ --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2

prefix:装到对应目录,安装后可将源码删除。 --enable-server --enable-agent:都要有。

1.2.建立zabbix用户和用户组:

为了安全考虑 zabbix 只使用普通用户运行,假如你当前用户叫 ttlsa,那么你运行他,他便使用 ttlsa 身份运行。但是如果你在 root 环境下运行 zabbix,那么 zabbix 将会主动使用 zabbix 用户来运行。但是如果你的系统没有名叫 zabbix 的用户,你需要创建一个用户,如下:

groupadd zabbix

useradd -g zabbix zabbix

useradd: cannot open /etc/passwd 解决方式:chattr -i /etc/passwd

1.3.初始化mysql数据库:

create database zabbix default charset utf8;

mysql -uroot --socket=/data1/mysql/mysql.sock zabbix < database/mysql/schema.sql

如果你仅仅是初始化 proxy 的数据库,那么够了。如果初始化 server,那么接着导入下面两个 sql

mysql -uroot --socket=/data1/mysql/mysql.sock zabbix < database/mysql/images.sql

mysql -uroot --socket=/data1/mysql/mysql.sock zabbix < database/mysql/data.sql

1.4.配置zabbix:

/usr/loca/zabbix-xx/etc/zabbix_server.conf,配置如下类似内容:

LogFile=/data1/logs/zabbix-2.4.7/zabbix_server.log

DBName=zabbix

DBSchema=zabbix

DBUser=root

DBPassword=

DBSocket=/data1/mysql/mysql.sock

DBPort=3306

JavaGateway=127.0.0.1

JavaGatewayPort=10052

StartJavaPollers=5

配置样例文件

修改log位置,zabbix_server.conf: LogFile=/data/logs/zabbix/zabbix_agentd.log

1.5.启动zabbix_server:

/usr/local/zabbix/sbin/zabbix_server

QA:

QA1.cannot create IPC keys for history cache

修改zabbix目录文件的权限,用户组合用户都要有执行权限

QA2.connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket

需要修改mysql目录的other权限可写,因为mysql的owner和zabbix的owner有可能不一样,需要开权限。

2.配置zabbix-web:

从下载包中copy frontends/php到/data/apps下,改名为zabbix,同时将zabbix改为: chmod -R 755 zabbix,chown nginx:nginx -R zabbix 因为php默认使用apache:apace,且static file不走php,直接是nginx去读取,只有动态php文件才是Php-fpm解析后返回给nginx,所以要对权限和拥有者修改。

cp -rp frontends/php /data/apps/zabbix-web

官网下载nginx 最新稳定版:1.8.0

./configure --prefix=/usr/local/nginx-1.8.0/

修改nginx.conf第一行 user nobody 改为 user nginx

user nginx;

yum install php php-fpm

/etc/init.d/php-fpm restart

修改/etc/php-fpm.d/www.conf中的user,group为nginx

进入http://123.162.190.218/setup.php进行配置:

php param validate:

大多数配置都在/etc/php.ini文件中

个别项目说明:

PHP databases support gd my 需要安装 php-gd php-mysql php-bcmath php-mbstring php-xml

修改后需要重启:/etc/rc.d/init.d/php-fpm restart

然而,安装到这,出了个灵异事件:

Check of pre-requisites (也就是第二步),无任何报错的情况下,点击next ,直接返回welcome(第一步)

Configure DB connection(第三步)压根就访问不了!

我也遇到第一步和第二步循环的问题。 我是一台新部署的lnmp环境,部署的时候我改了php进程的执行用户是nginx,但是session的文件目录是root:apache. 我把目录拥有者改为:root:nginx顺利进入第三步。

/var/lib/php下的session权限改为root:nginx

test

curl 'http://localhost:80/test.txt' 加静态文件测试

curl|wget 'http://locahost:80/zabbix'

zabbix-server默认端口是10051.

3.zabbix-agent安装:

./configure --prefix=/usr/local/zabbix-3.0.4/ --enable-agent --with-net-snmp --with-libcurl --with-libxml2

与zabbix-server的安装类似。

修改zabbix_agentd.conf文件中的配置: Hostname=当前机器名 ServerActive=zabbix的server端 Server=zabbix的server端

zabbix-agent默认端口是10050.

LogFile=/data/logs/zabbix/zabbix_agentd.log

4.zabbix报警设置:

4.1.邮件设置:

5.mysql设置

5.1.mysql新能指标图表

用于获取mysql性能指标数据,你需要修改相应的数据库信息

vim /usr/local/zabbix-2.4.4/scripts/chk_mysql.sh

脚本如下:

https://github.com/hepyu/lcp-java/blob/master/doc/zabbix/chk_mysql.sh

#获取mysql版本

UserParameter=mysql.version,mysql -V

#获取mysql性能指标,这个是上面定义好的脚本

UserParameter=mysql.status[*],/usr/local/zabbix-2.4.4/scripts/chk_mysql.sh $1

#获取mysql运行状态

UserParameter=mysql.ping,mysqladmin -uzabbix -p123456 -P3306 -h127.0.0.1 ping | grep -c alive

备注:请注意修改你的数据库信息,以及zabbix路径信息,重启zabbix

6.自动发现网卡并进行监控

首先新建一个模板

1、探索规则名称为Network interface discovery

键值为net.if.discovery

2、filter处要把宏给添加上{#IFNAME} matches @Network interfaces for discovery

3、新建项目原型

创建网卡进来的流量的监控项

Incoming network traffic on {#IFNAME}

zabbix代理

net.if.in[{#IFNAME}]

数字的无正负的

十进制

bps

自定倍数为8

储存值改为差量每秒速率

新建网卡出去的流量监控项

Outgoing network traffic on {#IFNAME}

net.if.out[{#IFNAME}]

数字的无正负的

十进制

bps

自定倍数为8

储存值改为差量每秒速率

新建图形原型

名称Network traffic on {#IFNAME}

项目里添加项目原型即可

创建完模板之后就可以把主机添加到模板中去了,就可以实现网卡的自动发现并进行监控了

zabbix相关使用命令:

stop zabbix

ps -ef |grep zabbix|grep -v grep |awk '{print $2}' |xargs kill -9

agent start

zabbix_agentd

server start

zabbix_server

QA

QA1.在zabix的主机监控状态列表里,机器显示zabbix不work,提示:

Received empty response from Zabbix Agent at [x.x.x.x]. Assuming that agent dropped connection because of access permissions

agent的版本一定要和服务器版本的是一致的

Q2.mysql图表中的sh脚本没执行。

看sh脚本的权限是否有问题,路径是否有问题,可以在zabbix对应的Item处查看具体错误信息。