กลุ่มชุมชนแลกเปลี่ยนความรู้แบ่งปั่น และช่วยเหลือ ต่อการใช้งาน OpenSource Zabbix เพราะการแบ่งปัน นั้นยิ่งใหญ่กว่า.

Zabbix custom API for graph getting (Zabbix custom API สำหรับการดึงรูปภาพกราฟ)

ดาวน์โหลดไฟล์ที่นี่ Zabbix custom API for graph getting 

(Zabbix custom API สำหรับการดึงรูปภาพกราฟ)


Version 1.0


ดาวน์โหลดไฟล์ที่นี่

Download Here


/*

  How to using

    - Place this file in the same directory of zabbix web ui e.g.: /usr/share/zabbix

    Or for security concern or using this API in other server or directory please edit line no. 182 manulally to your Zabbix web ui


    - Requires request parameters as below

      "format": can be one of ("raw" = Raw PNG binary) or ("http" = PNG with HTTP Content-Type) or ("base64" = Base64 in JSON response)

      "authtype": can be one of ("userpass" = user and password are requires) or ("token" = auth is require)

      "graphid": is require

    - Optional request parameters as below (some special)

      "from": example are "2021-01-15 00:00:00" or now-24h or now-1d/d or zabbix standard

      "to": example are "now-1h" or "2021-01-15 00:00:00" or now-1d/d or zabbix standard

  */


  /*

  # Request

  {

      "jsonrpc": "2.0",

      "method": "graph.image",

      "params": {

          "format": "raw/http/base64",

          "authtype": "userpass/token",

       "user": "",

          "password": "",

          "width": 800,

          "height": 200,

          "from": "2021-01-15 00:00:00",

          "to": "now-1h",

          "graphid": 0

      },

      "id": 1,

      "auth": null

  }


  # Response

  {

      "jsonrpc": "2.0",

      "result": {

          "image": ""

      },

      "error": {

        "code": 0,

        "message": null,

        "data": null

      },

      "id": 1

  }


  */

Share:

Installation of CentOS 8 + Zabbix 5.0 + Nginx 1 + php-fpm 7.4 + PostgreSQL 12 + TimescaleDB 2 (การติดตั้ง CentOS 8 + Zabbix 5.0 + Nginx 1 + php-fpm 7.4 + PostgreSQL 12 + TimescaleDB 2)

 Installation of CentOS 8 + Zabbix 5.0 + Nginx 1 + php-fpm 7.4 + PostgreSQL 12 + TimescaleDB 2

(การติดตั้ง CentOS 8 + Zabbix 5.0 + Nginx 1 + php-fpm 7.4 + PostgreSQL 12 + TimescaleDB 2)


PostgreSQL 12 Installation

Installing

# dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# dnf -qy module disable postgresql

# dnf update

# dnf install postgresql12-server

Configuring

# /usr/pgsql-12/bin/postgresql-12-setup initdb

# systemctl enable postgresql-12

# systemctl start postgresql-12


TimescaleDB 2 Installation

Setting up TimescalDB dnf repository

# vi /etc/yum.repos.d/timescale_timescaledb.repo

--Fill content in file named timescale_timescaledb.repo-- 

[timescale_timescaledb]

name=timescale_timescaledb

baseurl=https://packagecloud.io/timescale/timescaledb/el/8/x86_64

repo_gpgcheck=1

gpgcheck=0

enabled=1

gpgkey=https://packagecloud.io/timescale/timescaledb/gpgkey

sslverify=1

sslcacert=/etc/pki/tls/certs/ca-bundle.crt

metadata_expire=300

Install & Configuration

# dnf update

# dnf install timescaledb-postgresql-12

# timescaledb-tune -pg-config /usr/pgsql-12/bin/pg_config

--Answer "yes" to all-- 

# systemctl restart postgresql-12


PHP 7.4 Installation

Installing

# dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

# dnf install epel-release

# dnf update

# dnf module enable php:remi-7.4

# dnf install php-fpm

# systemctl enable php-fpm

# systemctl start php-fpm


Nginx 1 Installation

Installing

# dnf install nginx

# systemctl enable nginx

# systemctl start nginx


Zabbix 5.0 Installation

Installing

# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm

# dnf clean all

# dnf install zabbix-server-pgsql zabbix-web-pgsql zabbix-nginx-conf zabbix-agent

Setting up database

