什么是zabbix

百度百科--zabbix(音同 zæbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

zabbix的特点:

  • 分布式监视以及WEB集中管理功能
  • 自动发现服务器与网络设备
  • 安装与配置简单,学习成本低
  • 免费开源
  • 提供api功能,方便二次开发
  • 支持多语言(包括中文)
  • 可以无agent监视
  • 用户安全认证和柔软的授权方式
  • email等通知功能

主要优势在于分布式监控,自动化功能(包括自动发现,自动注册主机等等),提供api等

事实上zabbix的学习成本并不低,想用好各个功能你需要对其有充分的了解,这可能花上你好几天的时间,而其他诸如nagios等可能只要一两天就ok了。

本文档使用环境:redhat 7.4

安装zabbix的运行环境LAMP

lamp环境网上搭建的教程有很多,一键安装部署的脚本也不少,这里就不详细介绍了。

临时关闭selinux(永久关闭该/etc/selinux/config)

setenforce 0

设置防火墙

firewall-cmd --zone=public --permanent --add-port=80/tcp
firewall-cmd --zone=public --permanent --add-port=3306/tcp
systemctl restart firewalld

安装httpd

yum install -y httpd

安装mariadb

yum install -y mariadb mariadb-server

安装php组件

yum install -y php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmath php-mhash

或者

yum install -y php* libjpeg* 

修改httpd主配置文件 vim /etc/httpd/conf/httpd.conf

    AddType application/x-httpd-php .php #添加,在原有的AddType后
		AddType application/x-httpd-php-source .phps #这个是为了通用,可以不加
		DirectoryIndex index.html index.htm Default.html Default.htm index.php #修改,在原有的DirectoryIndex添加查找文件类型

访问测试

rm -f /etc/httpd/conf.d/welcome.conf /var/www/error/noindex.html #删除测试页面

添加测试页面

cat > /var/www/html/index.php << EOF
<?php
   phpinfo();
?>
EOF

启动httpd

systemctl restart httpd

访问测试 访问IP可以看到php测试页面

修改mariadb

cp /usr/share/mysql/my-huge.cnf /etc/my.cnf #生成主配置文件

mysql用户创建、授权、密码设置

mysql -e "grant all on *.* to root@localhost identified by '123456'"
mysql -e "flush privileges"

启动mariadb

systemctl restart mariadb

创建测试数据

 mysql -uroot -p'123456' -e 'create table test.test(id int,name varchar(10))'
 mysql -uroot -p'123456' -e "insert into test.test values (1,'tom')"

修改测试页面 cat >/var/www/html/index.php << EOF <?php $link = mysql_connect('localhost','root','123456'); mysql_select_db('test',$link); mysql_query('set name utf-8');

$query_sql = "select * from test"; $result = mysql_query($query_sql);

$data = array();

while ($row = mysql_fetch_assoc($result )){ $data[] = $row; }

echo "<pre>"; print_r($data); ?> EOF

安装zabbix

官方文档:https://www.zabbix.com/documentation/3.4/zh/manual/installation/install 下载地址:https://www.zabbix.com/download 本文所有源码安装

tar axf zabbix-3.2.11.tar.gz

安装依赖包

yum instsall -y libxml2* net-snmp net-snmp-devel libcurl libcurl-devel

创建用户

groupadd zabbix
useradd -g zabbix -s /sbin/nologin zabbix

编译安装

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

make install

安装完成后会生成如下四个文件,如果编译时选择--enable-proxy还会生成zabbix_proxy

配置zabbix server端

创建zabbix数据库用户和表,并导入源数据

mysql -uroot -p123456 -e 'create database zabbix CHARACTER SET utf8 COLLATE utf8_bin'
mysql -uroot -p123456 -e 'grant all on zabbix.* to zabbix@localhost identified by "123456"'
mysql -uzabbix -p123456 zabbix -e "source /usr/local/zabbix-3.2.11/database/mysql/schema.sql"
mysql -uzabbix -p123456 zabbix -e "source /usr/local/zabbix-3.2.11/database/mysql/images.sql"
mysql -uzabbix -p123456 zabbix -e "source /usr/local/zabbix-3.2.11/database/mysql/data.sql"

主配置文件 /usr/local/etc/zabbix_server.conf 添加数据库连接信息(线上建议不要使用root,库最好创建单独的,用户进行权限控制)

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
DBSocket=/var/lib/mysql/mysql.sock
StartDiscoverers=10

启动zabbix-server(默认监听端口10051)

systemctl start zabbix_server

设置防火墙

firewall-cmd --zone=public --permanent --add-port=10051/tcp
systemctl reload firewalld

复制php文件

mkdir /var/www/html/zabbix
cp -r /usr/local/zabbix-3.2.11/frontends/php/* /var/www/html/zabbix/

web页面安装 IP/zabbix

修改php配置(按报错信息修改即可,可以按自己需求调大参数) vi /etc/php.ini

post_max_size = 16M
max_execution_time = 300
max_input_time = 300

重启httpd

systemctl restart httpd

继续上web页面操作 数据库连接设置 zabbix server设置 如果这里有报错就按他帮助信息干 或者 cp zabbix.conf.php.example zabbix.conf.php 然后修改里面对应的设置。 登录 初始用户/密码为:Admin/zabbix

修改admin密码、设置语言、禁止匿名用户 点击Admin 禁止匿名用户

设置开机自启

杀死zabbix进程 killall zabbix_server 将启动脚本拷贝到/etc/init.d cp /usr/local/zabbix-3.2.11/misc/init.d/fedora/core/* /etc/init.d/ 启动zabbix systemctl start zabbix_server 查看状态 systemctl status zabbix_server 设置开机启动 systemctl enable zabbix_server

参考文档:

官方文档:https://www.zabbix.com/documentation/3.4/zh/manual/installation/install