วิธีการเพิ่ม CentOS 7 Sensu ไคลเอนต์

ในคำแนะนำ " วิธีการติดตั้งและกำหนดค่าการตรวจสอบ Sensu บน CentOS 7 " คุณได้เรียนรู้วิธีการตั้งค่าเซิร์ฟเวอร์ Sensu บทช่วยสอนนี้เป็นส่วนที่สองซึ่งคุณจะได้เรียนรู้วิธีเพิ่มไคลเอนต์ Sensu Sensu client เป็นเซิร์ฟเวอร์ที่ Sensu ตรวจสอบ

ฉันถือว่าไคลเอนต์ Sensu เป็นเครื่องเสมือน CentOS 7 เข้าสู่ SSH และทำตามขั้นตอนด้านล่าง คุณไม่ต้องแก้ไขอะไรบนเซิร์ฟเวอร์ Sensu ตราบใดที่ไคลเอนต์ Sensu รับรองความถูกต้องสำเร็จด้วยเซิร์ฟเวอร์ Sensu การตรวจสอบจะดำเนินการโดยอัตโนมัติ

ก่อนที่เราจะเริ่มต้นให้ตรวจสอบว่าไฟร์วอลล์ของคุณได้รับการกำหนดค่าอย่างถูกต้อง ด้วยการติดตั้งเริ่มต้นเปิดพอร์ต TCP ขาออกและ56715672

ขั้นตอนที่ 1: เพิ่มที่เก็บ Sensu

แพ็คเกจsensu-clientไม่ได้อยู่ในที่เก็บ CentOS เริ่มต้น เพิ่มที่เก็บโดยการวางเนื้อหาต่อไปนี้ลงในไฟล์/etc/yum.repos.d/sensu.repo:

[sensu]
name=sensu
baseurl=https://sensu.global.ssl.fastly.net/yum/$releasever/$basearch/
gpgcheck=0
enabled=1

ถัดไปอัปเดตyumและติดตั้งsensu-client:

yum update
yum install sensu

บริการทั้งหมด ( sensu-server, sensu-clientและsensu-api) จะถูกติดตั้งโดยการติดตั้งsensuแพคเกจ คุณสามารถละเว้นบริการทั้งหมดได้อย่างปลอดภัยยกเว้นsensu-clientว่าเราจะใช้งาน อย่าเริ่มบริการ

ขั้นตอนที่ 2: ติดตั้งปลั๊กอินที่จำเป็น

แบบจำลองของ Sensu คือการกระจายโหลดให้กับลูกค้าซึ่งเป็นผลมาจากการดำเนินการตรวจสอบและผลักดันผลการตรวจสอบ เป็นผลให้คุณต้องติดตั้งปลั๊กอิน Sensu บนตัวลูกค้าเองมากกว่าบนเซิร์ฟเวอร์ Sensu ปลั๊กอินบางตัวถูกคอมไพล์ในเครื่องซึ่งหมายความว่าเราจะต้องสร้างเครื่องมือบนไคลเอนต์:

yum groupinstall "Development tools"

ปลั๊กอินต่อไปนี้เป็นที่นิยมและใช้สำหรับการตรวจสอบจำนวนมาก ดำเนินการคำสั่งแต่ละคำสั่งเหล่านี้เพื่อติดตั้งปลั๊กอินเมื่อติดตั้งชุดเครื่องมือการพัฒนาแล้ว ขึ้นอยู่กับขนาดของเซิร์ฟเวอร์ของคุณอาจใช้เวลาสักครู่:

sensu-install -p uptime-checks
sensu-install -p process-checks
sensu-install -p http
sensu-install -p filesystem-checks
sensu-install -p cpu-checks
sensu-install -p memory-checks
sensu-install -p disk-checks
sensu-install -p load-checks
sensu-install -p network-checks

ขั้นตอนที่ 3: เพิ่มไฟล์การกำหนดค่า