# cd /tmp/

# sudo -u postgres createuser --pwprompt zabbix

# sudo -u postgres createdb -O zabbix -E Unicode -T template0 zabbixdb

# zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbixdb

Setting up timescaledb

# echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbixdb

# zcat /usr/share/doc/zabbix-server-pgsql*/timescaledb.sql.gz | sudo -u zabbix psql zabbixdb

Remark:

Default History chunk = 1 day

Default Trend chunk = 30 day

Default Compress = 7 day

Setting up Zabbix for database

# vi /etc/zabbix/zabbix_server.conf

--Edit content in file--

DBHost=localhost

DBName=zabbixdb

DBUser=zabbix

DBPassword=xxxxxxxx

Configuring PHP-FPM for Zabbix

# vi /etc/php-fpm.d/zabbix.conf

--Edit content in file-- 

php_value[date.timezone] = Asia/Bangkok

Configuring Nginx for Zabbix (Open port TCP/81-HTTP for Zabbix webui - Not default TCP/80)

# vi /etc/nginx/conf.d/zabbix.conf

--Edit content in file--

listen 81 default_server;

Configuring PostgreSQL

# vi /var/lib/pgsql/12/data/pg_hba.conf

--Edit content in file--

host    all             all             127.0.0.1/32           md5

host    all             all             ::1/128                md5


Enable & Restart all related services

# systemctl enable zabbix-server zabbix-agent

# systemctl restart zabbix-server zabbix-agent nginx php-fpm postgresql-12


Continue setting up using Zabbix webui (Rememberer Using port 81)

http://IP_ADDR:81/


Reference:

[1] https://www.zabbix.com/download?zabbix=5.0&os_distribution=centos&os_version=8&db=postgresql&ws=nginx

[2]  https://idomaster.com/solutions/install-zabbix-5-0-timescaledb-postgresql-on-centos8

[3] https://www.postgresql.org

[4] https://www.timescale.com

[5] https://www.zabbix.com/documentation/5.0/manual/appendix/install/db_scripts

[6] https://www.zabbix.com/documentation/5.0/manual/appendix/install/timescaledb

Share:

ขั้นตอนการดำเนินการทำ Zabbix 5 เพื่อให้ส่งแจ้งเตือนผ่าน LINE Notify โดยใช้ Webhook (The how to procedure for Zabbix 5 sending alert via LINE Notify using Webhook)

 ขั้นตอนการดำเนินการทำ Zabbix 5 เพื่อให้ส่งแจ้งเตือนผ่าน LINE Notify โดยใช้ Webhook

(The how to procedure for Zabbix 5 sending alert via LINE Notify using Webhook)

ขั้นตอนที่ 1: ทำการสร้าง "Media types" ในรูปแบบ "Webhook" เพื่อรองรับการทำงานการแจ้งเตือนผ่าน LINE, โดยไปที่เมนู Adminstration -> Media types -> Create media type
(Step 1: Creating "Media types" with type "Webhook" for suppored customising send LINE alert. Goto  Adminstration -> Media types -> Create media type) 



ขั้นตอนที่ 2: ที่หน้าจอ "Media types" กำหนดรายละเอียดดังนี้
(Step 2: On menu named "Media types" specified parameters as following.)

Name: YOUR_MEDIA_TYPE_NAME - e.g.: LineWebhook
Type: Webhook
Script parameters:
  • URL ---> https://notify-api.line.me/api/notify
  • To ---> {ALERT.SENDTO}
  • Subject ---> {ALERT.SUBJECT}
  • Message ---> {ALERT.MESSAGE}
  • linetoken ---> {$LINENOTIFYTOKEN}
Script: FOLLOWING AFTER IMAGE


Script here:
====================
try {
   #Zabbix.Log(4, 'webhook script value='+value);
   var params = JSON.parse(value);
   var req = new CurlHttpRequest();
   var fields = {};
   var resp;
   
   req.AddHeader('Content-Type : application/x-www-form-urlencoded');
   req.AddHeader('Authorization: Bearer '+params.linetoken);

   resp = req.Post(params.URL, 'message='+encodeURIComponent(params.Subject));

   #Zabbix.Log(4, 'webhook response='+resp);

} catch (error) {
    #Zabbix.Log(4, 'webhook json : '+value);
    #Zabbix.Log(4, 'webhook error : '+error);
    resp = error;
}

