1 添加/etc/services 服务端口
vim /etc/services
10050/tcp
zabbix-agent
zabbix-agent
10050/udp
zabbix-trapper 10051/tcp
zabbix-trapper 10051/udp
#ZabbixAgent
#Zabbix Agent
#ZabbixTrapper
#Zabbix Trapper
下载地址:http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.5/zabbix-2.4.5.tar.gz
LNMP 传送门:http://www.linuxidc.com/Linux/2016-03/129644.htm
1.1 安装 Zabbix
shell > yum -y install ntpdate net-snmp net-snmp-devel libcurl-devel gcc*
shell > yum -y install php
shell > useradd -r -s /sbin/nologin zabbix
shell > wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.5/zabbix-2.4.5.tar.gz
wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Release%20Candidates/3.2.4rc1/zabbix-3.2.4rc1.tar.gz
shell > tar zxf zabbix-2.4.5.tar.gz
shell > ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl
# --prefix 指定安装路径
# --enable-server 安装 Server 端
# --enable-agent 安装 Agent 端
# --with-mysql 使用 Mysql 数据库
# --with-net-snmp 支持 SNMP 协议
# --with-libcurl 支持 libcurl URL 监控
shell > make install
2、创建数据库、并导入数据
shell > mysql -uroot -p123456
# mysql
--登陆,给 zabbix 授权
mysql> create database zabbix default charset utf8; --使用 utf8 支持中文
Query OK, 1 row affected (0.00 sec)
mysql> grant all on zabbix.* to 'zabbix'@'localhost' identified by '123';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by '123';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
#Cd /usr/local/zabbix-2.4.5/database/mysql/
# mysql
mysql> use zabbix
mysql> source schema.sql
mysql> source data.sql
mysql> source images.sql
--登陆 MySQL,导入数据
3、配置 Zabbix 服务
# 服务端启动脚本
# 客户端启动脚本
shell > /usr/local/zabbix/sbin/zabbix_server
shell > /usr/local/zabbix/sbin/zabbix_agentd
cp /usr/local/zabbix-2.4.5/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/ 添加到启动脚本
Vi /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/ 改为 BASEDIR=/usr/local/zabbix
cp /usr/local/zabbix-2.4.5/misc/init.d/fedora/core/zabbix_server /etc/init.d/ 添加到启动脚本
Vi /etc/init.d/zabbix_server
BASEDIR=/usr/local/ 改为 BASEDIR=/usr/local/zabbix
shell > cp -R /usr/local/src/zabbix-2.4.5/frontends/php/ /var/www/html/zabbix
shell > vim /usr/local/zabbix/etc/zabbix_server.conf # 服务端配置文件
# 网页文件
LogFile=/tmp/zabbix_server.log # 日志文件存放位置
DBName=zabbix
DBUser=zabbix
DBPassword=123
DBSocket=/var/lib/mysql/mysql.sock
ListenPort=10051
ListenIP=0.0.0.0
--监听端口
--监听网段
--数据库名
--数据库用户名
--数据库密码
--数据库 socket 文件
4、启动 Zabbix 服务
shell > /usr/local/zabbix/sbin/zabbix_server start
shell >/usr/local/zabbix/sbin/zabbix_agentd
shell > netstat -anpt | grep zabbix ( 注意:要来确认一下到底有没有启动成功,因为当授权用户无法连接数据库时,zabbix_server
是无法启动的,但是启动过程显示成功 )
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 80403/zabbix_agentd
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 80430/zabbix_server
start
当发现有服务没有启动时,要及时查看日志文件,里面有详细的原因
## 这里可能会出现如下错误:
Starting zabbix_server: /usr/local/zabbix/sbin/zabbix_server: error while loading shared libraries: libmysqlclient.so.18: cannot
open shared object file: No such file or directory [FAILED]
## 解决方法:ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/ ( 先 find 到这个文件的位置 )
5、登陆网页进行配置 Zabbix ( http://your-domain/zabbix )
## 无关紧要的截图就不贴了,只贴有用的!
> 第一个页面是欢迎页面,直接 Next
> 第二个页面大多会有多处检测失败,也是出问题最多的位置,如下图
解决方法:
shell > vim /usr/local/php/php.ini
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/Shanghai
always_populate_raw_post_data = -1
## 找到对应参数,修改为上面的值,重启 Nginx 、php-fpm 即可解决!
## 还有可能遇到缺少扩展的情况,单独演示一个缺少扩展的解决方法
假如上图提示 gettext 也是红色的 fail 状态,这就说明缺少这个扩展,需要动态添加此扩展!
shell > cd /usr/local/src/php-5.6.11/ext/gettext/ # 切换到源码目录下的对应扩展目录下
shell > /usr/local/php/bin/phpize # 执行此指令,生成 configure
shell > ./configure --with-php-config=/usr/local/php/bin/php-config ; make ; make install # 安装此扩展,生成 .so 文件
## 如果是缺少 mysqli 扩展,这一步要多加一个参数 --with-mysqli=/usr/local/mysql/bin/mysql_config
shell > ln -s /usr/local/php/lib/php/extensions/no-debug-20100525/gettext.so /usr/lib64/
shell > vim /usr/local/php/php.ini
extension_dir = /usr/lib64/
extension = gettext.so
## 找到对应的参数,添加或修改成上面的值即可
全部解决完成后 ( 页面没有红色的 Fail ,全部变为 OK ) 点击 Next
> 第三个页面设置数据库连接的一些信息,正常填写即可,点击 “Test connection” 显示 ok 后,Next
> 第四个页面是关于 Zabbix Server 的一些信息,默认即可,Next
> 第五个页面是预览,没有问题的话,Next
> 第 六 个 页 面 通 常 也 会 出 错 , 需 要 将 此 配 置 文 件 下 载 到 本 地 , 然 后 通 过 WinSCP 或 某 种 方 式 传 到 Zabbix Server 的
/usr/local/nginx/html/zabbix/conf/ 这里!( 也许你的跟我的不一样,但根据提示你可以的 )
> 终于到达登陆页面,默认用户名:admin 密码:zabbix
## 到这里已经完成了 Zabbix 的全部安装过程!
附加:( 简单说一下监控本机 )
1、修改 Zabbix Server 上的 Zabbix Agent 配置文件 ( 其实也不用修改,这里只是看一下需要关注的地方 )
shell > vim /usr/local/zabbix/etc/zabbix_agentd.conf # 注意:一定是 zabbix_agentd.conf 不是 zabbix_agent.conf
LogFile=/tmp/zabbix_agentd.log # Zabbix Agent 日志文件
Server=127.0.0.1
# 被动模式
ServerActive=127.0.0.1 # 主动模式
Hostname=Zabbix server # 自定义 ( 这又是一个非常关键的点,Zabbix Server 中添加主机时,Hostname 的值一定要跟这里
定义的相同,否则无法监控 )
## 这里的主动、被动模式是指 Zabbix Agent , 默认为被动模式!( 被动模式为 Zabbix Agent 被动等待 Zabbix Server 连接,
主动模式为 Zabbix Agent 主动去连接 Zabbix Server )
下面主要往两个优化方向考虑:
1、用 Proxy 或者 Node 模式做分布式监控
2、调整 Agentd 为主动模式
由于第一个方案需要增加物理机器,所以先尝试第二方案
一、Agentd 的配置调整:
LogFile=/tmp/zabbix_agentd.logServer=14.18.xxx.xxxServerActive=14.18.xxx.xxHostname=119.146.xxx.xxRefreshActiveChe
cks=60BufferSize=10000MaxLinesPerSecond=200Timeout=30
比较重要的参数是 ServerActive 和 Hostname,ServerActive 是指定 Agentd 收集的数据往哪里发送,Hostname
是必须要和 Server 端添加主机时的主机名对应起来,这样 Server 端接收到数据才能找到对应关系,我这里为了
兼容被动模式,没有把 StartAgents 设为 0,如果一开始就是使用主动模式的话建议把 StartAgents 设为 0,关闭
被动模式
二、Server 的配置调整:
StartPollers=100
首先把这个主动收集数据进程减少,原来开到 700 多
StartTrappers=200
然后把这个负责处理 Agentd 推送过来的数据的进程开大一些,就可以了
三、调整模板
建议完整克隆一个 Template OS Linux 模板来改,需要调整的地方就是:
把所有的 item 的类型由原来的
“zabbix 代理”改成“zabbix 端点代理程序(主动式)”
6、zabbix 添加 监控 流量
(1) zabbix 默认有一个监控网卡流量的 key 值:
分别为:net.if.in[eth0,bytes]
net.if.out[eth0,bytes]
(2) 创建一个模板:Network incoming or outcoming on eth0
(3)创建一个应用集:Network incoming or outcoming on eth0
(4) 创建两个监控项:
监控项:Network incoming
on eth0 创建:
监控项:Network outcoming on eth0 创建 :
(5) 创建触发器
触发器 Network incoming on eth0 >10M on {HOST.NAME} 的创建 :
表达式 创建 :
触发值:Network outcoming on eth0 >10M on {HOST.NAME}:按照上面配置即可
(6) 然后 添加 图形