1.下 载

https://www.zabbix.com/download

往下拉选择到源码版本下载

2.创建zabbix用户

zabbix需要以非root用户运行;如果以root用户运行那么他将会自动切换到zabbix用户,如果zabbix用户不存在那么运行将会不成功

useradd -U zabbix

root启动而没有zabbix时报错如下:

zabbix_server []: user zabbix does not exist
zabbix_server []: cannot run as root!

3.创建zabbix数据库并导入初始化数据

登录mysql,创建zabbix数据库:

mysql> create database zabbix default charset utf8;
mysql> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@'%' IDENTIFIED BY 'zabbix';
mysql> flush privileges;

解压软件包,进入数据库初始化脚本所在目录,执行脚本导入数据:

tar -xf zabbix-2.2..tar.gz -C /usr/myapp/
cd /usr/myapp/zabbix-2.2./database/mysql/
mysql -uzabbix -pzabbix zabbix < schema.sql
mysql -uzabbix -pzabbix zabbix < images.sql
mysql -uzabbix -pzabbix zabbix < data.sql

4.安装zabbix

4.1编译zabbix

进入解压主目录,执行编译:

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

此时如果一切正常,则zabbix已成功安装至/usr/local/zabbix目录

configure报错:configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config

原因是net-snmp未安装,安装即可:

yum install net-snmp net-snmp-devel -y

configure报错:configure: error: Curl library not found

原因是curl相关库未安装,安装即可:

yum install libcurl-devel -y

configure报错:configure: error: xml2 library not found

原因是xml2相关库未安装,安装即可:

yum install libxml2-devel -y

4.2配置和启动服务端

cd /usr/local/zabbix/etc
vi zabbix_server.conf

修改其中以下字段值如下:

DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
LogFile=/usr/local/zabbix/log/zabbix_server.log
PidFile=/usr/local/zabbix/tmp/zabbix_server.pid
DBSocket=/usr/local/zabbix/tmp/mysql.sock

做些相关配置,启动服务端:

cd ..
mkdir log tmp
cd tmp
ln -s /mysql/data/mysql.sock mysql.sock
cd ../sbin
chown -R zabbix:zabbix /usr/local/zabbix/
./zabbix_server

如果顺利则此时进程已成功启动并监听10051端口;不过经常进程启动后,却未见监听端口,此时要到上边配置的LogFile查看是何报错,一般都是数据库连接问题

比如以下报错是mysql.sock文件找不到所至,确认上边DBSocket中.sock文件配置正确后kill掉进程重新启动

51599:20170828:114152.674 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/usr/local/zabbix/tmp/mysql.sock' (2)

4.3配置和启动客户端

cd /usr/local/zabbix/etc
vi zabbix_agentd.conf

修改其中以下字段值如下(Server是指信任哪些服务端):

PidFile=/usr/local/zabbix/tmp/zabbix_agentd.pid
LogFile=/usr/local/zabbix/log/zabbix_agentd.log
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix server

启动客户端:

cd ../sbin
./zabbix_agentd

如果一切顺利,此时客户端口启动且监听10050端口

4.4配置zabbix web控制台

在apache根目录下创建zabbix文件夹,并将解压出来的/usr/myapp/zabbix-2.2.19/frontends/php下的所有文件复制到该文件夹下

mkdir /var/www/html/zabbix
cd/usr/myapp/zabbix-2.2./frontends/php
cp -r * /var/www/html/zabbix

启动apache,浏览器访问zabbix目录

service httpd start

红色为未满足的条件,需要处理才能进入下一步

post_max_size/max_execution_time/max_input_time三项,编缉/etc/php.ini将各值修改成Required的值保存即可

time zone项,编缉/etc/php.ini将date.timezone赋为"Asia/Shanghai"即可

date.timezone = "Asia/Shanghai"

bcmath/mbstring/xmlwriter/xmlreader四项,安装这三个模块即可

yum install php-bcmath php-mbstring php-xml -y