return JSON.stringify(resp);
====================


ขั้นตอนที่ 3: กำหนดให้ "Message Templates" อย่างน้อยคือ "Problem" และ "Problem recovery", โดยไปที่แท็ป Message templates เลือก Add ที่ Message type อย่างน้อยคือ "Problem" และ "Problem recovery"
(Step 3: Configure the "Message Template" at least are "Problem" and "Problem recovery" , Goto Message templates tab and add Message type at least are "Problem" and "Problem recovery")



ขั้นตอนที่ 4: สามารถทดสอบ "Media Type" ที่สร้างขึ้น ว่าสามารถทำการส่ง Line Notify ได้หรือไม่ โดยสำหรับ linetoken สามารถนำ token ที่ได้จาก LINE มาใส่ได้เลย
(Step 4: To testing this "Media Type" for sending Line Notify, You can fill linetoken with token that get from LINE.)



ขั้นตอนที่ 5: สร้าง "Macro" แบบ "Global" ในรูปแบบ "SecureText" ชื่อ {$LINENOTIFYTOKEN} โดยใส่ค่า token ที่ได้จาก line มาใส่ โดยไปที่เมนู Administration -> General -> Macros
(Step 5: Create "Macro" on "Global" type with "SecureText" capability named {$LINENOTIFYTOKEN} and fill with token that get from LINE.)



ขั้นตอนที่ 6: กำหนดให้ "User" ที่เกี่ยวข้องใช้งาน "Media" ที่สร้างขึ้นตามขั้นตอนที่ 2-3, โดยไปที่เมนู Administration -> Users -> เลือกผู้ใช้งานที่ต้องการ เช่น Admin -> Media โดยกำหนด "Type" เป็นชื่อ Media Type ที่สร้างขึ้นตามขั้นตอนที่ 2-3
(Step 6: Configure the related "User" to using "Media" that created in step no. 2-3, Goto Administration -> Users -> Choose related User such as Admin -> Media the set to "Type")



ขั้นตอนที่ 7: กำหนด "Action" ที่เกี่ยวข้องใช้งาน "Media" ที่สร้างขึ้นตามขั้นตอนที่ 2, โดยไปที่เมนู Configuration -> Actions -> เลือกชื่อ Action ที่ต้องการ หรือสร้าง Action ใหม่ -> จากนั้นกำหนดรายละเอียดดังนี้
(Step 7: Configure the related "Action" to using "Media" that created in step no. 2, Goto Configuration -> Actions -> Choose related Action or Create new Action ->  Then specified detail as following.)

เมนู "Action" (Action menu)

Name: YOUR_ACTION_NAME - e.g.: actiontriggerhigh
Condition: YOUR_ACTION_WILL_BE_WORKING_CONDITION - e.g.: Trigger severity equals High.
Enables: Seleted



ขั้นตอนที่ 8: กำหนด แท็ป "Operations" (Operations tab configuration)



(A) ส่วนการทำงาน "Operations" ทำการ Add ผู้ใช้งานที่ได้ทำการกำหนดไว้ในขั้นตอนที่ 6 และเลือก "Send only to" ตามที่ได้สร้างขึ้นในขั้นตอนที่ 2-3
(For "Operations" section, Add the user that configured in step no. 6 and select "Send only to" that created on step no. 2-3)

(B) เช่นเดียวกันสำหรับ (A) ในส่วนการทำงาน "Recovery operations" ทำการ Add ผู้ใช้งานที่ได้ทำการกำหนดไว้ในขั้นตอนที่ 6 และเลือก "Send only to" ตามที่ได้สร้างขึ้นในขั้นตอนที่ 2-3
(As same as (A), For "Recovery operations" section, Add the user that configured in step no. 6 and select "Send only to" that created on step no. 2-3)



จากนั้น: สามารถสร้าง Trigger และทดสอบการทำงานเพื่อให้มีการส่ง Alert ผ่าน Line Notify ได้ต่อไป
(After that: Could create the Trigger and testing the scenario for sending alert via Line Notify)


Share:

Zabbix + LINE Notify alert with Graph image - Zabbix ส่งแจ้งเตือน LINE Notify ที่มีภาพกราฟ

ขั้นตอนการดำเนินการทำ Zabbix เพื่อให้ส่งแจ้งเตือนผ่าน LINE Notify ที่มีรูปภาพ Graph
(The how to procedure for Zabbix sending alert via LINE Notify with Graph image)

