在CentOS 6下从源码安装Zabbix


=Start=

缘由:

测试需要;研究需要。

参考解答:

Zabbix是一个开源的网络和应用监控软件。Zabbix提供agent并通过 SNMP, TCP 和 ICMP 来检查/监控远端的主机。下面是我根据官网介绍和实际操作总结的一个较为合理的源码安装Zabbix的流程:

一、安装 Zabbix 后台进程

0.安装依赖

一般情况下,完全安装Zabbix需要基于LAMP或LNMP环境(因为Zabbix有Web界面且需要和数据库打交道,并且Zabbix的Web界面是用PHP写的),所以,要完整的安装Zabbix需要先安装一些依赖(Apache、MySQL/Percona、PHP、curl、snmp、fping、……):

# yum install httpd httpd-devel
# yum install mysql mysql-server 或 # yum install Percona-Server-client-55 Percona-Server-server-55 Percona-Server-devel-55
# yum install php php-cli php-common php-devel php-pear php-gd php-mbstring php-mysql php-xml php-bcmath
# yum install libcurl-devel libxml2-devel net-snmp-devel fping

启动Apache和MySQL:

# /etc/init.d/httpd start
# /etc/init.d/mysql start

对刚安装的MySQL进行一些安全设置:

# mysql_secure_installation
1.源码下载
# wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.0.1/zabbix-3.0.1.tar.gz
# tar zxf zabbix-3.0.1.tar.gz
# cd zabbix-3.0.1
2.创建Zabbix专用账户
# groupadd zabbix
# useradd -g zabbix zabbix
3.创建Zabbix的数据库
# mysql -u<username> -p<password>
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> quit;
# mysql -u<username> -p<password> zabbix < database/mysql/schema.sql

#如果是为Zabbix proxy创建数据库,那下面的步骤其实就可以不用执行了
# mysql -u<username> -p<password> zabbix < database/mysql/images.sql
# mysql -u<username> -p<password> zabbix < database/mysql/data.sql
4.编译 & 安装
# ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
# make install
5.编辑配置文件
# vim /usr/local/etc/zabbix_server.conf
LogFile=/tmp/zabbix_server.log
DebugLevel=3  #如果在测试环境中需要进行调试,可以将3修改成4
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
# vim /usr/local/etc/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
DebugLevel=3  #如果在测试环境中需要进行调试,可以将3修改成4
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix server
6.启动后台进程
# zabbix_server
# zabbix_agentd
7.其它(调试……)
# 可以通过/tmp/zabbix*的log文件调试服务器和客户端运行情况。如果启动成功,服务会监听相应端口
# netstat -lntp | grep "zabbix"
# ps aux | grep "zabbix"

二、安装 Zabbix 的Web界面

0.拷贝PHP文件至Web目录

RHEL系Linux系统中用yum安装的Apache的Web目录默认为「/var/www/html」
如果是从源码安装的Apache,则Web目录默认为「/usr/local/apache2/htdocs」

# mkdir -p /var/www/html/zabbix
# cd frontends/php
# cp -a . /var/www/html/zabbix
# cp /var/www/html/zabbix/conf/zabbix.conf.php.example /var/www/html/zabbix/conf/zabbix.conf.php
# vim /var/www/html/zabbix/conf/zabbix.conf.php
$DB["DATABASE"] = 'zabbix';
$DB["USER"] = 'root';
$DB["PASSWORD"] = 'password';
1.修改PHP配置文件
# 可以通过命令「php --ini」查看PHP的配置文件在哪,然后编辑如下项目的值:
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/Shanghai
2.登录并修改默认密码
#用浏览器访问 http://<server_ip_or_name>/zabbix
用默认的用户名、密码为「Admin:zabbix」进行登录

#然后访问 http://<server_ip_or_name>/zabbix/profile.php
修改默认的密码(请设置复杂密码!!!)
3.其它

注意关注Apache的日志文件「/var/log/httpd/error_log」方便进行查错。

参考链接:

=END=

, ,

《 “在CentOS 6下从源码安装Zabbix” 》 有 15 条评论

  1. 注意几点:
    1.Zabbix 3.x需要PHP版本>=5.4
    2.在「安装 Zabbix 的Web界面」这一步,可以通过浏览器界面进行,否则会出现一些意想不到的错误……
    3.在MySQL中「127.0.0.1」和「localhost」是不完全等价的,建议使用「127.0.0.1」

  2. 默认情况下,Zabbix的zabbix_agentd进程监听的是10050端口,zabbix_server进程监听的是10051端口,所以在没有办法登录机器检查是否安装以及启动了Zabbix的办法有:
    1.直接扫描机器的10050/10051端口进行判断(但在部分情况下可能因为访问控制/白名单等因素导致漏报);
    2.扫描机器的80/443端口获取banner信息进行判断(无法保证100%准确);
    3.根据从流量中提取的信息进行判断(准确性有保障,但是实现难度比较大,包括:流量是否全面、分析是否准确……);

  3. Linux用户管理(添加、修改、删除)
    `
    useradd #可以用 -u 和 -g 选项明确指定新建用户的UID/GID号
    userdel #可以用 -f 选项强制删除自己创建的 UID/GID 为 0 的账户
    usermod
    `
    Linux 用户和用户组管理
    http://www.runoob.com/linux/linux-user-manage.html

    Linux 系统中用户/组账号的基本常用命令备忘录 #简单了解一下useradd和adduser命令的区别
    http://chaishiwei.com/blog/863.html

    添加及删除uid为0的用户 #一个可选方法
    http://www.annhe.net/article-3020.html

    https://wiki.archlinux.org/index.php/Users_and_groups_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

  4. 这么多监控组件,总有一款适合你
    https://mp.weixin.qq.com/s/rdD54-zyapjlubM5K1jUeQ
    `
    监控系统的划分:
    数据象限 从数据类型划分,大体可分为:日志(logs)、监控(metrics)、调用链(tracing)。
    功能象限 从业务角度划分,可分为:基础监控、中间件监控、业务监控

    不管什么样的监控系统,又涉及以下几个模块过程:
    ❏ 数据收集。如何在广度和效率上进行数据归并。
    ❏ 数据加工。数据的整理、传输和存储。
    ❏ 特称提取。大数据计算,中间结果生成存储。
    ❏ 数据展示。高颜值、多功能显示。

    监控体系的复杂之处就在于杂,如何理清其中的关系,给用户一个合理的思考模式,才是最重要的,此所谓产品体验优先。从整个的发展历程中可以看到,标准化是对技术最好的改进,但也要经历一个群魔乱舞的年代。既得利益者会维护自己的壁垒,拒绝接纳和开放,然后猛然间发现,自己的东西已经落伍,跟不上时代的脚步了。
    `

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注