配置完成后重启apache,再点击图中的Retry,如下:

报错:Error connecting to database: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

将当前使用.sock文件做个软链接到/var/lib/mysql/mysql.sock即可:

ln -s /mysql/data/mysql.sock /var/lib/mysql/mysql.sock

报错:Configuration file "/var/www/html/zabbix/conf/zabbix.conf.php" created: Fail

说明apache用户在zabbix目录下没有写权限,给与写权限即可,比如:

chown -R apache /var/www/html/zabbix

默认用户名Admin默认密码zabbix(另有一个guest用户默认密码为空);如果不能登录那应该是images.sql和data.sql中的数据没成功导入数据库

可select * from zabbix.users;看表是否为空,为空则说明没成功导入,重新导入再登录即可。

5. 使用zabbix

5.1 添加要监控的主机

server是服务端,agent是监控端;安全配置好agent的主机通过Configuration-Hosts-Create host即可加入监控

这里随便用一个ip来演示一下(要监控的主机必须装好agent),主要填写以下三项

配置好主机信息后再选择一个模版,不选模板会导致Availability项全为灰色(如果为红色那就直接是客户端要么不支持该种方式要么客户端未配置信任服务端)

5.2 监控主机运行情况

切换到Monitoring-Graphs,在Group那几个选项中选好主机和要显示的图表,然后点击Apply,在下方即可显示相应的图表。比如我这里显示主机cpu情况如下图

六、zabbix安全性分析

6.1 web用户名密码安全

zabbix server的web管理页面默认有“Admin/zabbix”和"guest/空"两对账号密码,最好进行修改。

zabbix server的数据库名、数据库用户名、数据库密码全要直接明放在配置文件中,这不太安全但也没有很好的处理办法,只能要求非同组用户不能读写。

6.2 认证机制安全性

zabbix agent其配置文件中的Server项用于指定任信的server,只有在其中的server发来的命令才会响应;zabbix server通过主动添加监控主机,只有自己添加的主机才进行交互。

也就是说zabbix agent和zabbix server之间没有直接的用户名密码认证过程,他们间的相互信任是基于主动配置的信任,这样的认证机制也不算有很大问题。

6.3 server远程命令执行问题

需要zabbix agent在其配置文件中设置“EnableRemoteCommands=1”,agent才会接收server发来的远程命令执行请求,所以也不算说搞定server主机所有agent必然沦陷(当然cpu使用情况等从zabbix自己接口必然都是可以请求的)。

另外即便设置“EnableRemoteCommands=1”,由于zabbix是拒绝以root用户运行的,所以除非设置运行agent的用户可sudo,不然需要root的命令也无法执行成功。

参考:

http://www.ttlsa.com/zabbix/install-zabbix-on-linux-5-ttlsa/

https://blog.csdn.net/hao134838/article/details/57389594

zabbix安装教程的更多相关文章

  1. 一步一步超级详细的zabbix安装教程

    安装说明: 1. 虚拟机上安装两台全新Linux: zabbix-server:192.168.255.128 zabbix-agent :192.168.255.129 2. zabbix-serv ...

  2. Zabbix安装图解教程

    说明: 操作系统:CentOS IP地址:192.168.21.127 Web环境:Nginx+MySQL+PHP zabbix版本:Zabbix 2.2 LTS 备注:Linux下安装zabbix需 ...

  3. Zabbix 客户端安装教程(第二篇)

    Zabbix 客户端安装教程 blog地址:http://www.cnblogs.com/caoguo [root@localhost ~]# yum install -y gcc make [roo ...

  4. zabbix 4.2 安装教程

    1.我这里使用的是ali的yum源 #wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7 ...

  5. zabbix安装全过程

    在了解<zabbix硬件.软件需求>之后,在你心里应该有备选的机器.今天开始安装zabbix.zabbix需要LNMP或者LAMP环境.环境的搭建不在本章范围内. LNMP环境配置Linu ...

  6. Zabbix安装之路

    这次的教程多半是搬运过来的,但都经过小轩亲自测试与修改了.文章最后将公布原资源地址.此篇算是整合,但又不全是整合. 依旧需求开篇:上头让小轩监控一下服务器的情况,在前几篇也有所提到.于是小轩就到处去找 ...

  7. ubuntu16.04下zabbix安装和配置

    介绍 Zabbix是用于网络和应用的开源监控软件. 它提供从服务器,虚拟机和任何其他类型的网络设备收集的数千个度量的实时监控. 这些指标可以帮助您确定IT基础架构的当前运行状况,并在客户投诉之前检测硬 ...

  8. zabbix学习-zabbix安装

    本次安装教程完全参考官方rpm安装教程: https://www.zabbix.com/documentation/3.4/zh/manual/installation/install_from_pa ...

  9. 图文讲解zabbix安装全过程(5)

    在了解<zabbix硬件.软件需求>之后,在你心里应该有备选的机器.今天开始安装zabbix.zabbix需要LNMP或者LAMP环境.环境的搭建不在本章范围内. LNMP环境配置Linu ...