ขั้นตอนที่ 1: ทำการสร้าง "Media types" ในรูปแบบ "Script" เพื่อรองรับการทำงานการเขียนโปรแกรมส่งการแจ้งเตือนผ่าน LINE, โดยไปที่เมนู Adminstration -> Media types -> Create media type
(Step 1: Creating "Media types" with type "Script" for suppored customising send LINE alert. Goto  Adminstration -> Media types -> Create media type) 



ขั้นตอนที่ 2: ที่หน้าจอ "Media types" กำหนดรายละเอียดดังนี้
(Step 2: On menu named "Media types" specified parameters as following.)

Name: YOUR_MEDIA_TYPE_NAME - e.g.: LineGraph
Type: Script
Script name: YOUR_SHELL_SCRIPT_NAME - e.g.: linegraph
Script parameters:

  • {ALERT.SENDTO}     ---> Remember: This is $1 in your shell script
  • {ALERT.SUBJECT}    ---> Remember: This is $2 in your shell script
  • {ALERT.MESSAGE}  ---> Remember: This is $3 in your shell script
Enables: Seleted



ขั้นตอนที่ 3: กำหนดให้ "User" ที่เกี่ยวข้องใช้งาน "Media" ที่สร้างขึ้นตามขั้นตอนที่ 2, โดยไปที่เมนู Administration -> Users -> เลือกผู้ใช้งานที่ต้องการ เช่น Admin -> Media โดยกำหนด "Type" เป็นชื่อ Media Type ที่สร้างขึ้นตามขั้นตอนที่ 2
(Step 3: Configure the related "User" to using "Media" that created in step no. 2, Goto Administration -> Users -> Choose related User such as Admin -> Media the set to "Type")



ขั้นตอนที่ 4: กำหนด "Action" ที่เกี่ยวข้องใช้งาน "Media" ที่สร้างขึ้นตามขั้นตอนที่ 2, โดยไปที่เมนู Configuration -> Actions -> เลือกชื่อ Action ที่ต้องการ หรือสร้าง Action ใหม่ -> จากนั้นกำหนดรายละเอียดดังนี้
(Step 4: Configure the related "Action" to using "Media" that created in step no. 2, Goto Configuration -> Actions -> Choose related Action or Create new Action ->  Then specified detail as following.)

เมนู "Action" (Action menu)

Name: YOUR_ACTION_NAME - e.g.: SendEmailLine
Condition: YOUR_ACTION_WILL_BE_WORKING_CONDITION - e.g.: Trigger severity.
Enables: Seleted


(A) เมนู "Operations/Recovery operations/Update operations" (Operations/Recovery operations/Update operations menu)

Default message: Including wording "Graph: [{ITEM.ID1}]"
Operations: รายละเอียดตามเมนูย่อย "Operation details" (Please following Operation details sub-menu)


(B) เมนูย่อย "Operation details" -> จะปรากฎหลังจากที่คลิก "New" or "Edit"
(Operation details sub-menu -> After clicking "New" or "Edit") 

Send to Users: YOUR_ALERT_RELATED_USERS - e.g.: Admin
Send only to: YOUR_MEDIA - e.g.: LineGraph
Default message: Seleted


**กำหนดรายละเอียดตามขั้นตอน (A) และ (B) สำหรับเมนู "Recovery operations/Update operations" ให้ครบถ้วน
(Completed configure setting (A) and (B) on Recovery operations/Update operations menu)**


ขั้นตอนที่ 5: สร้างไฟล์ Shell script ในไดเร็คทอรี /usr/lib/zabbix/alertscripts (ตัวอย่าง CentOS) บนเครื่อง Zabbix สำหรับทำงานในการส่ง ข้อมูลรายละเอียด และรูปภาพกราฟ การแจ้งเตือนผ่านช่องทาง LINE Notify โดยชื่อไฟล์จะต้องตรงกับที่กำหนดไว้ในขั้นตอนที่ 2 - ชื่อพารามิเตอร์ "Script name" เช่น linegraph
(Step 5: Create Shell script file in /usr/lib/zabbix/alertscripts directory (Example of CentOS) on Zabbix server machine for sending information and graph picture via LINE Notify. This script file name must be the same on Step no.2 - Parameter named "Script name" such as linegraph)

