大做業之zabbix

一、二進制安裝JDK(1.8):用於java-geteway
上傳JDK到/usr/local/src/目錄下,解壓:php

[root@localhost src]# tar zxf jdk-8u181-linux-x64.tar.gz
[root@localhost src]# mv jdk1.8.0_181/ /usr/local/jdk1.8

二、添加環境變量html

[root@localhost src]# vim /etc/profile                  #在最後面添加如下內容
JAVA_HOME=/usr/local/jdk1.8/
JAVA_BIN=/usr/local/jdk1.8/bin
JRE_HOME=/usr/local/jdk1.8/jre
PATH=$PATH:/usr/local/jdk1.8/bin:/usr/local/jdk1.8/jre/bin
CLASSPATH=/usr/local/jdk1.8/jre/lib:/usr/local/jdk1.8/lib:/usr/local/jdk1.8/jre/lib/charsets.jar

[root@localhost src]# source /etc/profile   # 使配置文件當即生效

三、驗證環境變量是否生效java

[root@localhost src]# java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

源碼安裝LNMP環境
參考:http://www.javashuo.com/article/p-onjjtyzn-d.html 須要注意的是php的編譯參數有點不一樣,使用以下的php編譯參數安裝phpmysql

./configure \
--prefix=/usr/local/php-fpm \
--with-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-pdo-mysql=/usr/local/mysql \
--with-mysql-sock=/tmp/mysql.sock \
--enable-mysqlnd \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--with-ldap \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--enable-fpm \
--enable-mbstring \
--with-mcrypt \
--with-gd \
--with-gettext \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--enable-short-tags \
--enable-static \
--with-xsl \
--with-fpm-user=php-fpm \
--with-fpm-group=php-fpm \
--enable-opcache=no  \
--enable-ftp

若是出現如下錯誤:linux

configure: error: Cannot find ldap.h
安裝 :
yum install -y openldap
yum install -y openldap-devel

configure: error: Cannot find ldap libraries in /usr/lib
解決辦法:
cp -frp /usr/lib64/libldap* /usr/lib/

編譯:nginx

make&& make install

若是編譯過程出現以下錯誤:web

/usr/bin/ld: ext/ldap/ldap.o: undefined reference to symbol 'ber_scanf'
//usr/lib64/liblber-2.4.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [sapi/cli/php] 錯誤 1
解決辦法:
編輯MakeFile
找到 開頭是 'EXTRA_LIBS = ' 這一行 在結尾加上 '-llber' 而後再執行 make && make install

編譯完成後編輯php.ini修改以下參數的值:sql

max_execution_time=300
memory_limit=128M
post_max_size=16M
upload_max_filesize=2M
max_input_time=300
date.timezone=Asia/Shanghai
always_populate_raw_post_data = -1

四、源碼安裝zabbix
依賴包數據庫

yum install -y net-snmp net-snmp-devel fping unixODBC-devel openssl-devel OpenIPMI-devel libevent libevent-devel pcre-devel

建立zabbix用戶,下載zabbix源碼包並安裝apache

[root@localhost src]# useradd zabbix -s /sbin/nologin
[root@localhost src]# wget https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.4.12/zabbix-3.4.12.tar.gz
[root@localhost src]# tar zxf zabbix-3.4.12.tar.gz
[root@localhost src]# cd zabbix-3.4.12
[root@localhost zabbix-3.4.12]# ./configure --prefix=/usr/local/zabbix-3.4.2 --enable-server --enable-agent --enable-java --with-mysql=/usr/local/mysql/bin/mysql_config --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-unixodbc --with-openssl
[root@localhost zabbix-3.4.12]# make && make install

mysql中建立zabbix庫,並受權用戶

mysql> create database zabbix character set utf8;
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix';

導入zabbix源碼包中的數據到mysql,源碼包在/usr/local/src下