随机推荐

  1. _itemmod_extract_enchant随机附魔提取

    技能 脚本 spell_extract_enchant 提取一条随机FM 随机FM提取 物品脚本:1.spell_extract_enchant 提取一条随机FM2.spell_extract_enc ...

  2. VirtualBox安装Centos6.8出现——E_INVALIDARG (0x80070057)

    VirtualBox使用已有的虚拟硬盘出错: 问题描述:UUID已经存在 Cannot register the hard disk 'E:\system_iso\centos6.8.vdi' {05 ...

  3. 为 10000+ 业务系统提供数据可视化能力的 AntV 又进化了

    小蚂蚁说: 2018 年 AntV 品牌日以知新.知心为主题,旨在让产品一直「知新」,与用户一直「知心」.AntV 是蚂蚁金服全新一代数据可视化解决方案,致力于提供一套简单方便.专业可靠.无限可能的数 ...

  4. ip啊

    网络模型被OSI分成七层,TCP/IP协议大致对应了2.3.4.7层,分别是数据链路层.网络层.传输层.应用层,IP协议处于网络层上,它的工作原理说白了并不复杂: 整个互联网上所有的机器都有唯一一个I ...

  5. 力扣(LeetCode) 104. 二叉树的最大深度

    给定一个二叉树,找出其最大深度. 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数. 说明: 叶子节点是指没有子节点的节点. 示例: 给定二叉树 [3,9,20,null,null,15,7], ...

  6. Qt5数据库

     对于习惯使用SQL语法的用户,QSqlQuery类提供了直接执行SQL语句并处理返回结果的方法.对于习惯使用较高层数据库接口避免使用SQL语句的用户,QSqlTableModel类和QSqlRela ...

  7. Nordic SDK例程目录结构

    Nordic SDK例程目录结构为:SDK版本/ examples /协议角色/例子名称/开发板型号/协议栈型号/工具链类型/具体工程 Nordic每一个例子都支持5种工具链:Keil5/Keil4/ ...

  8. 定时任务redis锁+自定义lambda优化提取冗余代码

    功能介绍: 我系统中需要跑三个定时任务,由于是多节点部署,为了防止多个节点的定时任务重复执行.所以在定时任务执行时加个锁,抢到锁的节点才能执行定时任务,没有抢到锁的节点就不执行.从而避免了定时任务重复 ...

  9. Lua和C++交互 学习记录之九:在Lua中以面向对象的方式使用C++注册的类

    主要内容转载自:子龙山人博客(强烈建议去子龙山人博客完全学习一遍) 部分内容查阅自:<Lua 5.3  参考手册>中文版 译者 云风 制作 Kavcc vs2013+lua-5.3.3 在 ...

  10. Redis的安装及命令返回值

    Linux下安装Reids : http://redis.io/download 下载最新稳定版本 wget http://download.redis.io/releases/redis-3.0.7 ...