ตัวอย่างไฟล์ shell script (Example of shell script file)
#!/bin/bash
ZBX_URL="http://127.0.0.1/zabbix"
USERNAME="YOUR_ZABBIX_WEB_USER"              # e.g.: Admin
PASSWORD="YOUR_ZABBIX_WEB_PASSWORD"   # e.g.: zabbix
PERIOD=10800
ZABBIXVERSION34="1"
GRAPHID=$3
GRAPHID=$(echo $GRAPHID | grep -o -E "(Graph: \[[0-9]{7}\])|(Graph: \[[0-9]{6}\])|(Graph: \[[0-9]{5}\])|(Graph: \[[0-9]{4}\])|(Graph: \[[0-9]{3}\])")
GRAPHID=$(echo $GRAPHID | grep -o -E "([0-9]{7})|([0-9]{6})|([0-9]{5})|([0-9]{4})|([0-9]{3})")
case $GRAPHID in
''|*[!0-9]*) INC_GRAPH=0 ;;
*) INC_GRAPH=1 ;;
esac
WIDTH=800
CURL="/usr/bin/curl"
#NEW_UUID=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 4 | head -n 1)
NEW_UUID=$RANDOM
COOKIE="/tmp/zapi_cookie-$(date "+%Y.%m.%d-%H.%M.%S")-${NEW_UUID}"
PNG_PATH="/tmp/zapi_graph-$(date "+%Y.%m.%d-%H.%M.%S")-${NEW_UUID}.png"

if [ $(($INC_GRAPH)) -eq '1' ]; then
${CURL} -k -s -c ${COOKIE} -b ${COOKIE} -d "name=${USERNAME}&password=${PASSWORD}&autologin=1&enter=Sign%20in" ${ZBX_URL}"/index.php" > /dev/null
if [ "${GRAPHID}" == "000001" ]; then
GRAPHID="00002";
${CURL} -k -s -c ${COOKIE} -b ${COOKIE} -d "graphid=${GRAPHID}&period=${PERIOD}&width=${WIDTH}" ${ZBX_URL}"/chart2.php" -o "${PNG_PATH}";
elif [ "${GRAPHID}" == "000002" ]; then
GRAPHID="00003";
${CURL} -k -s -c ${COOKIE}  -b ${COOKIE} -d "graphid=${GRAPHID}&period=${PERIOD}&width=${WIDTH}" ${ZBX_URL}"/chart2.php" -o "${PNG_PATH}";
elif [ "${GRAPHID}" == "000003" ]; then
GRAPHID="00004";
${CURL} -k -s -c ${COOKIE}  -b ${COOKIE} -d "graphid=${GRAPHID}&period=${PERIOD}&width=${WIDTH}" ${ZBX_URL}"/chart2.php" -o "${PNG_PATH}";
else
if [ "${ZABBIXVERSION34}" == "1" ]; then
${CURL} -k -s -c ${COOKIE}  -b ${COOKIE} -d "itemids=${GRAPHID}&period=${PERIOD}&width=${WIDTH}&profileIdx=web.item.graph" ${ZBX_URL}"/chart.php" -o "${PNG_PATH}";
else
${CURL} -k -s -c ${COOKIE}  -b ${COOKIE} -d "itemids=${GRAPHID}&period=${PERIOD}&width=${WIDTH}" ${ZBX_URL}"/chart.php" -o "${PNG_PATH}";
fi
fi
${CURL} -X POST -H "Authorization: Bearer YOUR_LINE_NOTIFY_TOKEN" -F "message=$2" -F "imageFile=@${PNG_PATH}" https://notify-api.line.me/api/notify
else
${CURL} -X POST -H "Authorization: Bearer YOUR_LINE_NOTIFY_TOKEN" -F "message=$2" https://notify-api.line.me/api/notify
fi
rm -f ${COOKIE}
rm -f ${PNG_PATH}


ขั้นตอนที่ 6: กำหนดให้ไฟล์ shell script ดังกล่าว สามารถ execute ได้ โดยคำสั่งดังต่อไปนี้บนระบบปฏิบัติการบนเครื่อง Zabbix
(Step 6: Set shell script file permission to allow executable on Zabbix server operating system - OS as following command)
# chmod +x /usr/lib/zabbix/alertscripts/YOUR_SCRIPT_FILE

ตัวอย่าง (Example)
# chmod +x /usr/lib/zabbix/alertscripts/linegraph