[root@localhost ~]# cd /usr/local/src/zabbix-3.4.12/database/mysql/
[root@localhost mysql]# ll
總用量 4876
-rw-r--r-- 1 mysql mysql 2877497 7月  30 19:41 data.sql
-rw-r--r-- 1 mysql mysql 1978341 7月  30 19:41 images.sql
-rw-r--r-- 1 mysql mysql  134791 7月  30 19:41 schema.sql
[root@localhost mysq]# mysql -uzabbix -p<password> zabbix < schema.sql
[root@localhost mysq]# mysql -uzabbix -p<password> zabbix < images.sql
[root@localhost mysq]# mysql -uzabbix -p<password> zabbix < data.sql

拷貝源碼包的啓動腳本到/etc/init.d

[root@localhost mysql]# cd /usr/local/src/zabbix-3.4.12/misc/init.d/fedora/core
[root@localhost core]# cp zabbix_* /etc/init.d/
[root@localhost core]# ln -s /usr/local/zabbix/etc/ /etc/zabbix    #把配置文件連接到/etc下

修改啓動腳本

]# sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix-3.4.2/#g" /etc/init.d/zabbix_server 
]# sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix-3.4.2/#g" /etc/init.d/zabbix_agentd

修改zabbix服務端配置文件

[root@localhost core]# vi /etc/zabbix/zabbix_server.conf  #修改以下內容
LogFile=/tmp/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=<password>       #數據庫中zabbix用戶的密碼
DBSocket=/data/mysql/mysql.sock
Timeout=4
LogSlowQueries=3000

修改zabbix客戶端配置文件

[root@localhost core]# vi /etc/zabbix/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
Server=127.0.0.1            # 被動模式中服務端或代理端的IP地址
ServerActive=127.0.0.1      # 主動模式中服務端或代理端的IP地址
Hostname=zabbix             # 當前客戶端所在服務器的主機名;

複製源碼包中zabbix站點web文件到nginx站點目錄

