Linux安全基本知识——zabbix

Zabbix 监控服务

    0. 环境准备:在zabbix服务器上搭建lnmp服务,让zabbix监控用网页展示出来
       0.1 安装nginx,并修改主配置

http {
……
    fastcgi_buffers 8 16k;
    fastcgi_buffer_size 32k;
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
……
    server {
    ……
        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi.conf;
        }
    ……
    }
……
}

       0.2 安装数据库服务mariadb,给zabbix创建一个登陆用户,以及存储数据的库

[root@zabbix ~]# yum install -y mariadb-server mariadb
systemctl restart mariadb
mysqladmin -uroot password '密码'
mysql -u root -p密码 -e'create database 库名 character set utf8'
mysql -u root -p密码 -e'grant all on 库名.* to 用户名@"localhost" identified by "密码"'


       0.3 准备php环境 ,装包php-fpm并启动服务即可,然后查看一些nginx能不能解析php文件。

       0.4 创建一个zabbix用户


    1. 安装Zabbix服务
       1.1 安装依赖项软件

[root@zabbix ~]# yum -y install gcc make net-snmp-devel curl-devel libevent-devel(这个包可能没有,需要到网上下载)

       1.2 进行原玛编译安装

[root@zabbix ~]# tar -xf zabbix.tar.gz && cd zabbix
[root@zabbix zabbix]# ./configure --prefix=/安装位置 --enable-server --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl
# 配置成功后,会有下面这个提示,然后可以安装了
***********************************************************
*            Now run 'make install'                       *
*                                                         *
*            Thank you for using Zabbix!                  *
*                                  *
***********************************************************
[root@zabbix zabbix]# make && make install
--enable-server 安装部署zabbix服务器端软件
--enable-agent 安装部署zabbix被监控端软件,让zabbix可以监控自己
--enable-proxy 安装部署zabbix代理相关软件,这样zabbix可以连接代理服务器进行监控
--with-mysql=数据库目录 配置mysql_config路径, =数据库目录  可以不写,这样默认数据存在/var/lib/mysql下
--with-net-snmp 允许zabbix通过snmp协议监控其他设备 (需要依赖项)
--with-libcurl 安装相关curl库文件,这样zabbix就可以通过curl连接http等服务,测试被监控主机服务的状态 (需要依赖项)


       1.3 进行数据初始化,从源码包中拷贝php文件,导入数据库信息

[root@zabbix zabbix]# cp -r frontends/php/ /网站网页目录/html/zabbix
[root@zabbix zabbix]# cd database/mysql/ 
[root@zabbix mysql]# mysql -u 用户 -p密码 zabbix < schema.sql 
[root@zabbix mysql]# mysql -u 用户 -p密码 zabbix < images.sql 
[root@zabbix mysql]# mysql -u 用户 -p密码 zabbix < data.sql

       1.4 进行php基本配置

[root@zabbix ~]# yum -y install php-gd php-xml php-ldap
[root@zabbix ~]# yum install -y php-bcmath php-mbstring php-common
# 这几个yum默认没有,需要上网下载,而且他们的版本需要一样,其中php-common系统默认安装是是5.4.16版本

# 修改php参数然后重启服务
[root@zabbix ~]# sed -i '/max_execution_time/cmax_execution_time = 300' /etc/php.ini
sed -i '/^max_input_time/cmax_input_time = 300' /etc/php.ini
sed -i '/post_max_size/cpost_max_size = 16M' /etc/php.ini
sed -i '/;date.timezone/cdate.timezone = Asia\/ShangHai' /etc/php.ini

[root@zabbix ~]# systemctl restart php-fpm
php.ini配置解释
date.timezone 设置时区
max_execution_time 最大执行时间,秒
post_max_size POST数据最大容量
max_input_time 服务器接收数据的时间限制
memory_limit 内存容量限制


    2. 进行Zabbix服务初始配置
       2.1 进行网页配置

[root@zabbix ~]# cp -r /zabbix/frontends/php/ /网站网页目录/html/zabbix
[root@zabbix ~]# chmod o+w /网站网页目录/html/zabbix/conf/

       两个办法:一个是用浏览器访问Zabbix的php网页然后进行配置,不过再进行配置前,需要修改权限:暂时让一个其他人可以修改,在页面配置好后,再改回来
       另一个是手写配置文件 再拷贝了源码包中的php文件目录下的conf文件中写一个zabbix.conf.php

[root@zabbix ~]# cat > /网站网页目录/conf/zabbix.conf.php <

       2.2 改配置文件,以及拷贝启动脚本到path位置,然后就可以用脚本开始启动服务

[root@zabbix ~]# sed -i '/DBHost=/cDBHost=localhost' /zabbix工作目录/etc/zabbix_server.conf
sed -i '/^DBName=/cDBName=zabbix数据库名' /zabbix工作目录/etc/zabbix_server.conf
sed -i '/^DBUser=/cDBUser=zabbix数据库用户名' /zabbix工作目录/etc/zabbix_server.conf
sed -i '/DBPassword=/cDBPassword=数据库密码' /zabbix工作目录/etc/zabbix_server.conf
cp /zabbix源码包/misc/init.d/fedora/core/zabbix_* /usr/local/bin/
sed -i '/BASEDIR=/c\        BASEDIR=/zabbix工作目录' /usr/local/bin/zabbix_server