เราจะเพิ่มไฟล์กำหนดค่าสี่ไฟล์ลงในไคลเอนต์ Sensu

  • /etc/sensu/conf.d/client.json:

    ไฟล์นี้มีการสมัครสมาชิก, ที่อยู่ IP สำหรับลูกค้า Sensu และชื่อลูกค้า แทนที่ค่าipaddressและhostnameด้วยค่าที่อธิบายถึงไคลเอนต์ที่คุณกำลังเพิ่ม นอกจากนี้ให้ระบุการบอกรับสมาชิกที่กำหนดไว้บนเซิร์ฟเวอร์ Sensu หรือถ้าคุณยังไม่มีให้ลบทั้งsubscriptionsส่วน อย่าลืมลบเครื่องหมายจุลภาคหลังจากnameถ้าคุณ:

    {
        "client": {
            "address": "-----ipaddress-----",
            "environment": "production",
            "name": "-----hostname-----",
            "subscriptions": [
                "linux"
            ]
        }
    }
    
  • /etc/sensu/conf.d/transport.json:

    ในไฟล์นี้เรากำหนดการขนส่งที่ใช้ โดยค่าเริ่มต้นการขนส่งที่ใช้คือ RabbitMQ วางเนื้อหาต่อไปนี้ลงในไฟล์ ไม่มีการเปลี่ยนแปลงค่าใด ๆ :

    {
        "transport": {
            "name": "rabbitmq",
            "reconnect_on_error": true
        }
    }
    
  • /etc/sensu/conf.d/rabbitmq.json:

    เซิร์ฟเวอร์ RabbitMQ และข้อมูลประจำตัวที่ระบุไว้ในไฟล์นี้ แทนที่hostnameด้วยชื่อ DNS โดยค่าเริ่มต้นพอร์ต5672สำหรับการเชื่อมต่อที่ไม่ได้เข้ารหัส ผู้ใช้ RabbitMQ และรหัสผ่านควรถูกแทนที่เช่นกัน รายละเอียดเหล่านี้อาจแตกต่างกันไปสำหรับไคลเอนต์ Sensu แต่ละคนหรือจะเหมือนกันสำหรับลูกค้าทั้งหมด นี่คือการตัดสินใจจริงที่ทำโดยผู้ใช้

    vhostเป็น/ไปโดยปริยาย /sensuแต่มันก็มักจะเปลี่ยนไป หากคุณไม่แน่ใจว่าจะใช้อะไรให้ลองทั้งสองวิธี:

    {
        "rabbitmq": {
            "host": "-----hostname-----",
            "password": "-----rabbitmq_password-----",
            "port": 5672,
            "user": "-----username-----",
            "vhost": "/sensu"
        }
    }
    
  • /etc/sensu/conf.d/checks.json:

    Sensu รองรับการตรวจสอบสองประเภท: การตรวจสอบแบบสแตนด์อโลนและการตรวจสอบการสมัครสมาชิก การตรวจสอบการสมัครสมาชิกมีการกำหนดไว้ในเซิร์ฟเวอร์ Sensu และการสมัครสมาชิกจะถูกกำหนดในclient.jsonไฟล์บนไคลเอนต์ Sensu การตรวจสอบแบบสแตนด์อโลนเป็นการตรวจสอบที่กำหนดไว้บนไคลเอนต์ Sensu ด้วยตนเอง โดยทั่วไปแล้วการตรวจสอบเหล่านี้จะใช้กับเซิร์ฟเวอร์หนึ่ง ๆ เท่านั้น ตัวอย่างเช่นการตรวจสอบที่จะเป็นการสมัครสมาชิกเป็นการตรวจสอบเพื่อดูว่าเว็บเซิร์ฟเวอร์ยังทำงานอยู่หรือไม่ การตรวจสอบแบบสแตนด์อโลนอาจเป็นการตรวจสอบเพื่อดูว่าเซิร์ฟเวอร์ A สามารถติดต่อกับเซิร์ฟเวอร์ B ได้หรือไม่ไม่มีเซิร์ฟเวอร์อื่นที่ต้องการการตรวจสอบนั้น

    การตรวจสอบแบบสแตนด์อโลนถูกกำหนดในไฟล์นี้ ด้านล่างคุณจะพบตัวอย่างของchecks.jsonไฟล์ที่มีตัวอย่างการตรวจสอบแบบสแตนด์อโลน:

    {
        "checks": {
            "httpd": {
                "command": "sudo check-process.rb -p httpd",
                "handlers": [
                    "default",
                    "pushover"
                ],
                "interval": 180,
                "occurences": 3,
                "refresh": "1800",
                "standalone": true,
                "ttl": 1200
            },
            "mysqld": {
                "command": "sudo check-process.rb -p mysqld",
                "handlers": [
                    "default",
                    "pushover"
                ],
                "interval": 180,
                "occurences": 3,
                "refresh": "1800",
                "standalone": true,
                "ttl": 1200
            }
        }
    }
    