Reference:
https://github.com/diegosmaia/zabbix-telegram

Share:

วิธีการติดตั้ง Zabbix V 4.4.4 บน CentOS 7 ภายในเวลา 10 นาที

ในนามของสมาชิกใหม่ วันนี้ผมขอนำเสนอบทความเกี่ยวกับการติดตั้ง Zabbix Version V 4.4.4 ในแบบฉบับที่สั้นๆ และสามารถติดตั้งเสร็จได้ภายใน 10 นาที

สิ่งที่ต้องมีและติดตั้งให้เรียบร้อย คือระบบปฏิบัติการ CentOS 7
CentOS-7-x86_64-Minimal-1908
http://mirror.ku.ac.th/centos-cd-dvd/CentOS-7-x86_64-Minimal-1908.iso

หลังติดตั้ง CentOS 7 และทำการเปิดเครื่องขึ้นมาได้เรียบร้อยแล้ว

ขั้นตอนที่ 1 ให้ทำการการปิด SELinux ลง เราต้องแก้ไขไฟล์คอนฟิกของ SELinux เพื่อปิดการทำงาน โดยแก้ไขที่ไฟล์ /etc/sysconfig/selinux
[root@zabbix ~]# vi /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
แก้ไขตรง "SELINUX=enforcing" to "SELINUX=disabled" หลังจากนั้น ให้ บันทึกแล้ว Restart เครื่อง 1 ครั้ง

ขั้นตอนที่ 2 ให้ทำการ Update CentOS7 ก่อนทำการติดตั้ง Zabbix ด้วยคำสั่ง
[root@zabbix ~]# yum -y update
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.hosting.in.th
 * extras: mirrors.hosting.in.th
 * updates: mirrors.hosting.in.th
Resolving Dependencies
--> Running transaction check
---> Package ca-certificates.noarch 0:2018.2.22-70.0.el7_5 will be updated
...
...
Updated:                          
  nss-softokn.x86_64 0:3.44.0-8.el7_7                                   nss-softokn-freebl.x86_64 0:3.44.0-8.el7_7                  
  nss-sysinit.x86_64 0:3.44.0-7.el7_7                                   nss-tools.x86_64 0:3.44.0-7.el7_7                           
  nss-util.x86_64 0:3.44.0-4.el7_7                                      numactl-libs.x86_64 0:2.0.12-3.el7_7.1                      
  python-perf.x86_64 0:3.10.0-1062.9.1.el7                              selinux-policy.noarch 0:3.13.1-252.el7_7.6                  
  selinux-policy-targeted.noarch 0:3.13.1-252.el7_7.6                   util-linux.x86_64 0:2.23.2-61.el7_7.1                       

Complete!
[root@zabbix ~]# reboot
ขั้นตอนที่ 3 หลังจาก Reboot ให้ทำการ ติดตั้ง Zabbix repository ด้วยคำสั่ง
# rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
[root@zabbix ~]# rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
Retrieving https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
warning: /var/tmp/rpm-tmp.M6C21K: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:zabbix-release-4.4-1.el7         ################################# [100%]
ขั้นตอนที่ 4 ติดตั้ง MariaDB, Zabbix Server, Frontend, Agent ด้วยคำสั่ง
# yum install mariadb-server zabbix-server-mysql zabbix-web-mysql zabbix-agent
[root@zabbix ~]# yum install mysql zabbix-server-mysql zabbix-web-mysql zabbix-agent
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.hosting.in.th
 * extras: mirrors.hosting.in.th
 * updates: mirrors.hosting.in.th
Resolving Dependencies
--> Running transaction check
---> Package mariadb.x86_64 1:5.5.64-1.el7 will be installed
...
...
  php-gd.x86_64 0:5.4.16-46.1.el7_7         php-ldap.x86_64 0:5.4.16-46.1.el7_7           php-mbstring.x86_64 0:5.4.16-46.1.el7_7 
  php-mysql.x86_64 0:5.4.16-46.1.el7_7      php-pdo.x86_64 0:5.4.16-46.1.el7_7            php-xml.x86_64 0:5.4.16-46.1.el7_7      
  t1lib.x86_64 0:5.1.2-14.el7               unixODBC.x86_64 0:2.3.1-14.el7                zabbix-web.noarch 0:4.4.4-1.el7         