[root@zabbix ~]# zabbix_server start
netstat -ntlup | grep 10051
DBHost=localhost 数据库主机,默认该行被注释
DBName=zabbix 设置数据库名称
DBUser=zabbix 设置数据库账户
DBPassword=zabbix 设置数据库密码,默认该行被注释
LogFile=/tmp/zabbix_server.log 设置日志,仅查看以下即可 

    3. 基本监控配置
      3.1 监控本机

LogFile 指定日志文件的存储信息
Server Agent服务可以被哪些IP访问
ServerActive zabbix监控服务器的IP和端口
UnsafeUserParameters 可以自定义监控命令
Include=/zabbix工作目录/etc/zabbix_agentd.conf.d/*.conf 自定义操作命令的配置信息
[root@zabbix ~]# sed -i '/^Server=/cServer=127.0.0.1' /zabbix工作目录/etc/zabbix_agentd.conf
sed -i '/^ServerActive=/cServerActive=127.0.0.1:10051' /zabbix工作目录/etc/zabbix_agentd.conf
sed -i '/UnsafeUserParameters=/cUnsafeUserParameters=1' /zabbix工作目录/etc/zabbix_agentd.conf
sed -i '/Option: Include/aInclude=/zabbix工作目录/etc/zabbix_agentd.conf.d/*.conf' /zabbix工作目录/etc/zabbix_agentd.conf
sed -i '/BASEDIR=/c\        BASEDIR=/zabbix工作目录' /usr/local/bin/zabbix_agentd

[root@zabbix ~]# zabbix_agentd start
netstat -ntlup | grep 10050


      3.2 监控远端主机(装包[源码编译]、配置、启服务)

        3.2.1 安装依赖项、解压目录、配置、编译、安装

[root@mysql ~]# yum install -y gcc pcre-devel
[root@mysql ~]# tar -xf zabbix源码包 
[root@mysql ~]# cd zabbix解压后源码包目录
[root@mysql zabbix]# ./configure --prefix=/zabbix工作目录 --enable-agent && make && make install

        3.2.2 修改agent配置文件、拷贝并修改启动脚本

[root@mysql ~]# sed -i '/^Server=/cServer=127.0.0.1,监控服务器的IP' /zabbix工作目录/etc/zabbix_agentd.conf
sed -i '/^ServerActive=/cServerActive=监控服务器的IP:10051' /zabbix工作目录/etc/zabbix_agentd.conf
sed -i '/UnsafeUserParameters=/cUnsafeUserParameters=1' /zabbix工作目录/etc/zabbix_agentd.conf
sed -i '/Option: Include/aInclude=/zabbix工作目录/etc/zabbix_agentd.conf.d/*.conf' /zabbix工作目录/etc/zabbix_agentd.conf

[root@mysql ~]# cp /zabbix源码包/misc/init.d/fedora/core/zabbix_* /usr/local/bin/
sed -i '/BASEDIR=/c\        BASEDIR=/zabbix工作目录' /usr/local/bin/zabbix_agentd

        3.2.3 创建用户、使用脚本启动服务

[root@mysql ~]# useradd zabbix ; zabbix_agentd start

    4. 自定义监控项
      4.1 配置被监控端
        4.1.1 允许自定义监控项,对UnsafeUserParameters、Include两个字段的数据修改,上面配置中有写
        4.1.2 定义监控命令

[root@mysql ~]# cat > /zabbix工作目录/etc/zabbix_agentd.conf.d/自定义文件名.conf << EOF
UserParameter=自定义命令名,Linux命令(一些特殊字符用 \ 来取消其含义)
EOF
# 修改完成后,重其agent服务
[root@mysql ~]# zabbix_agentd restart

        4.1.3 测试定义监控命令

[root@mysql ~]# /zabbix工作目录/bin/zabbix_get -s 127.0.0.1 -p 10050 -k 自定义的命令名

      4.2 配置监控端
        4.2.1 测试被监控端写的命令能不能用

[root@zabbix ~]# /zabbix工作目录/bin/zabbix_get -s 被监控端IP地址 -p 10050 -k 自定义的命令名

        4.2.2 创建模板、创建应用集、创建监控项 (图形界面解决)

    5. 设置被监控端主动传递数据给监控端
      其主要原理,就算让被监控端自己连接监控端,把数据传递给监控端,和一般配置不同的是,这次监控端和被监控端连接,不是通过IP而且名字,所以这次配置的时候名字必须设置完全不同

[root@ mysql ~]# sed -i 's/^Server=/# Server=/' /zabbix工作目录/etc/zabbix_agentd.conf
sed -i '/StartAgents=/cStartAgents=0' /zabbix工作目录/etc/zabbix_agentd.conf
sed -i '/^ServerActive/cServerActive=zabbix服务器IP' /zabbix工作目录/etc/zabbix_agentd.conf
sed -i '/RefreshActiveChecks=/cRefreshActiveChecks=每隔多少秒传递一次数据' /zabbix工作目录/etc/zabbix_agentd.conf
sed -i '/^Hostname=/cHostname=自定义的该主机名(要和其他机器不同)' /zabbix工作目录/etc/zabbix_agentd.conf

 

你可能感兴趣的:(Linux,安全与监控)