หลังจากคุณกำหนดค่าไคลเอ็นต์ Sensu เสร็จแล้วให้เปลี่ยนสิทธิ์:

chown -R sensu:sensu /etc/sensu/conf.d

ขั้นตอนที่ 4: ให้สิทธิ์แก่sensuผู้ใช้

sensuการตรวจสอบจะดำเนินการเป็นผู้ใช้ ผู้ใช้รายนี้มีสิทธิ์ จำกัด อย่างไรก็ตามการตรวจสอบบางอย่างต้องมีrootสิทธิ์ในการดำเนินการ เราจะอนุญาตให้ผู้ใช้sensuทำการตรวจสอบใด ๆ ตามrootแต่ จำกัด สิทธิ์อื่น ๆ

วางเนื้อหาต่อไปนี้ลงในไฟล์/etc/sudoers.d/sensu:

Defaults:sensu
secure_path=/opt/sensu/embedded/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

sensu ALL=(ALL) NOPASSWD: /opt/sensu/embedded/bin/check*.rb *
sensu ALL=(ALL) NOPASSWD: /opt/sensu/embedded/bin/metrics*.rb *

สองบรรทัดแรกกำหนดพา ธ เริ่มต้นซึ่งอนุญาตให้คุณระบุเฉพาะชื่อสคริปต์ในคำสั่ง check แทนที่จะเป็นพา ธ ทั้งหมด ตัวอย่างเช่นการใช้คำสั่งsudo check-process.rb -p mysqldจะทำงานโดยไม่ต้องระบุพา ธ ทั้งหมด ( /opt/sensu/embedded/bin/check-process.rb -p mysqld)

สายอื่น ๆ ช่วยให้ผู้ใช้สามารถรันสคริปต์การตรวจสอบใดsensuroot

ในที่สุดเริ่มsensu-clientบริการและเริ่มโดยอัตโนมัติเมื่อบูต:

systemctl start sensu-client
systemctl enable sensu-client

หากคุณติดตั้ง Uchiwa ไว้ไคลเอนต์ใหม่ควรปรากฏในรายการ มิฉะนั้นให้ทำการดีบักsensu-clientโดยตรวจสอบไฟล์บันทึก/var/log/sensu/sensu-client.log



Leave a Comment

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

การติดตั้ง Pagekit CMS บน CentOS 7

การติดตั้ง Pagekit CMS บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร Pagekit เป็น CMS โอเพนซอร์สที่เขียนด้วย PHP ซอร์สโค้ดของ Pagekit นั้นโฮสต์บน GitHub คำแนะนำนี้จะแสดงให้คุณเห็นว่า

วิธีการติดตั้ง TestLink บน CentOS 7

วิธีการติดตั้ง TestLink บน CentOS 7

TestLink เป็นระบบดำเนินการจัดการทดสอบบนเว็บโอเพ่นซอร์ส ช่วยให้ทีมงานประกันคุณภาพสามารถสร้างและจัดการกรณีทดสอบได้เช่นกัน

