zabbix源码安装 令人窒息的操作
一.简介
zabbix-server主要分为2部分:
- zabbix程序 程序根据客户端的监控项,从客户端获取数据并写入到数据库,再根据触发器/动作等配置进行操作。
- 展示页面 使用php编写,php脚本从数据库获得信息,用httpd或者nginx等网页服务器展示出来。
根据上述说明,zabbix需要部署在lamp或者lnmp上面,对于php页面来说,用apache好一些。
二.环境
[zabbix-server] 主机名 = host-1 系统 = centos-7.3 地址 = 1.1.1.1 软件 = httpd-2.4 80 mariadb-5.5 3306 php-fpm-5.4 9000 zabbix-server-3.4 10051 [zabbix-agent] 主机名 = host-2 系统 = centos-7.3 地址 = 1.1.1.2 软件 = zabbix-agent-3.4 10050
三.配置
配置服务端程序
操作服务器(host-1)
1.yum部署lamp
♠.安装LAMP和依赖
yum -y install httpd php php-fpm php-mysql mariadb mariadb-server mariadb-devel
♠.启动并加入到自启动中
systemctl restart httpd mariadb php-fpm systemctl enable httpd mariadb php-fpm
♠.创建一个简单的php脚本,测试httpd是否支持php,php是否可以连接mysql,mysql是否已启动
vim /var/www/html/linkdb.php <?php $db=mysql_connect("localhost","root",""); if($db){ echo "ok"; }else{ echo "no"; } ?>
返回ok则正常,返回no则检查数据库是否可以不用密码就登录,如果有默认密码,需要修改php脚本
curl http://127.0.0.1/linkdb.php
2.安装依赖包
yum -y install gcc gcc-c++ libevent-devel php-bcmath php-gd php-xml php-mbstring
3.创建账号,为安全起见禁止登录
groupadd zabbix useradd -g zabbix -s /sbin/nologin zabbix
4.下载源码包
wget https://shell-auto-install.oss-cn-zhangjiakou.aliyuncs.com/package/zabbix-3.4.1.tar.gz tar -xf zabbix-3.4.1.tar.gz cd zabbix-3.4.1
5.选择参数,当前只开启了服务端,其余编译参数如下
./configure --prefix=/usr/local/zabbix --enable-server --with-mysql
第一行是添加这个参数,需要安装的yum包,第二行是参数名
net-snmap-devel --with-net-snmp libcurl-devel curl-devel --with-libcurl libxml2-devel --with-libxml2 OpenIPMI-devel --with-openipmi unixODBC-devel --with-unixodbc
6.编译安装
make install
7.将php脚本复制到html目录下
cp -r frontends/php/* /var/www/html/
8.添加所有权限到php脚本,当然这种方式比较危险,具体在zabbix前端页面会说明对哪些脚本要权限,逐个改
chmod -R 777 /var/www/html
9.登陆mariadb并创建zabbix用户,当前mariadb无密码
MariaDB [(none)]> create database zabbixdb character set utf8; MariaDB [(none)]>grant all on zabbixdb.* to zabbixuser@"localhost" identified by "123456"; MariaDB [(none)]>quit
10.按顺序导入zabbix自带的数据库
mysql -uzabbixuser -p123456 zabbixdb < database/mysql/schema.sql mysql -uzabbixuser -p123456 zabbixdb < database/mysql/images.sql mysql -uzabbixuser -p123456 zabbixdb < database/mysql/data.sql
11.修改php参数,符合zabbix要求
vim /etc/php.ini post_max_size = 16M max_execution_time = 300 max_input_time = 300 date.timezone = Asia/Shanghai
12.重启服务
systemctl restart httpd php-fpm
配置服务端网页
操作服务器(host-1)
1.访问http://1.1.1.1
2.LDAP是特殊配置,不用管
3.数据库:zabbixdb 账号:zabbixuser 密码:123456
4.地址和端口都默认,Name可以不写或者随便写
5.确定信息后下一步即可
6.若遇到这一步,是因为zabbix对/var/www/html/conf/没有权限或者没写写进去。需要手动将文件下载,然后传入到服务器的/var/www/html/conf/zabbix.conf.php中刷新即可
7.登录,设置为中文。管理员:admin 密码:zabbix
更改为中文后,update更新
最下面或提示zabbix-server未启动,下面将启动zabbix服务端
启动zabbix-server
操作服务器(host-1)
1.复制并修改启动脚本,将安装目录替换为设置目录
cp misc/init.d/fedora/core/zabbix_server /etc/init.d/ chmod +x /etc/init.d/zabbix_server vim /etc/init.d/zabbix_server BASEDIR=/usr/local/zabbix
2.修改配置文件,填写数据库信息,前端页面是告诉php脚本从哪个数据库获得信息展示,这里告诉后端程序将收集的信息写入哪个数据库
vim /usr/local/zabbix/etc/zabbix_server.conf DBName=zabbixdb #数据库名 DBUser=zabbixuser #数据库用户名 DBPassword=123456 #数据库用户密码
3.启动并检查端口是否正常,因为很多时候显示启动但并没有真正启动
/etc/init.d/zabbix_server start netstat -utnalp | grep :10051
4.查看前端页面,会发现正常了
配置客户端
操作服务器(host-2)
1.zabbix客户端可以有版本小差异,服务端3.4版本,客户端3.2版本也可以
wget https://shell-auto-install.oss-cn-zhangjiakou.aliyuncs.com/package/zabbix-agent-3.4.1-1.el7.x86_64.rpm
2.安装
yum -y install zabbix-agent-3.4.1-1.el7.x86_64.rpm
3.清空配置后,编写配置,其它参数后面安装文档再加
> /etc/zabbix/zabbix_agentd.conf
4.当前配置是被动与主动模式都开启,方便后期调节
vim /etc/zabbix/zabbix_agentd.conf #指定pid文件位置 PidFile=/var/run/zabbix/zabbix_agentd.pid #指定日志文件位置 LogFile=/var/log/zabbix/zabbix_agentd.log #设置为被动模式,将开启端口 StartAgents=3 #当前的主机名,要写正确,否则服务端会不识别 Hostname=host-2 #服务端的地址,用逗号(,)可以隔开写多个 Server=1.1.1.1 #服务端的地址,用逗号(,)可以隔开写多个 ServerActive=1.1.1.1 #自定义的脚本超时时间, Timeout=8 #允许自定义脚本 UnsafeUserParameters=1 #加载其它配置文件 Include=/etc/zabbix/zabbix_agentd.d/*.conf
5.启动效验
systemctl start zabbix-agent systemctl enable zabbix-agent netstat -unltp | grep 10050
四.测试
操作服务器(host-1)
1.添加
2.配置主机信息
3.添加模板,连接模板后,主机将被模板所带的监控项监控
4.一般选择Template OS Linux,先点击添加,再添加,不然模板连接不上
5.等一分钟,ZBX灯亮
五.附录
导入其余数据库
1.postgresql导入 psql -U username psql> create database zabbix; psql > \q cd database/postgresql psql -U username zabbix < database/postgresql/schema.sql psql -U username zabbix < database/postgresql/images.sql psql -U username zabbix < database/postgresql/data.sql 2.oracle导入 sqlplus zabbix/password@host/ORCL sqlplus>@database/oracle/schema.sql sqlplus>@database/oracle/images.sql sqlplus>@database/oracle/data.sql