第十七週作業

1、 搭建zabbix服務,實現監控linux和windows的內存,cpu,磁盤,網絡等基礎指標

官方yum源:

[epel]
name=zabbix epel
baseurl=http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/
gpgcheck=0

安裝zabbix:
]# yum list all |grep zabbix

]# yum info zabbix-agent 被監控主機安裝的程序包
其中:
zabbix-web-mysql 爲鏈接mysql的組件;
zabbix-sender 對於agent端使用的測試工具手動發送數據給服務端;
zabbix-get 對於服務器端用到的工具手動到agent端獲取數據;

解決zabbix的依賴軟件:
]# yum -y install mariadb-server
如果是centos6要安裝mysql-server程序包;

]# systemctl start mariadb.service
]# ss -tnl 查看數據庫的3306端口是否監聽;
]# vim /etc/my.cnf
添加:
skip_name_resolve=on 禁止數據庫反解主機名
innodb_file_per_table=on 開啓獨立表空間
其中:
socket=/var/lib/mysql/mysql.sock 此路徑在zabbix配置文件中會用到;

]# systemctl restart mariadb.service
]# mysql
創建數據庫,並授權用戶;
> CREATE DATABASE zabbix CHARSET 'utf8';
> GRANT ALL ON zabbix.* TO zbxuser@'127.0.0.1' IDENTIFIED BY 'zbxpass';
> GRANT ALL ON zabbix.* TO zbxuser@'172.18.11.%' IDENTIFIED BY 'zbxpass';
> FLUSH PRIVILEGES;

安裝zabbix server和web、php等;
]# yum -y install zabbix-server-mysql zabbix-web zabbix-agent zabbix-web-mysql zabbix-sender zabbix-get

]# ls /usr/lib/systemd/system|grep zabbix
zabbix-agent.service
zabbix-server.service
]# rpm -qf /usr/lib/systemd/system/zabbix-server.service 
]# rpm -qf /etc/zabbix/zabbix_server.conf
均可查出zabbix server是由哪個程序包生成的;

初始化zabbix的數據庫,有專用的zabbix腳本實現;
zabbix的2.0與3.0不一樣,2.0有三個sql腳本而且要安裝特定的固定順序依次執行;3.0只有一個sql腳本create.sql,需要把腳本導入到mysql數據庫中;
]# rpm -ql zabbix-server-mysql
其中:/usr/share/doc/zabbix-server-mysql-3.0.2/create.sql.gz
壓縮存放;

]# cd /usr/share/doc/zabbix-server-mysql-3.0.2/
]# gzip -d create.sql.gz
]# mysql -h127.0.0.1 -uzbxuser -p zabbix < create.sql
導入zabbix庫中;

登錄數據庫驗證導入是否成功:
]# mysql
> use zabbix
> SHOW TABLES;
MariaDB [zabbix]> show tables;

]# cd /etc/zabbix/
]# cp /etc/zabbix/zabbix_server.conf{,.bak}
]# vim /etc/zabbix/zabbix_server.conf
其中:
在GENERAL PARAMETERS段:

ListenPort=10051

SourceIP= 執行監控操作時,zabbix server有多個ip時,指定使用的IP,因爲客戶端在執行監控時要驗證服務端ip的,基於ip授權;

日誌設置
日誌類型有三種方式:
system- syslog 寫入系統日誌;
file- file specified with LogFile parameter 自定義單獨使用日誌文件;
console - standard output 日誌發往控制檯,調試才使用;
LogType=file 日誌類型
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0 設置日誌文件大小,超過後自動滾動;0表示不滾動;
PidFile=/var/run/zabbix/zabbix_server.pid 服務端pid文件的路徑;

DBHost=127.0.0.1 數據庫服務器地址;如果不在當前主機此項是必須改的;
DBName=zabbix 數據庫名
DBUser=zbxuser 數據庫登錄用戶
DBPassword=zbxpass 數據庫登錄密碼
DBSocket=/var/lib/mysql/mysql.sock 因爲mysql數據庫在本地,所以,此項爲本土通信使用;

]# systemctl start zabbix-server.service 啓動報錯

注意:centos7.1中trousers程序包版本不支持zabbix,所以只有centos7.2以上版本才支持,因此,需升級trousers版本到trousers-0.3.13-1.el7.x86_64.rpm

]# rpm -U --nodigest trousers-0.3.13-1.el7.x86_64.rpm 不驗證升級安裝程序包;

]# systemctl start zabbix-server.service 再啓動成功;

]# rpm -q php-mysql 確保安裝php-mysql程序包;因爲zabbix依賴php;
]# yum -y install php-mysql httpd

還要指明zabbix的時區,即配置php的時區指定;兩種方式修改php時區,一個是全局php.ini,一個是zabbix在php中自己的配置文件/etc/httpd/conf.d/zabbix.conf;

]# vim /etc/httpd/conf.d/zabbix.conf
其中:
Alias /zabbix /usr/share/zabbix 路徑別名,所有的zabbix頁面文件是在/usr/share/zabbix文件中;
僅修改:
php_value date.timezone Asia/Shanghai
其它都是定義授權項的無需修改;

]# systemctl start httpd.service
]# ss -tnl 查看80端口是否啓動;

