分布式监控系统Zabbix3.2跳坑指南
zabbix是什么在此就不多作介绍了,可以参考之前的文章 零代码如何打造自己的实时监控预警系统 ,这篇主要介绍安装及注意事项。
主要分为服务端和客户端安装,客户端又分为Linux、Windows。
服务端安装环境
CentOS6.8
Zabbix3.2
Mysql5.6
Apache
PHP56w
环境准备
关闭selinux setenforce 0
进入mysql,创建zabbix用户并授权
mysql -uroot -p CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin; GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@'%' IDENTIFIED BY 'zabbix';
安装apache、php
依次安装,虽然说是离线安装,但还是需要联网下载一些包,如果自己手动下载再安装的话会掉入一个个连环坑。
yum install php-pecl-ssh2.x86_64 libssh2-devel.x86_64 net-snmp* OpenIPMI OpenIPMI-devel -y yum install --skip-broken rpm-build curl* curl-devel httpd php56w php56w-gd php56w-mysql php56w-bcmath php56w-mbstring php56w-xml php56w-ldap -y yum install gcc libxml2-devel unixODBC-devel net-snmp-devel libcurl-devel libssh2-devel OpenIPMI-devel openssl-devel openldap-devel –y
在这里centos6.8里面的php是一个低版本php54w的,因此需要安装php56w,并重启httpd 和mysqld服务
修改php配置文件
vim /etc/php.ini post_max_size=16M max_execution_time=300 max_input_time=300 date.timezone=Asia/Shanghai always_populate_raw_post_data=-1
启动apache service httpd start 调整防火墙配置,没加会访问出错
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10050 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 10051 -j ACCEPT
添加zabbix服务端口
vim /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
保存退出!
安装zabbix
创建用户
groupadd zabbix useradd -g zabbix zabbix
创建zabbix文件夹
mkdir /usr/local/zabbix cd /usr/local/zabbix
下载zabbix3.2 wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.2.0/zabbix-3.2.0.tar.gz 解压 tar zxvf zabbix-3.2.0.tar.gz
进入zabbix文件数据库导入表
cd /usr/local/zabbix/zabbix-3.2.0/database/mysql mysql -u zabbix -p zabbixzabbix<schema.sql mysql -u zabbix -p zabbixzabbix<images.sql mysql -u zabbix -p zabbixzabbix<data.sql
下载依赖包
yum install -y gcc mysql-community-devel libxml2-devel unixODBC-devel net-snmp-devel libcurl-devel libssh2-devel OpenIPMI-devel openssl-devel openldap-devel fping
编译安装zabbix
这里面的zabbix为编译后的zabbix文件夹,zabbix-3.2.0为源文件
cd /usr/local/zabbix/zabbix-3.2.0/ ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --enable-proxy -with-mysql --with-net-snmp --with-libcurl --with-libxml2 --with-unixodbc --with-ssh2 --with-openipmi --with-openssl --with-java-gateway make install
修改zabbix_server配置文件
或在编译目录下/usr/local/zabbix/etc/zabbix_agentd.conf
vim /usr/local/etc/zabbix_server.conf DBName=zabbix DBUser=zabbix DBPassword=zabbix FpingLocation=/usr/sbin/fping DBSocket=/usr/local/mysql5.6/data/mysql.sock 这里填你本机数据库的sock //我发现如果不加,zabbix会一直报connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket mysql.sock'。 ListenIP=你的zabbix_server监听的IP地址 这里的配置一定要写正确,否则后面会出很多问题
创建zabbix-web页面文件夹
在/var/www/html/下创建文件夹 zabbix mkdir /var/www/html/zabbix 拷贝 php 页面文件到/var/www/html/zabbix 目录下并授权
cd zabbix-3.2.0 cp -R ./frontends/* /var/www/html/zabbix 创建一个规则允许web服务器访问前端文件 chcon -Rv --type=httpd_sys_content_t /var/www/html chmod +x /var/www/html/zabbix/php/conf/
运行Apache和zabbix访问外网 setsebool -P httpd_can_network_connect=1
setsebool -P zabbix_can_network=1
编辑zabbix前端的PHP配合配置
vim /etc/httpd/conf.d/zabbix.conf php_value max_execution_time 300 php_value memory_limit 128M php_value post_max_size 16M php_value upload_max_filesize 2M php_value max_input_time 300 php_value always_populate_raw_post_data -1 php_value date.timezone Asia/Shanghai //主要去掉# 改成上海 不设置会导致异常:Time zone for PHP is not set (configuration parameter "date.timezone").
拷贝启动脚本到/etc/init.d
cp /usr/local/zabbix/zabbix-3.2.0/misc/init.d/fedora/core/zabbix_server /etc/init.d/zabbix_server cp /usr/local/zabbix/zabbix-3.2.0/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/zabbix_agentd chkconfig --add /etc/init.d/zabbix_server chkconfig --add /etc/init.d/zabbix_agentd
修改 basedir:这里面的zabbix为编译后的zabbix文件夹
vi /etc/init.d/zabbix_server BASEDIR=/usr/local/换成BASEDIR=/usr/local/zabbix vi /etc/init.d/zabbix_agentd BASEDIR=/usr/local/换成BASEDIR=/usr/local/zabbix ln -s /usr/local/zabbix/sbin/zabbix_server /usr/local/sbin/ ln -s /usr/local/zabbix/sbin/ /usr/local/sbin/
解决前端显示中文问题
cd /var/www/html/zabbix/fonts/ 将中文字体放入 msyh.ttf 修改php配置文件
vim /var/www/html/zabbix/include/defines.inc.php define('ZBX_FONT_NAME', 'msyh'); define('ZBX_GRAPH_FONT_NAME', 'msyh'); // font file name
进入主页面:下面进行,将语言改为中文。 vim /usr/share/zabbix/include/locales.inc.php 找到第55行,将false改为true
启用Zabbix服务器,Apache和MySQL服务启动
chkconfig httpd on chkconfig mysqld on chkconfig zabbix_server on chkconfig zabbix_agentd on
全面启动
service zabbix_server start service zabbix_agentd start
登陆zabbix
http://192.168.80.32/zabbix/setup.php
默认用户名/密码:Admin/zabbix
此时会出现安装界面,然后点下一步
点击next配置mysql:
不要用localhost,用主机IP
点击下一步。此步出现错误,发现无法连接数据库,最后发现zabbix这个数据库中,没有任何数据,检查时加红色的那部分出问题。 next到最后
默认用户名/密码:Admin/zabbix
点击zabbix右上角小人,进行修改:
再重新刷新页面
至此Zabbix服务端全部搭建完毕。
Zabbix客户端安装
下载zabbix3.2
zabbix-3.2.0.tar.gz wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.2.0/zabbix-3.2.0.tar.gz
添加服务
vim /etc/services zabbix-agent 10050/tcp # ZabbixAgent zabbix-agent 10050/udp # ZabbixAgent zabbix-trapper 10051/tcp # ZabbixTrapper zabbix-trapper 10051/udp # ZabbixTrapper
添加用户
groupadd -g 201 zabbix useradd -g zabbix -u 201 -s /sbin/nologin zabbix
解压
tar -zxvf zabbix-3.2.0.tar.gz cd zabbix-3.2.0 ./configure --prefix=/usr/local/zabbix --enable-agent make install
修改agentd配置文件
vi /usr/local/zabbix/etc/zabbix_agentd.conf Server= 192.168.80.32 #服务端ip地址 ServerActive= 192.168.80.32 #服务端ip地址 Hostname=192.168.80.30 #必须与创建主机时的hostname一致(客户端IP)
修改启动配置,添加软链接
mkdir /var/log/zabbix chown zabbix.zabbix /var/log/zabbix cp /usr/local/zabbix/zabbix-3.2.0/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/ chmod 755 /etc/init.d/zabbix_agentd ln -sv /usr/local/zabbix/sbin/* /usr/local/sbin/ ln -sv /usr/local/zabbix/bin/* /usr/local/bin/
转换文件用户 chown -R zabbix:zabbix /usr/local/zabbix
设置自启动
chkconfig zabbix_agentd on
service zabbix_agentd start
在Server端使用以下命令测试是否能连接到Agent端: # zabbix_get -s 192.168.80.30 -p 10050 -k "system.uptime"
若没有添加zabbix_get软连接,则加上编译文件夹路径
/usr/local/zabbix/bin/zabbix_get -s 192.168.80.30 -p 10050 -k "system.uptime"
启动zabbix web端添加主机
注意上面的IP,与zabbix_agent中配置的hostname要一致
给服务器添加监控模板(自带了一些模板,如果不满足后面可以自己创建)
在监控项图表中可查看记录了,如果没数据可能要等一会。
Windows中安装客户端
下载
官网:https://www.zabbix.com/download 下载 zabbix_agents_3.2.0.win.zip 解压缩zabbix_agents_3.2.0.win.zip
在应用程序中文件夹中创建配置目录及文件 confzabbix_agent.conf
配置
LogFile=c:zabbix_agentd.log EnableRemoteCommands=1 ##激活远程执行脚本 Server=192.168.80.32 ServerActive=192.168.80.32 Hostname=192.168.80.33
注册zabbix agent服务
1 运行cmd进入windows命令行控制台,下面我是将程序放在D:Soft文件夹下,且对文件夹重命名zabbix_agents_320win 2 运行D:Softzabbix_agents_320winbinwin64zabbix_agentd.exe -c D:Softzabbix_agents_320winconfzabbix_agentd.conf -i 注:-c表示配置文件路径 -i表示安装
启动
在命令行运行services.msc进入windows服务控制台,找到zabbix_agent服务,右键启动即可
总得来说zabbix客户端中windows比linux安装容易。
最后一点就是如果能用CentOS7就尽量用,6.8的版本有些基础插件版本低,需要自己升级所以安装的时候不是差这就差那的。如果是CentOS7就简单了,导入源:
rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
安装zabbix服务包 yum -y install zabbix-server-mysql zabbix-web-mysql 我们给本机也安装上客户端 yum -y install zabbix-agent
不过安装的位置是默认的。
安装问题汇总
zabbix_server启动报错---解决方法
Starting Zabbix Server: /opt/app/zabbix/sbin/zabbix_server: error while loading shared libraries: libmysqlclient.so.16: cannot open shared object file: No such file or directory
vim /etc/ld.so.conf 加入 /usr/local/mysql5.6/lib mysql安装路径换成自己的
zabbix web页面中添加的主机的可用性状态显示“received empty response from zabbix agent at.......”
解决方法:agent配置文件中的Server填写的IP不对,一定要填写zabbix_server的监听IP。确认配置文件没问题后,还有一个原因,在创建主机的时候,IP地址填写的不正确,要填写agent的IP地址。更改即可
vi /etc/zabbix/zabbix_agentd.conf //修改zabbix_agentd.conf参数 Server=192.168.80.32 //安装zabbix服务端的机器的IP ServerActive=192.168.80.32 //安装zabbix服务端的机器的IP Hostname=192.168.80.31 //我这以被监控的机器的ip作为Hostname,注意是被监控的,而且要与监控页面的监控主机名一致
安装过程中遇到Requires: libc.so.6(GLIBC_2.17)(64bit) 怎么办?
网上有说
cp /usr/local/glibc-2.17/lib/libc-2.17.so /lib64/libc-2.17.so mv /lib64/libc.so.6 /lib64/libc.so.6.bak (但这样会导致整个系统错误,结果悲剧了 登录不了服务器,最后只能找其它方法修复系统,libc.so是一个系统级的文件,不能随便删除,但在centos7环境下不存在此问题)
- 2017全球存储大会:存储设备面临三大挑战
- cobbler自动安装系统(Centos7.X)
- Python接口自动化-7-unittest
- cobbler自动安装系统(Centos7.X)
- Linux NTP时间服务器
- 子查询的另一种方式——映射
- LNMP架构之搭建wordpress博客网站
- Nginx的各种报错总结
- 谷歌TensorFlowLite正式发布,机器学习框架向移动端大步挺进!
- ABP+AdminLTE+Bootstrap Table权限管理系统一期
- 18888元秒下的域名sdhlx.com已建站
- 锂离子电池发明人:自动驾驶汽车电池需要更加耐用
- Linux中MySQL5.6编译安装与MySQL5.7二进制安装步骤
- Nginx服务编译安装、日志功能、状态模块及访问认证模式实操
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 学习一下Python3的协程
- Android网络收集和ping封装库
- Kubernetes之helm部署使用
- 想掌握 Binder 机制?驱动核心源码详解和Binder超系统学习资源,想学不会都难!
- leetcode链表之回文链表
- Docsify 安装
- Docsify 初始化文件夹
- ELK 日志系统集成 Skywalking 调用链 ID
- ChartCenter ——为您的K8s之旅保驾护航v
- leetcode链表之删除链表的节点
- iOS打包的那一些事情
- 腾讯云服务器(CentOS 7、Tencent Linux)手动搭建LNMP环境(linux+Nginx+Mariadb+PHP)
- iOS技术面试题及答案
- 虽然现在有可以去码的软件了,可视频是如何自动跟踪打码的?
- 2020-09-12:手撕代码:最小公倍数,复杂度多少?