วิธีการที่ปลอดภัย vsFTPd ด้วย SSL / TLS

วิธีการที่ปลอดภัย vsFTPd ด้วย SSL / TLS

FTP ที่ปลอดภัยมากหรือเพียงแค่ vsFTPd เป็นซอฟต์แวร์น้ำหนักเบาที่มีความสามารถในการปรับแต่ง ในบทช่วยสอนนี้เราจะรักษาความปลอดภัยของข้อความ

วิธีการติดตั้ง GCC บน CentOS 6

วิธีการติดตั้ง GCC บน CentOS 6

CentOS ติดตามการพัฒนา Red Hat Enterprise Linux (RHEL) RHEL พยายามที่จะเป็นแพลตฟอร์มเซิร์ฟเวอร์ที่มั่นคงซึ่งหมายความว่าจะไม่รีบเร่งในการรวม

ตั้งค่าบัญชีผู้ใช้ SFTP เท่านั้นบน CentOS 7

ตั้งค่าบัญชีผู้ใช้ SFTP เท่านั้นบน CentOS 7

ในบางโอกาสผู้ดูแลระบบอาจต้องสร้างบัญชีผู้ใช้และ จำกัด การเข้าถึงเพื่อจัดการไฟล์ของตัวเองผ่าน sFTP เท่านั้น

วิธีการติดตั้ง Moodle บน CentOS 7

วิธีการติดตั้ง Moodle บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร Moodle เป็นแพลตฟอร์มการเรียนรู้โอเพนซอร์ซหรือระบบจัดการหลักสูตร (CMS) - ชุดซอฟต์แวร์โอเพ่นซอร์สฟรีที่ออกแบบมาเพื่อช่วย

ติดตั้ง NGINX พร้อม ModSecurity บน CentOS 6

ติดตั้ง NGINX พร้อม ModSecurity บน CentOS 6

ในบทความนี้ฉันจะอธิบายวิธีสร้าง LEMP สแต็คที่ได้รับการป้องกันโดย ModSecurity ModSecurity เป็นไฟร์วอลล์เว็บแอพพลิเคชันแบบโอเพนซอร์สที่มีประโยชน์

วิธีการติดตั้ง Apache, MySQL และ PHP บน CentOS 6

วิธีการติดตั้ง Apache, MySQL และ PHP บน CentOS 6

Introduction LAMP เป็นคำย่อที่ย่อมาจาก Linux, Apache, MySQL และ PHP ซอฟต์แวร์นี้เป็นโซลูชันโอเพ่นซอร์สที่ได้รับความนิยมสูงสุดสำหรับการติดตั้ง o

การปรับเปลี่ยน Icinga2 ให้ใช้โมเดลต้นแบบ / ไคลเอ็นต์บน CentOS 6 หรือ CentOS 7

การปรับเปลี่ยน Icinga2 ให้ใช้โมเดลต้นแบบ / ไคลเอ็นต์บน CentOS 6 หรือ CentOS 7

Icinga2 เป็นระบบการตรวจสอบที่มีประสิทธิภาพและเมื่อใช้ในโมเดลลูกค้าหลักจะสามารถแทนที่ความต้องการการตรวจสอบที่อิง NRPE ปรมาจารย์

การติดตั้ง Netdata บน CentOS 7

การติดตั้ง Netdata บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร Netdata เป็นดาวรุ่งพุ่งแรงในด้านการติดตามการวัดในระบบแบบเรียลไทม์ เมื่อเปรียบเทียบกับเครื่องมือชนิดเดียวกัน Netdata:

วิธีการติดตั้งและกำหนดค่า Buildbot บน CentOS 7

วิธีการติดตั้งและกำหนดค่า Buildbot บน CentOS 7

Buildbot เป็นโอเพ่นซอร์สเครื่องมือที่ใช้การรวมอย่างต่อเนื่องของ Python สำหรับการสร้างซอฟต์แวร์การทดสอบและการปรับใช้โดยอัตโนมัติ Buildbot ประกอบด้วยหนึ่งหรือหมอ

