Dahulu di galaksi jauh, jauh sekali ada perusahaan tumbuh dari startup menjadi sesuatu yang jauh lebih besar, tetapi untuk sementara waktu departemen TI masih kompak dan sangat efisien. Perusahaan itu di-host
pada ratusan server Windows virtual awal, dan tentu saja server ini dimonitor. Bahkan sebelum saya bergabung dengan perusahaan, NetIQ telah dipilih sebagai solusi pemantauan.
Salah satu tugas baru saya adalah mendukung NetIQ. Orang itu, yang pernah bekerja dengan NetIQ sebelumnya, mengatakan banyak tentang pengalamannya dengan NetIQ, sayangnya, jika saya mencoba untuk menaruhnya di sini, itu hanya akan menjadi garis panjang karakter '****'. Segera saya menyadari mengapa. Steve Jobs mungkin berputar di kuburnya melihat antarmuka seperti ini:

Di satu baris logika kotak centang positif (
naikkan acara ), di baris berikutnya negatif (
Jangan naikkan acara ). Jadi bagaimana '
Naikkan acara hanya jika aku bekerja'? Saya tidak tahu.
Namun, ada hal yang jauh lebih buruk tentang NetIQ: agen pengawasannya sangat rapuh. Jauh lebih rentan daripada Windows itu sendiri. Memori rendah? Agen sedang down. CPU 100%? Agen tidak responsif. 0 byte gratis tersisa di disk drive? Nah, untuk mengirim pesan peringatan, agen harus terlebih dahulu menyimpannya ke file di disk ... Jadi ya, Anda tidak mendapatkan peringatan apa pun dalam kasus itu.
Namun, βjangan memperbaiki apa yang tidak rusakβ, dan entah bagaimana, kami hidup dengannya sampai perusahaan kami dibeli oleh perusahaan yang jauh lebih besar. Ketika sebuah perusahaan besar membeli yang kecil, yang kecil menghilang sebagai tetesan air di laut. Namun, dalam kasus kami, kami (dari perspektif TI) tidak jauh lebih kecil dari TI perusahaan yang lebih besar, dan sudah jelas sejak awal bahwa merger akan sangat rumit. Begitu rumit sehingga untuk sementara waktu kami ditinggalkan sendirian sebagai departemen independen dan semua proses bisnis dan TI dijaga tetap sama - persis di bawah payung nama baru. Itu mengingatkan saya tentang momen, ketika
THE RING berbaring di lava tetapi belum mulai mencair.

Sementara itu, saya telah memutakhirkan NetIQ dari versi 7 ke 8, dan kemudian ke versi 9. Saat itulah semua masalah kami mulai. Kami menggunakan NetIQ untuk memantau hanya beberapa hal mendasar: ketersediaan server, memori, CPU, ruang disk dan yang paling penting bagi kami - status layanan yang dikembangkan di rumah. Ketika jenis startup layanan rumahan diatur ke "Otomatis" maka itu harus selalu berjalan (jika tidak kami anggap crash). Seharusnya tidak ada kasus seperti ini:

Jadi, NetIQ berhenti memantau status layanan. Setelah satu minggu percobaan dan satu minggu lagi panggilan dengan dukungan NetIQ, kami telah belajar bahwa "
itu bukan bug, itu fitur " dan peringatan dipicu hanya ketika proses keluar dengan kode keluar tertentu. Dan layanan kami macet dengan kode APAPUN.
Pada saat itu sudah terlambat untuk mundur. Seperti yang Anda pahami, segera setelah kami menemukan bahwa infrastruktur penting kami tidak dimonitor, kami segera ... eh ... tidak melakukan apa-apa. Karena pada saat itu proses "peleburan" perusahaan kami menjadi lebih besar mencapai fase aktif, dan terlihat seperti ini:

Saya mendengar suara guntur dari jauh di atas, dan sepertinya para dewa di Olympus menentukan nasib dunia, sementara saya mencoba mengalihkan perhatian mereka dengan masalah teknis kecil saya. Pada saat yang sama, saya tidak bisa tidur mengetahui bahwa sistem pemantauan kami setengah buta.
Setelah saya menyadari bahwa tidak ada yang perlu ditunggu, saya memutuskan untuk membuat solusi cepat dan kotor - pemindai layanan kecil yang harus memeriksa semua server untuk memeriksa layanan dan mengirim email untuk layanan yang turun, persis seperti versi lama dari NetIQ melakukannya. Anda mungkin berpikir bahwa skrip PowerShell adalah cara terbaik untuk melakukannya tetapi ... Jika semua yang Anda miliki adalah palu, semuanya terlihat seperti paku. Jika Anda adalah seorang DBA yang bekerja dengan SQL sejak versi 6.0 maka ... Ini adalah kutipan singkat dari kode, sehingga Anda dapat memahami apa yang saya bicarakan:

Saya hanya perlu beberapa jam untuk menulis solusi pertama. Selama beberapa hari berikutnya saya menambahkan audit, parameter dan hal-hal mewah lainnya. Setelah saya memeriksa apa yang bisa dilakukan perintah WMIC, saya tidak bisa berhenti. Saya tidak ingat persis apa yang terjadi selama 2 minggu ke depan - semuanya agak buram, tetapi ketika saya bangun dari semua fitur NetIQ diimplementasikan menggunakan SQL murni.
Saya tidak hanya menyalin fungsionalitas NetIQ "sebagaimana adanya", saya telah mengimplementasikan semua yang saya impikan. Dalam peringatan email LOWDISK Anda juga mendapatkan PDF yang dilampirkan dengan bagan pertumbuhan penggunaan disk sehingga Anda dapat langsung memahami apakah pertumbuhannya asli atau ada yang salah. Memori rendah - dan Anda tidak hanya mendapatkan bagan, tetapi juga distribusi memori berdasarkan proses, plus untuk w3wp.exe Anda mendapatkan nama kumpulan ditambahkan. Saya juga menerapkan pengingat cerdas dengan perlindungan banjir dan banyak hal mewah lainnya. BTW, daftar server virtual ditarik secara otomatis dari repositori VMware. Hanya dengan melihat subjek lansiran di klien seluler, Anda dapat langsung mengatakan apa yang sedang terjadi - bahkan tanpa membuka email:

Pengembang modern terbiasa membuat level abstraksi sampai batas yang membahayakan kemampuan mereka untuk menulis kode sederhana yang mudah. Mereka tidak dapat membuat sistem pemantauan tanpa mengatakan: "Oke, jadi untuk server apa pun kita dapat menjalankan serangkaian skrip dengan aturan dari repositori ... Seberapa fleksibel ...". Tetapi pemantauan beberapa hal mendasar seperti Memori, CPU, disk, status layanan adalah unik. Dengan menerapkan verifikasi kondisi-kondisi dasar ini dengan tingkat abstraksi mereka berakhir dengan kode yang bekerja sama buruknya untuk semua kasus. Ini adalah contoh dari sistem SCOM. Saya yakin itu diterapkan persis oleh spesifikasi:

Tetapi keuntungan utama dari sistem baru adalah bahwa tidak ada agen sama sekali. Tidak ada agen - tidak ada yang dipasang, tidak ada yang rusak. Sistem itu sederhana dan dapat diandalkan sebagai hummer.
Beberapa bulan berikutnya saya datang untuk bekerja dan menghabiskan satu atau dua jam mengerjakan kreasi baru saya - secara perlahan, tanpa tenggat waktu dan ETA, hampir tidak meninggalkan hutang teknis. Setelah beberapa saat aku memaksakan diriku untuk berhenti.
NetIQ masih dalam produksi, tetapi orang-orang pasti lebih suka peringatan dari sistem baru, lebih dapat diandalkan dan informatif. Berangsur-angsur saya memindahkan semua "pelanggan" yang waspada ke sistem yang baru, namun menjaga sistem yang lama tetap hidup. Sementara itu, proses "peleburan" perusahaan lama kami menjadi yang lebih besar telah mencapai tahap akhir:

Semuanya berakhir. Saya bahkan terkejut bahwa saya memiliki kesempatan untuk bermain dengan hal-hal seperti itu di perusahaan birokrasi besar. Setelah satu bulan persiapan, saya diberitahu bahwa "
ok, dalam seminggu kami mematikan NetIQ dan pindah ke SCOM sebagai standar perusahaan ". Saya menutup NetIQ (harus saya akui, saya sangat membencinya sehingga itu adalah salah satu momen paling membahagiakan dalam karir saya) dan mulai menunggu kedatangan SCOM. Tapi tidak ada. Tidak ada sejak seminggu, dan sebulan, dan bahkan seperempat.
Kami mendapat SCOM hanya setelah 6 bulan penuh - seseorang telah lupa tentang biaya lisensi untuk sejumlah besar server yang kami miliki. Dalam 6 bulan ini banyak departemen menjadi sangat tergantung pada sistem baru, yang menyimpan tidak hanya peringatan tetapi juga metrik kinerja dan inventaris sehingga tidak mungkin untuk mematikannya. Itu menjadi sistem cadangan kedua. Untuk para auditor ada SCOM, untuk hal-hal yang benar-benar berguna - ada kreasi saya.
Dari waktu ke waktu, manajer di berbagai tingkatan hierarki melangkahi peringatan sistem itu dan bertanya - apa itu? Baru-baru ini saya telah menjelaskan keseluruhan cerita di balik produk ini. Mereka tertawa dan membiarkan sistem itu hidup, dan bagi saya itu adalah kesempatan untuk menulis kode seperti ketika saya masih mahasiswa - dibimbing bukan oleh spesifikasi tetapi berdasarkan pada pemahaman saya sendiri, seperti hobi. Itu sangat menyenangkan.
Artikel dalam bahasa Rusia