cp -a /usr/local/src/zabbix-3.4.2/frontends/php/* /usr/local/nginx/html/

啓動zabbix服務

/etc/init.d/zabbix_server start
/etc/init.d/zabbix_agentd start

訪問zabbix頁面,綁定windows的host,輸入域名
大做業之zabbix
下一步,
大做業之zabbix
若是有出現fail的狀況,修改php.ini裏參數改爲對應的值便可
配置完數據庫信息後,一直下一步便可
大做業之zabbix
若是出現Unable to create the configuration file.
解決方法:
設置 web服務器用戶在zabbix網頁的conf/目錄具備寫權限,配置文件會自動保存。
至此,zabbix源碼安裝完成
一、zabbix配置中文語言
登錄zabbix網頁,默認,用戶名admin,密碼zabbix,點擊administrator-user,點擊admin用戶,修改密碼,Language選擇chinese把 語言修改爲中文,而後更新,保存,退出從新登錄便可
二、圖形界面中文亂碼解決,修改zabbix網頁文件的 fonts目錄下的字體文件

]# yum install wqy-microhei-fonts -y
]# cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/local/nginx/html/fonts/DejaVuSans.ttf
或者把windows系統裏的楷體常規上傳到服務器上:C:\Windows\Fonts\simkai.ttf
]# cd /usr/local/nginx/html/fonts
]# rz simkai.ttf
]# mv DejaVuSans.ttf DejaVuSans.ttf.bak
]# mv simkai.ttf DejaVuSans.ttf

三、建立自動發現規則,發出網絡上的主機並監控
點擊配置-自動發現-建立發現規則
大做業之zabbix

四、全部監控主機都須要安裝zabbix-agent,編輯zabbix_agent.conf文件,修改以下內容

Server=192.168.118:109定義被動模式的server端
ServerActive=192.168.118.109定義主動模式的server端

五、添加監控項目
需求1,
監控各個主機基礎指標,CPU,內存,硬盤,網卡流量成圖,web站點的可用性
建立模板,

建立方式:連接 OS Linux模板 而後取消連接,刪除多餘的監控項
模板名 Template_Base 模板應用到的全部主機
監控項保留下面這幾個CPU內存相關的監控項,其他的均可以刪除掉,沒有監控項的應用集也能夠刪除
Agent ping CPU user time Number of processes Number of running processes Processor load (1 min average per core) Total memory

自動發現網卡和硬盤

把兩個自動發現的更新時間修改成 30s 當圖形中有了自動發現的圖形後能夠改回30m 或者1h
這兩個自動發現會自動建立 網卡流量 和 硬盤狀態 的圖形

檢測web站點的可用性

在zbx-server中寫入一條 hosts:
echo '192.168.118.109 bbs.yuankeedu.com blog.yuankeedu.com' >> /etc/hosts
在zabbix的web頁面選擇 配置 -- 主機 -- zbx-server -- web監測 -- 右上角建立web場景
場景選項卡中填寫
名稱:web可用性檢測
新的應用集: web_check
客戶端:隨意選擇一個,就是模擬什麼瀏覽器訪問監測的站點
步驟選項卡填寫:
點擊步驟框中的添加添加一個步驟, 填寫一個自定義的步驟名稱 填寫要檢測的站點的URL: http://www.yuankeedu.com 填寫最下面的狀態碼 200 點擊最下邊的添加按鈕完成步驟的添加
點擊添加按鈕完成web場景的添加
再按照前面的步驟將其餘兩個web站點也添加上
添加完成過幾十秒就能夠在 監測中 -- web檢測 中查看狀態了

自定義監控項(監控80端口鏈接數)
須要到客戶端定義腳本:

$ sudo vim /usr/local/sbin/estab.sh 
//內容以下
#!/bin/bash
##獲取80端口併發鏈接數
netstat -ant |grep ':80 ' |grep -c ESTABLISHED
給腳本受權:
$ sudo chmod 755 /usr/local/sbin/estab.sh
修改配置文件
$ sudo vim /etc/zabbix/zabbix_agentd.conf
//增長
UnsafeUserParameters=1  //表示使用自定義腳本
UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh

//自定義監控項的key爲my.estab.count(也就是在監控項中須要填寫的鍵值),後面的[*]裏面寫腳本的參數,若是沒有參數則能夠省略,若是有須要用逗號分隔,腳本爲/usr/local/sbin/estab.sh
重啓客戶端的zabbix服務:

$ sudo systemctl restart zabbix-agent

到服務端驗證,執行命令:

zabbix_get -s 192.168.14.103 -p 10050 -k 'my.estab.count'
0

-s:源地址
-p: 端口
-k: 鍵值

如上顯示0即爲沒有任何鏈接。
進入zabbix服務器的web頁面,給每一臺web主機建立監控項和圖形
而後建立觸發器:

名稱:web1:併發鏈接數
嚴重性:警告
表達式:{web1:my.estab.count.last(,30)}>100
點擊最下邊的添加按鈕完成觸發器的添加
再將這個觸發器複製到其餘web主機,修改一下名稱

自定義監控項:檢測Mysql隊列,超過300報警(mysql主機)
在客戶端開啓自定義監控腳本。修改客戶端的配置文件zabbix_agent.conf,加入過修改如下內容:

UnsafeUserParameters=1
UserParameter=process.count[*],/usr/local/sbin/process_count.sh

腳本

#!/bin/bash
# script name: process_count.sh
export  MYSQL_PWD=123456           #這裏能夠先定義密碼,下面的命令就能夠省略-p
process_count=`mysql -uroot  -e "SHOW FULL PROCESSLIST;" |wc -l`
echo $process_count

修改腳本權限,並重啓zabbix-agent

sudo chmod 755 /usr/local/sbin/process_count.sh
systemctl restart zabbix-agent

進入zabbix網頁,配置-主機-監控項-建立監控項
鍵值填process.count[*],就是上面自定義的鍵值,而後再爲該項目建立觸發項

自定義監控項:mysql慢查詢日誌,查詢日誌超過60條/分鐘告警

修改/etc/my.cn 配置文件 加入如下內容, 開啓慢查詢日誌 slow_query_log = ON slow_query_log_file = /data/mysql/slow.log long_query_time = 2 # 查詢超過2秒就記錄慢查詢日誌 3.重啓MySQL服務 service mysqld restart

先修改zabbix-agent.conf,添加如下字段

UnsafeUserParameters=1                 #表示使用自定義腳本                 
UserParameter=slow.query.count[*],/usr/local/sbin/slow_query_count.sh     #定義鍵值和腳本存放路徑

建立慢查詢統計腳本sudo vim /usr/local/sbin/slow_query_count.sh

#!/bin/bash
# script name: slow_query_count.sh
slow_log=/data/mysql/dbm-slow.log
grep 'timestamp' $slow_log | awk -F '=' '{print $2}' |awk -F ';' '{print $1}'|sort -r > /tmp/timestamp.log
now=`sed -n '1'p /tmp/timestamp.log`
alert_num=60
one_min_ago=$[$now-60]
num=0
##### 判斷兩個時間戳以前的差值
slow_query_sum() {
    if [ $1 -ge $2 ]
    then
        num=$[$num+1]
    else
    break
    fi
}
##### 獲取在一分鐘內的慢查詢數

for n in `cat /tmp/timestamp.log`
do
    slow_query_sum $n $one_min_ago
done
##### 刪除臨時文件
rm -f /tmp/timestamp.log
# There are $num slow query in a minute.
echo $num

修改腳本權限,並重啓zabbix-agent

sudo chmod 755 /usr/local/sbin/slow_query_count.sh
systemctl restart zabbix-agent

同上,而後在zabbix網頁上添加自定義監控項,和觸發器
zabbix使用jmx監控tomcat
前提:編譯zabbix server時須要提供java支持,即添加--enable-java該選項。
一、zabbix server段配置java支持。此處編譯安裝zabbix的目錄爲/usr/local/zabbix-3.4.2。

[root@localhost fonts]# vi /usr/local/zabbix-3.4.2/sbin/zabbix_java/settings.sh   #修改以下字段的值
 LISTEN_IP="0.0.0.0"            //監聽的服務器地址
 LISTEN_PORT=10052            //監聽的端口
 PID_FILE="/tmp/zabbix_java.pid"    //指定zabbix_java的pid文件地址
 START_POLLERS=5
TIMEOUT=3

二、編輯/usr/local/zabbix/etc/zabbix_server.conf,修改完成以後,內容以下:

LogFile=/tmp/zabbix_server.log    //指明zabbix_server的日誌文件地址
DBHost=localhost                //鏈接的數據庫地址
DBName=zabbix                //鏈接的數據庫名稱
DBUser=zabbix                //鏈接數據庫的用戶名
DBPassword=zabbix            //鏈接數據庫密碼
JavaGateway=192.168.118.109        //java網關地址,即server端ip地址
JavaGatewayPort=10052            //java網關監聽端口
Timeout=20                    //超時時間
FpingLocation=/usr/sbin/fping    //fping命令絕對地址
LogSlowQueries=3000
AllowRoot=1                    //容許root啓動
User=root                    //zabbix服務的啓動用戶
StartPollers=50
StartPingers=100
StartJavaPollers=5
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts    //zabbix額外的腳本地址

三、重啓zabbix server服務,以及啓動zabbix java支持服務。

/etc/init.d/zabbix_server restart
cd /usr/local/zabbix-3.4.2/sbin/zabbix_java && sh startup.sh

四、在zabbix agent部署的服務器上更改配置文件,修改tomcat配置文件。個人tomcat目錄:/usr/local/tomcat/bin。

vi /usr/local/tomcat/bin/catalina.sh        #在開頭添加以下內容,注意要加在第二行
CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=12345 -Djava.rmi.server.hostname=192.168.118.110"

其中,hostname=192.168.118.110須要修改成agent部署的服務器地址。更改完成須要重啓tomcat應用服務器,同時查看端口12345是否處於監聽狀態。
[root@localhost fonts]# netstat -lnp|grep 12345
tcp6       0      0 :::12345                :::*                    LISTEN      13453/java

五、在zabbix agent部署的tomcat服務器上,下載對應的java jmx監控的相關jar包並複製到tomcat對應的目錄下。

wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.5.32/bin/extras/catalina-jmx-remote.jar   #個人tomcat是8.5.32
cp catalina-jmx-remote.jar /usr/local/tomcat/lib/

六、在zabbix網頁界面添加相應模板便可

相關文章
相關標籤/搜索