ติดตั้งเซิร์ฟเวอร์มัลติเพลเยอร์ SA-MP San Andreas บน CentOS 6

ติดตั้งเซิร์ฟเวอร์มัลติเพลเยอร์ SA-MP San Andreas บน CentOS 6

ยินดีต้อนรับสู่การกวดวิชา Vultr อื่น ที่นี่คุณจะได้เรียนรู้วิธีการติดตั้งและเรียกใช้เซิร์ฟเวอร์ SAMP คู่มือนี้เขียนขึ้นสำหรับ CentOS 6 ข้อกำหนดเบื้องต้นคุณจะต้อง

ติดตั้ง dotProject บน CentOS 7

ติดตั้ง dotProject บน CentOS 7

แอปพลิเคชั่น dotProject เป็นเครื่องมือการจัดการโครงการแบบโอเพ่นซอร์สบนเว็บ สำหรับตอนนี้มันวางจำหน่ายภายใต้ GPL ดังนั้นคุณสามารถปรับใช้และใช้งานได้บนบริการของคุณ

ติดตั้ง TaskServer (taskd) บน CentOS 7

ติดตั้ง TaskServer (taskd) บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร TaskWarrior เป็นเครื่องมือจัดการเวลาแบบโอเพ่นซอร์สที่เป็นการปรับปรุงแอพพลิเคชั่น Todo.txt และโคลนของมัน เนื่องมาจาก

วิธีการติดตั้ง Selfoss RSS Reader บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Selfoss RSS Reader บน CentOS 7 LAMP VPS

ใช้ระบบที่แตกต่างกันอย่างไร Selfoss RSS Reader เป็นฟรีและเปิดตัวเองบนเว็บโฮสต์อเนกประสงค์, สตรีมสด, ตอบโต้กับผู้ใช้ได้, ฟีดข่าว (RSS / Atom) reade

วิธีการติดตั้ง Kanboard บน CentOS 7

วิธีการติดตั้ง Kanboard บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร Kanboard เป็นซอฟต์แวร์ซอฟต์แวร์การจัดการโครงการโอเพ่นซอร์สฟรีที่ออกแบบมาเพื่ออำนวยความสะดวกและมองเห็นภาพการทำงานเป็นทีม

การตั้งค่าเซิร์ฟเวอร์ Half Life 2 บน CentOS 6

การตั้งค่าเซิร์ฟเวอร์ Half Life 2 บน CentOS 6

บทช่วยสอนนี้จะกล่าวถึงกระบวนการติดตั้งเซิร์ฟเวอร์เกม Half Life 2 บนระบบ CentOS 6 ขั้นตอนที่ 1: การติดตั้งข้อกำหนดเบื้องต้นเพื่อตั้งค่า ou

ไดรฟ์ที่แชร์ความพร้อมใช้งานสูงใช้ Vultr Block Storage และ GlusterFS

ไดรฟ์ที่แชร์ความพร้อมใช้งานสูงใช้ Vultr Block Storage และ GlusterFS

GlusterFS เป็นระบบไฟล์ที่เชื่อมต่อกับเครือข่ายซึ่งช่วยให้คุณแบ่งปันไดรฟ์สองตัวในอุปกรณ์หลายตัวบนเครือข่ายได้อย่างมีประสิทธิภาพ ระบบไฟล์นี้คือ

วิธีโยกย้ายกล่องจดหมายอย่างง่ายดายด้วย Imapsync บน CentOS 7

วิธีโยกย้ายกล่องจดหมายอย่างง่ายดายด้วย Imapsync บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร ในขณะที่การโยกย้ายเว็บไซต์มักจะไม่มีปัญหาบางครั้งก็ยากที่จะโยกย้ายกล่องอีเมล นี่คือ CAS โดยเฉพาะอย่างยิ่ง

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true