一、二進制安裝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,輸入域名
下一步,
若是有出現fail的狀況,修改php.ini裏參數改爲對應的值便可
配置完數據庫信息後,一直下一步便可
若是出現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-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網頁界面添加相應模板便可