Complete!
ขั้นตอนที่ 5 ทำการ config mariadb ด้วยคำสั่ง
# systemctl start mysqld # คำสั่งสำหรับ start database MariaDB
# systemctl enable mariadb # คำสั่งสำหรับกำหนดให้ start database MariaDB ทุกครั้งหากเครื่องมีการ Reboot
# systemctl status mariadb # คำสั่งสำหรับตรวจสอบว่า database MariaDB ทำงานอยู่หรือไม่
[root@zabbix ~]# [root@zabbix ~]# systemctl start mysqld
[root@zabbix ~]# [root@zabbix ~]# systemctl enable mariadb
[root@zabbix ~]# [root@zabbix ~]# systemctl status mariadb
โ— mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2019-12-20 16:23:17 +07; 14s ago
 Main PID: 9752 (mysqld_safe)
   CGroup: /system.slice/mariadb.service
           โ”œโ”€9752 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
           โ””โ”€9914 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/v...

Dec 20 16:23:15 zabbix mariadb-prepare-db-dir[9666]: MySQL manual for more instructions.
Dec 20 16:23:15 zabbix mariadb-prepare-db-dir[9666]: Please report any problems at http://mariadb.org/jira
Dec 20 16:23:15 zabbix mariadb-prepare-db-dir[9666]: The latest information about MariaDB is available at http://mariadb.org/.
Dec 20 16:23:15 zabbix mariadb-prepare-db-dir[9666]: You can find additional information about the MySQL part at:
Dec 20 16:23:15 zabbix mariadb-prepare-db-dir[9666]: http://dev.mysql.com
Dec 20 16:23:15 zabbix mariadb-prepare-db-dir[9666]: Consider joining MariaDB's strong and vibrant community:
Dec 20 16:23:15 zabbix mariadb-prepare-db-dir[9666]: https://mariadb.org/get-involved/
Dec 20 16:23:16 zabbix mysqld_safe[9752]: 191220 16:23:16 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
Dec 20 16:23:16 zabbix mysqld_safe[9752]: 191220 16:23:16 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
Dec 20 16:23:17 zabbix systemd[1]: Started MariaDB database server.
ขั้นตอนที่ 6 ทำการสร้าง database สำหรับ Zabbix Server ด้วยคำสั่ง
# mysql # คำสั่งติดต่อเข้า database MariaDB โดยในค่าเริ่มต้นจะไม่มี password สำหรับ login
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'password';
MariaDB [(none)]> quit;
[root@zabbix ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.64-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'password';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> quit;
Bye
ขั้นตอนที่ 7 ทำการ Import schema และ data ของ Zabbix Server ด้วยคำสั่ง ด้วย user zabbix และ password ที่เราตั้งไว้ตอนสร้าง Database ด้วยคำสั่ง
# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -ppassword zabbix
[root@zabbix ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -ppassword zabbix
ขั้นตอนที่ 8 ทำการแก้ไขไฟล์ config zabbix server ด้วยคำสั่ง
# vi /etc/zabbix/zabbix_server.conf
ค้นหาคำว่า DBPassword= ให้เอาเครื่องหมาย # ออก แล้วใส่รหัสผ่านของ user zabbix ในที่นี้คือ password แล้วทำการบันทึก
#DBPassword= เปลี่ยนเป็น DBPassword=password
[root@zabbix ~]# vi /etc/zabbix/zabbix_server.conf
### Option: DBPassword
#       Database password.
#       Comment this line if no password is used.
#
# Mandatory: no
# Default:
DBPassword=password
ขั้นตอนที่ 9 ทำการแก้ไขไฟล์ config php web zabbix ด้วยคำสั่ง
# vi /etc/httpd/conf.d/zabbix.conf
ให้เอาเครื่องหมาย # php_value date.timezone Europe/Riga ออก แล้วเปลี่ยน timezone เป็น Asia/Bangkok แล้วทำการบันทึก
#DBPassword= เปลี่ยนเป็น DBPassword=password
[root@zabbix ~]# vi /etc/zabbix/zabbix_server.conf
    
        php_value max_execution_time 300
        php_value memory_limit 128M
        php_value post_max_size 16M
        php_value upload_max_filesize 2M
        php_value max_input_time 300
        php_value max_input_vars 10000
        php_value always_populate_raw_post_data -1
        php_value date.timezone Asia/Bangkok
    
ขั้นตอนที่ 10 ทำการ start apache , zabbix server และ zabbix agent ด้วยคำสั่ง
# systemctl start zabbix-server zabbix-agent httpd # Start Apache , Zabbix server และ Zabbix agent
# systemctl enable zabbix-server zabbix-agent httpd # กำหนดให้ Start Apache , Zabbix server และ Zabbix agent ทุกครั้งที่ Reboot
[root@zabbix ~]# systemctl start zabbix-server zabbix-agent httpd
[root@zabbix ~]# systemctl enable zabbix-server zabbix-agent httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
ขั้นตอนที่ 11 ทำการเปืดให้ firewall อนุญาต port สำหรับ Apache(80) Zabbix(10050,10051) ด้วยคำสั่ง
firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --permanent --add-port=10051/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
[root@zabbix ~]# firewall-cmd --permanent --add-port=10050/tcp
success
[root@zabbix ~]# firewall-cmd --permanent --add-port=10051/tcp
success
[root@zabbix ~]# firewall-cmd --permanent --add-port=80/tcp
success
[root@zabbix ~]# firewall-cmd --reload
success
ขั้นตอนที่ 12 กำหนดค่าเริ่มต้นของ Zabbix Web Frontend
ให้เข้าไปที่ http://ตามด้วย IP Zabbix /zabbix

หน้าแรกหลังจากติดตั้ง กดปุ่ม Next step


เลื่อน scroll bar ตรวจสอบค่าเริ่มต้นจะต้องเป็น OK ทั้งหมด กดปุ่ม Next step


กำหนดค่าสำหรับติดต่อ Database Zabbix ในที่นี้เราใส่ password ของเราตรงช่องของ Password อย่างเดียว กดปุ่ม Next step


หน้าจอแสดง Infomation ของ Zabbix Server กดปุ่ม Next step


หน้าจอแสดงรายละเอียดก่อนจะเริ่มติดตั้งและพร้อมใช้งาน กดปุ่ม Next step


เย้.........เสร็จซะที กดปุ่ม Finish


หลังจากกดปุ่ม Finish จะปรากฏหน้าจอสำหรับ Login เข้าสู่ระบบในที่นี้คือ User name คือ Admin (ตัว A ต้องเป็นตัวใหญ่นะครับ) และ Password คือ zabbix


หน้าจอหลักหลังจากที่ Login ผ่าน เป็นไงกันบ้างครับ เพื่อนๆ ใช้เวลาในการติดตั้งกี่นาทีกันบ้าง อย่าลิมมา Comment ให้ด้วยนะครับ วันนี้ขอตัวก่อน สวัสดีปีใหม่ครับบบบบบบ

Share:

How to monitoring directory and on zabbix

Directory ใน Server ล้วนแล้วแต่มีความสำคัญทุก Directory เช่น Directory service ต่างๆ ถ้าเกิด Directory หายไปอาจะทำ Service ที่เราต้อง On  24/7 ต้อง Down ลงไปดังเพื่อที่จะไม่ให้เกิดปัญหานี้นเราจึงต้องมีเครื่องมือช่วย Monitorring อย่าง zabbix นั้นเอง




Share:

Active Directory Federation Service (ADFS) คืออะไร


สวัสดีครับพี่น้องชาว zabbix thailand
            ดังที่ท่านประธานกลุ่มพูดไว้เสมอ    "การให้ไม่มีที่สิ้นสุด"
ผมเป็นคนนึงที่ได้โชคดีเข้ามาร่วมกลุ่มนี้ ประสบการณ์การแลกเปลี่ยนที่ได้นั้นมากมายครับ ช่วงครึ่งหลังของปี 2019 ผมยุ่งมากเลยไม่ได้ร่วม join กิจกรรม ในโอกาสนี้ก็ขอเริ่มเลยละกัน

(กดที่รูปเพื่อขยายได้ครับ)

















Share:
 
Zabbix in Thailand
Facebook Group · 701 members
Join Group
กลุ่มนี้จัดตั้งขึ้นเพื่อแลกเปลี่ยนความรู้ของ zabbix ใครมีคู่มือ เทคนิค หรือ ปัญหา มาร่วมมือกันแก้ไขกันสำหรับชาวไทย -----------------------------------...
 

Popular

ค้นหาบล็อกนี้

Labels

Comments

Labels

Recent Posts