1. 程式人生 > >Linux安全基本知識——zabbix

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建立一個登陸使用者,以及儲存資料的庫

[[email protected] ~]# 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 安裝依賴項軟體

[[email protected] ~]# yum -y install gcc make net-snmp-devel curl-devel libevent-devel(這個包可能沒有,需要到網上下載)

       1.2 進行原瑪編譯安裝

[[email protected] ~]# tar -xf zabbix.tar.gz && cd zabbix
[
[email protected]
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!                  * *              <http://www.zabbix.com>                    * *********************************************************** [[email protected] 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檔案,匯入資料庫資訊

[[email protected] zabbix]# cp -r frontends/php/ /網站網頁目錄/html/zabbix
[[email protected] zabbix]# cd database/mysql/ 
[[email protected] mysql]# mysql -u yzy -p密碼 zabbix < schema.sql 
[[email protected] mysql]# mysql -u yzy -p密碼 zabbix < images.sql 
[[email protected] mysql]# mysql -u yzy -p密碼 zabbix < data.sql

       1.4 進行php基本配置

[[email protected] ~]# yum -y install php-gd php-xml php-ldap
[[email protected] ~]# yum install -y php-bcmath php-mbstring php-common
# 這幾個yum預設沒有,需要上網下載,而且他們的版本需要一樣,其中php-common系統預設安裝是是5.4.16版本

# 修改php引數然後重啟服務
[[email protected] ~]# 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

[[email protected] ~]# systemctl restart php-fpm
php.ini配置解釋
date.timezone 設定時區
max_execution_time 最大執行時間,秒
post_max_size POST資料最大容量
max_input_time 伺服器接收資料的時間限制
memory_limit 記憶體容量限制

    2. 進行Zabbix服務初始配置        2.1 進行網頁配置

[[email protected] ~]# cp -r /zabbix/frontends/php/ /網站網頁目錄/html/zabbix
[[email protected] ~]# chmod o+w /網站網頁目錄/html/zabbix/conf/

       兩個辦法:一個是用瀏覽器訪問Zabbix的php網頁然後進行配置,不過再進行配置前,需要修改許可權:暫時讓一個其他人可以修改,在頁面配置好後,再改回來        另一個是手寫配置檔案 再拷貝了原始碼包中的php檔案目錄下的conf檔案中寫一個zabbix.conf.php

[[email protected] ~]# cat > /網站網頁目錄/conf/zabbix.conf.php <<EOF
<?php
// Zabbix GUI configuration file.
global $DB;

$DB['TYPE']     = 'MYSQL';
$DB['SERVER']   = 'localhost';
$DB['PORT']     = '0';
$DB['DATABASE'] = 'zabbix資料庫名';
$DB['USER']     = 'zabbix使用者名稱';
$DB['PASSWORD'] = '資料庫密碼';

// Schema name. Used for IBM DB2 and PostgreSQL.
$DB['SCHEMA'] = '';

$ZBX_SERVER      = '本機IP';
$ZBX_SERVER_PORT = '埠號';
$ZBX_SERVER_NAME = '自定義一個服務名';

$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;

EOF

       2.2 改配置檔案,以及拷貝啟動指令碼到path位置,然後就可以用指令碼開始啟動服務

[[email protected] ~]# 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

[[email protected] ~]# 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 自定義操作命令的配置資訊
[[email protected] ~]# 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

[[email protected] ~]# zabbix_agentd start
netstat -ntlup | grep 10050

      3.2 監控遠端主機(裝包[原始碼編譯]、配置、啟服務)

        3.2.1 安裝依賴項、解壓目錄、配置、編譯、安裝

[[email protected] ~]# yum install -y gcc pcre-devel
[[email protected] ~]# tar -xf zabbix原始碼包 
[[email protected] ~]# cd zabbix解壓後原始碼包目錄
[[email protected] zabbix]# ./configure --prefix=/zabbix工作目錄 --enable-agent && make && make install

        3.2.2 修改agent配置檔案、拷貝並修改啟動指令碼

[[email protected] ~]# 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

[[email protected] ~]# 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 建立使用者、使用指令碼啟動服務

[[email protected] ~]# useradd zabbix ; zabbix_agentd start

    4. 自定義監控項       4.1 配置被監控端         4.1.1 允許自定義監控項,對UnsafeUserParameters、Include兩個欄位的資料修改,上面配置中有寫         4.1.2 定義監控命令

[[email protected] ~]# cat > /zabbix工作目錄/etc/zabbix_agentd.conf.d/自定義檔名.conf << EOF
UserParameter=自定義命令名,Linux命令(一些特殊字元用 \ 來取消其含義)
EOF
# 修改完成後,重其agent服務
[[email protected] ~]# zabbix_agentd restart

        4.1.3 測試定義監控命令

[[email protected] ~]# /zabbix工作目錄/bin/zabbix_get -s 127.0.0.1 -p 10050 -k 自定義的命令名

      4.2 配置監控端         4.2.1 測試被監控端寫的命令能不能用

[[email protected] ~]# /zabbix工作目錄/bin/zabbix_get -s 被監控端IP地址 -p 10050 -k 自定義的命令名

        4.2.2 建立模板、建立應用集、建立監控項 (圖形介面解決)