zabbix安裝:
依賴關係:
[root@localhost ~]# yum -y install httpd mariadb mariadb-server php php-mysql php-mbstring php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mhash php-fpm
[root@localhost ~]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-get
[root@localhost ~]# yum -y install httpd php php-mysql php-mbstring php-gd php-bcmath php-ldap php-xml

安裝zabbix DB:

# yum install mariadb-server
# systemctl start mariadb.service
mysql > CREATE DATABASE zabbix CHARSET 'utf8';
mysql > GRANT ALL ON ZABBIX.* TO zbxuser@'172.18.11.%' IDENTIFIED BY 'zbxpass';

安裝服務端:
# yum installzabbix-server-mysql zabbix-get

安裝web GUI:
# yum zabbix-web zabbix-web-mysql

安裝agent端:
# yum install zabbix-agent zabbix-sender

zabbix server數據庫初始化:
2.x:三個sql腳本;
3.x:一個sql腳本:
create.sql手動解壓展開

# mysql -h127.0.0.1 -uzbxuser -p zabbix < create.sql

啓動zabbix-server進程:

/usr/lib/systemd/system/zabbix-server.service

配置文件:/etc/zabbix/zabbix_server.conf
必須要要改:數據庫主機地址、密碼,庫名、
指令有四類:
############ GENERAL PARAMETERS #################
##### Passive checks related 客戶端被動的相關配置,服務端主動
##### Active checks related 客戶端主動的相關配置,服務端被動
############ ADVANCED PARAMETERS #################
####### USER-DEFINED MONITORED PARAMETERS ####### 用戶自定義的監控參數
####### LOADABLE MODULES ####### 
####### TLS-RELATED PARAMETERS #######

通用參數:
ListenPort=10051 無需修改,默認;
SourceIP= 
LogType=file 
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid

DBHost=localhost
DBName=zabbix
DBUser=zbxuser
DBPassword=zbxpass

啓動服務:systemctl start zabbix-server.service

注意:centos7.0和7.1需要升級trousers程序包版本;

配置zabbix-web
配置php的時區指定:
(1)php.ini全局配置 date.timezone = Asia/Shanghai
(2)/etc/httpd/conf.d/zabbix.conf

訪問URL:http://server/zabbix
安裝後配置文件:/etc/zabbix/web/zabbix.conf.php

登錄:賬戶/密碼
admin/zabbix

在zabbix上面添加node02主機

1、在"配置"中找見"主機",在右上角點"添加主機"
2、在"主機"中添加node02的ip地址
3、在"模板"中找到適用於linux主機的模板
4、點擊添加,等待幾分鐘,待"可用性的ZBX"顯示綠色的時候就說明添加成功
5、在"監測中"的"圖形"即可查看相關參數

搭建zabbix服務,監控nginx status

[root@node02 ~]# yum install -y nginx-1.10.0-1.el7.ngx.x86_64.rpm
[root@node02 ~]# vim /etc/nginx/conf.d/default.conf (在server的配置段中添加)
location /ngxstatus {
        stub_status;
    }
[root@node02 ~]# systemctl start nginx
3、在node02的zabbix-agent的配置文件中添加自定義監控
[root@node02 ~]# vim /etc/zabbix/zabbix_agentd.conf
 UserParameter=nginx.status[*],/usr/bin/ngxstatus.sh $1 (第296行附近)
4、在node02上面自定義監控項
[root@node02 ~]#  vim /usr/bin/ngxstatus.sh
#!/bin/bash
#
host='127.0.0.1'
port='80'
statusurl='/ngxstatus'
active() {
        curl -s http://${host}:${port}${statusurl}|awk '/^Active/{print $3}'
}
accepts() {
        curl -s http://${host}:${port}${statusurl}|awk 'NR==3{print $1}'
}
handled() {
        curl -s http://${host}:${port}${statusurl}|awk 'NR==3{print $2}'
}
requests() {
        curl -s http://${host}:${port}${statusurl}|awk 'NR==3{print $3}'
}
reading() {
        curl -s http://${host}:${port}${statusurl}|awk 'NR==4{print $2}'
}
writing() {
        curl -s http://${host}:${port}${statusurl}|awk 'NR==4{print $4}'
}
waiting() {
        curl -s http://${host}:${port}${statusurl}|awk 'NR==4{print $6}'
}

$1

### 5、在zabbix-server上添加node02主機的自定義監控項
1、在node02的監控項中創建監控項
2、根據自己定義的鍵值創建監控項
 ####  如nginx.status[accepts] 、nginx.status[waiting] 

 3、在圖形裏面點擊創建圖形
4、稍等片刻,在監控中的圖形可查看到信息
### 缺點:因爲zabbix服務端連續對nginx發送請求,因此nginx-status頁面統計信息會有變差
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章